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

        Permission is granted to make and distribute verbatim copies
        of this dictionary or works derived from it, 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://foldoc.doc.ic.ac.uk/, Editor Denis Howe"
        or similar.

        The dictionary has been growing since 1985 and now contains
        over 12000 definitions totalling more than four megabytes.
        Entries are cross-referenced to each other and to related
        resources elsewhere on the net.

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

        You can search the latest version of the dictionary by {WWW}
        (URL http://foldoc.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 <dbh@doc.ic.ac.uk> +44 (171) 456 5772.

        (1999-02-01)

Acknowledgements

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

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

        Bill Kinnersley's {Language List
        (http://cuiwww.unige.ch/langlist)} v2.2, 1994-01-15,

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

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

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

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

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

        {Electronic Commerce Dictionary}.

        (1997-08-01)

!

        {exclamation mark}

"

        {double quote}

%

        {percent}

,

        {comma}

0

        {zero}

0/1 knapsack problem

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

        (1995-03-13)

100BaseFX

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

        (1998-03-23)

100BaseT

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

        (1997-01-07)

100BaseTX

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

        (1998-06-30)

100BaseVG

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

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

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

        (1998-06-30)

100VG-AnyLAN

        {100BaseVG}

10base2

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

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

        (1995-11-14)

10base5

        <networking> (Or "thicknet" - "thick {Ethernet}") The original
        "full spec" variant of {Ethernet} cable, using a stiff, large
        diameter {coaxial} cable with an {impedance} of 50 ohms and
        with multiple shielding.  The outer sheath is usually yellow
        so it is often just called "yellow cable".  The "10" means 10
        {Mbps}, "base" means "baseband" as opposed to {radio
        frequency} and "5" means a maximum single cable length of 500
        metres.

        10base5 cable is designed to allow transceivers to be added
        while existing connections are live.  This is achieved using a
        "vampire tap" - a device which (with sufficient practise)
        clamps onto the cable, forcing a spike through the outer
        shielding to contact the inner conductor while other spikes
        bite into the outer conductor.  This is often built into the
        transceiver and a more flexible multi-wire cable carries the
        connection between the transceiver and the {node}.

        Compare {10base2}, {10baseT}.

        [Does the cable have an official name?]

        (1998-06-27)

10baseT

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

        (1995-01-24)

120 reset

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

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

        (1994-11-23)

1-2-3

        {Lotus 1-2-3}

1394

        {High Performance Serial Bus}

1541

        {Commodore 1541}

1581

        {Commodore 1581}

16550

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

        (1995-01-24)

16 bit

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

        See also {16-bit application}.

        (1996-05-13)

16-bit application

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

        Compare {32-bit application}.

        (1996-04-06)

1802

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

        (1995-11-21)

1NF

        {database normalisation}

1TBS

        One True Brace Style.

        See {indent style}.

        (1995-01-25)

1.TR.6

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

        (1995-03-27)

2

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

        (1995-01-25)

20-GATE

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

        (1995-02-27)

2780

        {Binary Synchronous Transmission}

2B1D

        {2B+D}

2B1Q

        {two-binary, one-quaternary}

2B+D

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

        (1997-03-31)

2NF

        {database normalisation}

2.PAK

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

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

        (1995-01-25)

320xx

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

        (1994-11-17)

3270

        {IBM 3270}

32-bit application

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

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

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

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

        (1995-12-11)

3780

        {Binary Synchronous Transmission}

386

        {Intel 80386}

386BSD

        <operating system> 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 rle 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/fa
q.html)}.

        (1995-02-15)

386SPART.PAR

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

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

        (1996-05-28)

3Com Corporation

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

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

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

        (1998-04-03)

3DO

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

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

        The {Panasonic} 3DO system can run 3DO Interactive software,
        play audio CDs (including support for CD+G), view {Photo-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}.

        (1994-12-13)

3GL

        {third generation language}

3NF

        {database normalisation}

3Station

        <computer, networking> The archtypal {diskless workstation},
        developed by Bob Metcalfe at {3Com}.

        [Features?  Dates?]

        (1995-03-27)

3-tier

        {three-tier}

404

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

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

        (1997-04-17)

4.2BSD

        {Berkeley System Distribution}

431A

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

        (1995-01-25)

4510

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

        Used in the {Commodore 65}.

        (1996-04-06)

473L Query

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

        [Sammet 1969, p. 665].

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

        (1994-10-31)

486

        {Intel 486}

486SX

        {Intel 486SX}

4GL

        {fourth generation language}

4NF

        {database normalisation}

51forth

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

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

        (1993-04-03)

56kbps

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

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

        (1998-09-15)

56k line

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

        Compare {DS0}.

        (1995-12-18)

586

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

5NF

        {database normalisation}

5th Glove

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

        (1998-02-06)

6.001

        <education> /siks dub*l oh wun/, /dub*l oh wun/ or rarely
        /siks dub*l oh fun/ {MIT}'s introductory computer class for
        majors, known for its intensity.  Developed by {Gerald
        Sussman} and {Hal Abelson}, the course is taught in {Scheme}
        and introduces {recursion}, {higher-order 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}.

        (1994-11-22)

610

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

        [Other countries?  Full name?]

        (1997-06-26)

6309

        {Hitachi 6309}

64 bit

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

        64-bit processors 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.

        (1996-12-23)

6502

        <hardware> 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 6502's {indirect jump} instruction, JMP (xxxx), was
        {broken}.  If the address was hexadecimal xxFF, the processor
        would not access the address stored in xxFF and xxFF + 1, but
        rather xxFF and xx00.  The {6510} corrected this bug.

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

        There is a 6502 {assembler} by Doug Jones <jones@cs.uiowa.edu>
        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}.

        (1999-02-18)

650x

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

        <processor> A {bug fix} to the {6502}'s indirect jump command.

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

        (1999-02-18)

65816

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

        (1994-10-31)

6800

        {Motorola 6800}

68000

        {Motorola 68000}

68020

        {Motorola 68020}

68030

        {Motorola 68030}

68040

        {Motorola 68040}

68050

        {Motorola 68050}

68060

        {Motorola 68060}

6809

        {Motorola 6809}

680x0

        {Motorola 680x0}

686

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

        (1997-05-26)

68HC11

        {Motorola 68HC11}

68LC040

        {Motorola 68LC040}

6x86

        {Cyrix 6x86}

754

        {IEEE Floating Point Standard}

80186

        {Intel 80186}

80188

        {Intel 80188}

802.2

        {IEEE 802.2}

802.3

        {IEEE 802.3}

80286

        {Intel 80286}

8031

        {as31}

80386

        {Intel 80386}

80486

        {Intel 486}

8051

        <processor> See {CAS 8051 Assembler}, {as31}, {51forth}.

        [What is an 8051?]

        (1995-01-26)

8080

        {Intel 8080}

8086

        {Intel 8086}

8088

        {Intel 8088}

80x86

        {Intel 80x86}

822

        {RFC 822}

82430FX

        {Triton I}

82430HX

        {Triton II}

82430MX

        {Mobile Triton}

82430VX

        {Triton VX}

8.3

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

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

        (1998-10-05)

8514

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

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

        (1999-08-01)

8514-A

        {8514}

88000

        {Motorola 88000}

88open

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

        (1995-01-26)

8-bit clean

        {eight-bit clean}

8N1

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

        (1995-01-31)

8 queens problem

        {eight queens puzzle}

8 queens puzzle

        {eight queens puzzle}

8x86

        {Intel 80x86}

90-90 Rule

        {Ninety-Ninety Rule}

9PAC

        <tool> 709 PACkage.

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

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

        (1995-02-07)

:-)

        {emoticon}

;

        {semicolon}

=

        {equals}

@

        {commercial at}

A#

        <language> /A sharp/ A separable component of Version 2 of the
        {AXIOM*} computer algebra system.  It provides a programming
        language with an {optimising compiler}, an {intermediate code}
        {interpreter}, and a library of data structures and
        mathematical {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.

        (1995-02-07)

A-0

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

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

        [Sammet 1969, p. 12].

        (1995-12-03)

a1

        <language> Address 1 code.

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

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

        (1994-07-19)

A1 security

        {Orange Book}

A20 handler

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

        (1996-01-10)

A3D

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

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

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

        (1999-01-26)

a56

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

        (1992-08-10)

AADL

        {Axiomatic Architecture Description Language}

AAL

        {ATM Adaptation Layer}

AAP

        {Association of American Publishers}

AAP DTD

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

        (1994-11-08)

aard

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

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

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

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

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

        (1998-03-03)

AARP

        {Apple Address Resolution Protocol}

AARP probe packets

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

        (1997-05-03)

A&B

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

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

        (1997-05-05)

abbrev

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

        (1995-02-27)

ABC

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

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

        ABC includes a programming environment with {syntax-directed}
        editing, {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 <Steven.Pemberton@cwi.nl>.
        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: <abc-list-request@cwi.nl>.

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

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

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

        (1995-02-09)

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

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

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

        (1995-02-09)

ABC ALGOL

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

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

        (1994-10-28)

ABCL/1

        <language> An Object-Based Concurrent Language.

        The language for the {ABCL} {MIMD} system, written by Akinori
        Yonezawa <matsu@is.s.u-tokyo.ac.jp> of Department of
        Information Science, {Tokyo University} in 1986.  ABCL/1 uses
        {asynchronous} {message passing} to {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@is.s.u-tokyo.ac.jp>.

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

        (1995-02-09)

ABCL/c+

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

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

        (1994-11-08)

ABCL/R

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

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

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

        (1994-11-08)

ABCL/R2

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

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

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

        (1993-01-28)

abduction

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

        (1994-11-08)

ABEND

        <jargon> /o'bend/, /*-bend'/ ABnormal END.  Abnormal
        termination (of {software}); {crash}; {lossage}.  Derives from
        an error message on the {IBM 360}; used jokingly by hackers
        but seriously mainly by {code 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".

        (1994-11-08)

ABI

        {Application Binary Interface}

ABLE

        <language> A simple language for accountants.

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

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

        (1994-11-08)

ABM

        {Asynchronous Balanced Mode}

ABNF

        {Augumented Backus-Naur Form}

abort

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

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

        (1997-01-07)

ABP

        <networking> A {data link layer} protocol.

        [What does it stand for?]

        (1996-06-15)

ABR

        {automatic baud rate detection}

abscissa

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

        (1997-07-08)

ABSET

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

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

        (1994-11-08)

absolute path

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

        (1996-11-21)

absolute pathname

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

        (1996-11-21)

abstract class

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

        (1994-11-08)

abstract data type

        <programming> (ADT) A 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.

        (1995-02-22)

abstract interpretation

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

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

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

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

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

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

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

        where a# is the abstract version of a etc.

        In general an interpretation is characterised by the {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}.

        (1994-11-08)

abstraction

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

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

        Opposite of {concretisation}.

        (1998-06-04)

abstract machine

        1. <language> A processor design which is not intended to be
        implemented as {hardware}, but which is the notional executor
        of a particular {intermediate language} (abstract machine
        language) used in a {compiler} or {interpreter}.  An abstract
        machine has an {instruction set}, a {register set} and a model
        of memory.  It may provide instructions which are closer to
        the language being compiled than any physical computer or it
        may be used to make the language implementation easier to
        {port} to other {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. <theory> A procedure for executing a set of instructions in
        some formal language, possibly also taking in input data and
        producing output.  Such abstract machines are not intended to
        be constructed as {hardware} but are used in thought
        experiments about {computability}.

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

        (1995-03-13)

Abstract Machine Notation

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

        (1995-03-13)

abstract syntax

        <language, data> A representation of data (typically either a
        message passing over a communications link or a program being
        compiled) which is independent of machine-oriented structures
        and encodings and also of the physical representation of the
        data (called "{concrete syntax}" in the case of compilation or
        "{transfer syntax}" in communications).

        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".
        This is independent of the source syntax ({concrete syntax})
        of the language being compiled (though it will often be very
        similar).  A {parse tree} is similar to an abstract syntax
        tree but it will typically also contain features such as
        parentheses which are syntactically significant but which are
        implicit in the structure of the {abstract syntax tree}.

        (1998-05-26)

Abstract Syntax Notation 1

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

        ASN.1 defines the {abstract syntax} of {information} but does
        not restrict in any way how the information is encoded.

        There are various ASN.1 encoding rules, which provide
        {transfer syntax} (a {concrete} representation) of the data
        values whose {abstract syntax} is described in ASN.1.  The
        standard ASN.1 encoding rules include {BER} (Basic Encoding+
        Rules), {CER} (Canonical Encoding Rules), {DER} (Distinguished
        Encoding Rules) and {PER} (Packed Encoding Rules).

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

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

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

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

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

        See also {snacc}.

        (1998-08-06)

abstract syntax tree

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

        (1994-11-08)

Abstract-Type and Scheme-Definition Language

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

        (1996-02-19)

Abstract Windowing Toolkit

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

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

        [On-line documentation?]

        (1996-04-23)

ABSYS

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

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

        (1994-11-08)

ACA

        {Application Control Architecture}

ACAP

        {Application Configuration Access Protocol}

Accelerated Graphics Port

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

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

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

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

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

        {AGP Implementors Forum AGP FAQ
        (http://www.agpforum.org/faq_ans.htm)}.

        {Specification
        (http://developer.intel.com/pc-supp/platform/agfxport/)}.

        {Intel AGP news
        (http://developer.intel.com/solutions/tech/agp.htm)}.

        (1999-01-08)

accelerator

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

        (1994-11-08)

Accent

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

        (1994-11-08)

accept

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

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

        (1994-11-08)

Acceptable Use Policy

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

        (1994-11-08)

acceptance testing

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

        (1996-05-10)

Access

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

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

        (1994-11-08)

Access Control List

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

        (1994-11-08)

access method

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

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

        [{physical layer}?]

        (1998-03-02)

access permission

        {permission}

access time

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

        (1997-06-14)

ACCLAIM

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

        [What's it about?]

        (1994-11-08)

Accounting File

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

        (1996-12-08)

accounting management

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

        (1997-05-05)

ACCU

        {Association of C and C++ Users}

accumulator

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

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

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

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

        (1999-04-20)

accuracy

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

        Compare {precision}.

        (1998-04-19)

ACE

        1. {Advanced Computing Environment}.

        2. {Adaptive Communication Environment}.

ACF

        {Advanced Communications Function}

ACF/NCP

        {Advanced Communication Function/Network Control Program}

ACIA

        {Asynchronous Communications Interface Adapter}

ACID

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

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

        (1997-05-15)

ACIS

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

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

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

        (1996-03-21)

ACK

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

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

        (1997-01-07)

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

        (1994-11-08)

ACM

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

        2. <communications> {addressed call mode}.

        (1997-05-07)

ACME

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

        2. A program for {MS-DOS}.

        [What does it do?]

        (1994-11-08)

ACOM

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

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

        (1994-11-08)

Acorn Archimedes

        {Archimedes}

Acorn Computer Group

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

        (1994-11-08)

Acorn Computers Ltd.

        <company> A UK computer manufacturer, part of the {Acorn
        Computer Group} plc.  Acorn was founded 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: <customer.services@acorn.co.uk>.

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

        (1994-10-31)

Acorn RISC Machine

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

        (1995-03-07)

ACOS

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

        (1994-11-08)

acoustic coupler

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

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

        (1994-11-08)

ACP

        {Algebra of Communicating Processes}

ACPI

        {Advanced Configuration and Power Interface}

Acrobat

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

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

        (1995-04-21)

acronym

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

        See also {TLA}.

        (1995-03-15)

ACSE

        {Association Control Service Element}

ACT

        1. <software> {Annual Change Traffic}.

        2. <company> {Ada Core Technologies}.

        (1999-06-24)

ACT++

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

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

        (1994-11-08)

Act1

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

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

        (1994-11-08)

Act2

        <language> An {actor} language.

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

        (1994-11-08)

Act3

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

        (1994-11-08)

Actalk

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

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

        (1994-11-08)

Actis

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

        (1994-11-08)

activation record

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

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

        (1995-03-07)

active DBMS

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

        (1994-11-08)

Active Language I

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

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

        (1994-11-08)

active matrix display

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

        Contrast {passive matrix display}.

        (1995-12-09)

Active Monitor

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

        (1996-06-18)

active object

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

        (1998-03-08)

Active Reconfiguring Message

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

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

        [In what contect is this term used?]

        (1997-06-06)

Active Server Pages

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

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

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

        (1998-02-10)

ActiveX

        <World-Wide Web> {Microsoft}'s answer to {Java}.  ActiveX is a
        stripped down implementation of {OLE} designed to run over
        slow {Internet} links.

        {Home (http://www.microsoft.com/activex/)}.

        [Details?]

        (1998-03-10)

ACT ONE

        <language, specification> A specification language.

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

        (1994-11-08)

Actor

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

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

        (1994-11-08)

actor

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

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

        (1994-11-08)

Actors

        <theory> A model for {concurrency} by {Carl Hewitt}.  Actors
        are autonomous and concurrent {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 <agha@cs.uiuc.edu>, Cambridge Press, MA,
        1986].

        (1995-06-12)

actor/singer/waiter/webmaster

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

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

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

        (1998-04-04)

Actra

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

        [LaLonde et al, OOPSLA '86].

        (1994-11-08)

Actus

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

        (1994-11-08)

AD

        {Administrative Domain}

ad

        <networking> The {country code} for Andorra.

        (1999-01-26)

Ada

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

        Ada is a large, complex, {block-structured} language aimed
        primarily at {embedded} applications.  It has facilities for
        {real-time} response, {concurrency}, hardware access and
        reliable run-time error handling.  In support of large-scale
        {software engineering}, it emphasises {strong typing}, {data
        abstraction} and {encapsulation}.  The type system uses {name
        equivalence} and includes both {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: <adainfo@ajpo.sei.cmu.edu>.

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

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

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

        An {LR parser} and {pretty-printer} for {Ada} from NASA is
        available from the {Ada Software Repository}.  Michael Feldman
        <mfeldman@seas.gwu.edu> 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.

        (1995-01-23)

Ada++

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

        (1995-09-19)

Ada 83

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

        (1995-03-13)

Ada 95

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

        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 <anderson@uv4.eglin.af.mil> (Ada 95
        Project Manager).

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

        (1995-01-19)

Ada 9X

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

        (1995-01-19)

ADABAS

        <database> A {relational database} system by {Software AG}.
        While it was initially designed for large {IBM} {mainframe}
        systems (e.g. {S/370} in the late 1970s), it has been ported
        to numerous other {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.

        (1995-10-30)

Ada Core Technologies

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

        [Details?  URL?]

        (1999-06-24)

Ada/Ed

        <language, education> 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 <mfeldman@seas.gwu.edu>.

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

        {RISC OS (ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052)}
        (E-mail: <adaed@arcangel.demon.co.uk>).

        (1994-08-18)

Adaline

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

        (1995-03-14)

Ada Lovelace

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

        The language {Ada} was named after her.

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

        [More details?]

        (1999-07-17)

ADAM

        {A Data Management system}

Adam7

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

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

        (1998-02-17)

Adamakegen

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

        Current version as of 1993-03-02: 2.6.3.

        {Home
        (http://home.earthlink.net/~owenomalley/adamakegen.html)}.

        (1998-10-26)

ADAMO

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

        (1995-03-14)

Ada-O

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

        (1995-02-14)

Adaplan

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

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

        (1995-05-07)

Adaplex

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

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

        (1995-02-14)

Ada Programming Support Environment

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

        [Examples?]

        (1997-06-30)

ADAPT

        <language> A subset of {APT}.

        [Sammet 1969, p. 606].

        (1995-02-14)

Adaptable User Interface

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

        (1995-03-16)

Adaptec

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

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

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

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

        (1999-08-25)

adaptive answering

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

        (1995-03-16)

Adaptive Communication Environment

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

        (1995-03-16)

Adaptive Digital Pulse Code Modulation

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

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

        (1998-12-10)

adaptive learning

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

        (1995-03-16)

adaptive routing

        {dynamic routing}

Adaptive Simulated Annealing

        <language> (ASA) A language interface to a {neural net}
        simulator(?) by Lester Ingber <ingber@cco.caltech.edu>.
        Version 1.53.

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

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

        (1993-11-14)

Adaptive TRansform Acoustic Coding

        <algorithm> (ATRAC) An audio encoding {algorithm} which relies
        on the masking of low-amplitude frequency components by
        temporaly adjacent high-amplitude components.

        [Does Sony Minidisk use ATRAC or {ADPCM}?]

        (1998-12-10)

Adaptor

        <tool> Automatic DAta Parallelism TranslatOR.

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

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

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

        (1993-06-01)

Ada Semantic Interface Specification

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

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

        See also {Diana}.

        (1995-02-15)

Ada Software Repository

        <language> A collection of {Ada} programs?

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

        (1995-01-06)

ADC

        {Analog to Digital Converter}

ADCCP

        {Advanced Data Communications Control Protocol}

A/D converter

        {Analog to Digital Converter}

AD/Cycle

        <tool, product> Application Development cycle.

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

        (1994-10-24)

ADD 1 TO COBOL GIVING COBOL

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

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

        (1995-03-17)

ADDD

        <tool> A Depository of Development Documents.

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

        (1995-02-03)

additive

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

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

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

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

        (1995-02-03)

address

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

        2. <networking> {Internet address}.

        3. <networking> {MAC address}.

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

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

        (1997-07-01)

address bus

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

        See also {data bus}.

        (1995-03-22)

addressed call mode

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

        (1997-05-07)

addressing mode

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

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

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

        Indirect addressing modes often have options for pre- or post-
        increment or decrement, meaning that the register or memory
        location containing the {effective address} is incremented or
        decremented by some amount (either fixed or also specified in
        the instruction), either before or after the instruction is
        executed.  These are very useful for {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].

        (1995-03-30)

address mask

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

        (1996-03-21)

address resolution

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

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

        (1996-04-09)

Address Resolution Protocol

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

        ARP is defined in {RFC 826}.

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

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

        (1995-03-20)

address space

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

        (1995-05-12)

Address Strobe

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

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

        (1996-10-02)

ADELE

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

        (1995-01-23)

ADES

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

        Version: ADES II.

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

        (1995-03-20)

ad hoc

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

        (1995-03-25)

ad-hockery

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

        (1995-01-05)

ad-hoc polymorphism

        {overloading}

Aditi

        <database, project> The Aditi Deductive Database System.  A
        multi-user {deductive database} system from the Machine
        Intelligence Project at the {University of Melbourne}.  It
        supports base {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: <aditi@cs.mu.oz.au>.

        (1992-12-17)

adjacency

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

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

        (1998-03-10)

adjacent

        {adjacency}

ADL

        1. <games> {Adventure Definition Language}.

        2. <language> {Ada} Development Language.

        R.A. Lees, 1989.

        3. <programming> {API} Definition Language.

        A project for Automatic Interface Test Generation.

        (1995-11-17)

AdLog

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

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

        (1995-03-21)

ADM

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

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

        (1995-03-21)

ADMD

        {Administration Management Domain}

admin

        {system administrator}

Administration Management Domain

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

        See also {PRMD}.

        [RFC 1208].

        (1997-05-07)

administrative distance

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

        (1998-03-10)

Administrative Domain

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

        (1994-11-24)

admissible

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

        (1999-07-19)

Adobe Systems, Inc.

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

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

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

        Address: Silicon Valley, California, USA.

        (1996-12-13)

Adobe Type Manager

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

        (1998-03-10)

ADPCM

        {Adaptive Digital Pulse Code Modulation}

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

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

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

        See also {Emulator program}.

        [Communication or Communications?]

        (1999-01-29)

Advanced Communications Function

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

        [Communication or Communications?]

        (1997-05-07)

Advanced Computing Environment

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

        (1995-02-03)

Advanced Configuration and Power Interface

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

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

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

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

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

        (1998-03-27)

Advanced Data Communications Control Protocol

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

        (1997-05-07)

Advanced Function Presentation

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

Advanced Function Printing

        {Advanced Function Presentation}

Advanced Intelligent Tape

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

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

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

        (1999-04-16)

Advanced Interactive eXecutive

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

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

        (1994-11-24)

Advanced Micro Devices, Inc.

        <company> (AMD) 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.

        (1995-02-27)

Advanced Network Systems Architecture

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

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

        (1996-04-01)

Advanced Peer-to-Peer Networking

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

        (1995-02-03)

Advanced Power Management

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

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

        (1997-08-25)

Advanced Program-to-Program Communications

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

        (1995-02-03)

Advanced Research Projects Agency

        {Defense Advanced Research Projects Agency}

Advanced Research Projects Agency Network

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

        [1968 or 1969?]

        (1994-11-17)

Advanced Revelation

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

        (1996-12-12)

Advanced RISC Computing Specification

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

        (1995-01-16)

Advanced RISC Machine

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

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

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

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

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

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

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

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

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

        An {ARM800} chip is also planned.

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

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

        (1997-08-05)

Advanced RISC Machines Ltd.

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

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

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

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

        (1994-11-03)

Advanced SCSI Peripheral Interface

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

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

        The latest ASPI layer as of March 1999 is 1014.

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

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

        (1999-03-30)

Advanced Software Environment

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

        (1995-09-12)

Advanced Technology Attachment

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

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

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

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

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

        (1998-10-08)

Advanced Technology Attachment Interface with Extensions

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

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

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

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

        [was there ATA-3?]

        (1998-10-08)

Advanced WavEffect

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

        (1996-12-15)

ADVENT

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

        (1996-04-01)

Adventure Definition Language

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

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

        (1995-03-20)

ADVSYS

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

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

        (1995-03-20)

AE

        {Application Executive}

ae

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

        (1999-01-27)

AED

        {Automated Engineering Design}

AEGIS

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

        (1997-02-25)

Aegis

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

        (1995-03-27)

Aeolus

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

        (1995-03-27)

AEP

        {Application Environment Profile}

aeroplane rule

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

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

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

        See also {KISS Principle}.

        (1999-03-22)

AES

        {Application environment specification}

AESOP

        {An Evolutionary System for On-line Programming}

af

        <networking> The {country code} for Afghanistan.

        (1999-01-27)

AFAC

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

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

        (1995-04-04)

AFAIK

        <chat> as far as I know.

affine transformation

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

          A(x) = Mx + v

        is a typical affine transformation.

        (1995-04-10)

affordance

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

        (1998-10-15)

AFIPS

        {American Federation of Information Processing Societies}

AFJ

        {April Fool's Joke}

AFK

        <chat> away from keyboard.

aflex

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

        Version 1.2a.

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

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

        (1993-01-06)

AFNOR

        <body, standard> Association Francaise pour la Normalisation.

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

        (1994-12-14)

AFP

        1. <protocol> {Appletalk Filing Protocol}.

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

        (1998-06-28)

AFS

        {Andrew File System}

AFUU

        {Association Franaise des Utilisateurs d'Unix}

ag

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

        (1999-01-27)

agent

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

        (1995-04-09)

aggregate type

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

        See also {union}.

        (1996-03-23)

aggregation

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

        (1996-01-07)

AGL

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

        (1997-01-07)

AGM Theory for Belief Revision

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

        [Reference?]

        (1995-03-20)

AGORA

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

AGP

        {Accelerated Graphics Port}

AGP graphics

        {Accelerated Graphics Port}

A Hardware Programming Language

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

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

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

        (1995-01-26)

AHDL

        {Analog Hardware Design Language}

AHPL

        {A Hardware Programming Language}

AI

        {artificial intelligence}

ai

        <networking> The {country code} for Anguilla.

        (1999-01-27)

AIA

        {Application Integration Architecture}

AI-complete

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

        See also {gedanken}.

        (1995-04-12)

AID

        {Algebraic Interpretive Dialogue}

AIDA

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

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

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

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

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

        (1995-04-12)

AIDS

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

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

        (1995-04-13)

AIDX

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

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

        (1995-04-13)

AIFF

        {Audio IFF}

AI International

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

        (1998-12-13)

AI koan

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

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

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

                                         * * *

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

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

        Knight turned the machine off and on.

        The machine worked.

                                         * * *

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

        Moon patiently told the student the following story:

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

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

                                         * * *

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

        "What are you doing?", asked Minsky.

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

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

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

        Minsky then shut his eyes.

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

        "So that the room will be empty."

        At that moment, Sussman was enlightened.

                                         * * *

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

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

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

        (1995-02-08)

AIMACO

        {AIr MAterial COmmand compiler}

Aimnet

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

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

        Address: Cupertino, CA 95014, USA.

        Telephone: +1 (408) 253 0900

        (1995-02-08)

AIr MAterial COmmand compiler

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

        [Sammet 1969, p. 378].

        (1995-02-20)

airplane rule

        {aeroplane rule}

AIT

        {Advanced Intelligent Tape}

AIX

        {Advanced Interactive eXecutive}

AKC

        {Ascending Kleene Chain}

AKCL

        {Austin Kyoto Common Lisp}

AKL

        {Andorra Kernel Language}

AL

        1. {Assembly Language}.

        2. {artificial life}.

al

        <networking> The {country code} for Albania.

        (1999-01-27)

Aladdin Systems

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

        (1995-03-01)

ALADIN

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

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

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

        (1995-04-13)

ALAM

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

        See also {CLAM}.

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

        (1994-10-28)

A-language

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

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

        (1994-10-28)

A Language Encouraging Program Hierarchy

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

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

        (1997-02-27)

A Language for Attributed Definitions

        <language> (ALADIN) A language for formal specification of
        {attributed 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
        <uwe@uni-paderborn.de> et al, LNCS 141, Springer 1982].

        (1995-04-14)

A Language with an Extensible Compiler

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

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

        (1995-04-19)

Alan Kay

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

        (1994-11-24)

Alan M. Turing

        {Alan Turing}

Alan Turing

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

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

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

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

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

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

        (1999-02-04)

A-law

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

        The equation for A-law is

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

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

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

        [The Audio File Formats FAQ]

        (1995-02-21)

ALC

        1. {Assembly Language Compiler}.

        2. {Airline Line Control}.

        (1997-02-05)

Alcool-90

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

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

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

        (1995-04-18)

ALCOR

        <language> A subset of {ALGOL}.

        [Sammet 1969, p. 180].

        (1995-04-18)

Aldat

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

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

        (1995-04-19)

ALDES

        {ALgorithm DEScription}

ALDiSP

        {Applicative Language for Digital Signal Processing}

ALEC

        {A Language with an Extensible Compiler}

ALEF

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

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

        (1997-02-13)

ALEPH

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

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

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

        (1994-12-15)

Aleph

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

        (1994-12-15)

aleph 0

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

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

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

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

        (1995-03-29)

alert

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

        (1999-03-29)

Alex

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

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

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

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

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

        (1994-12-15)

Alexis

        <language> Alex Input Specification.

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

        (1995-04-23)

ALF

        {Algebraic Logic Functional language}

Alfl

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

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

        See also {ParAlfl}.

        (1995-04-24)

algebra

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

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

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

        In more detail, we have:

        (1) an underlying {set},

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

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

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

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

        This whole thing constitutes an `algebra' iff:

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

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

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

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

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

        [I. N. Herstein, "Topics_in_Algebra"].

        (1999-07-14)

ALGEBRAIC

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

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

        (1995-01-24)

algebraic

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

        [Significance?]

        (1995-04-25)

algebraic data type

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

        (1994-11-23)

Algebraic Interpretive Dialogue

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

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

        (1995-04-12)

Algebraic Logic Functional language

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

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

        (1992-10-08)

Algebraic Manipulation Package

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

        (1994-10-19)

Algebraic Specification Language

        1. <language> (ASL)

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

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

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

        (1995-12-13)

algebraic structure

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

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

        (1997-02-25)

Algebra of Communicating Processes

        <theory> (ACP)

        Compare {CCS}.

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

        [Summary?]

        (1994-11-08)

ALGOL

        {ALGOL 60}

ALGOL 58

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

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

        [Details?  Relationship to ALGOL 60?]

        (1997-03-05)

ALGOL 60

        <language> ALGOrithmic Language 1960.

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

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

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

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

        (1995-01-25)

ALGOL 60 Modified

        <language>

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

        [SIGPLAN Notices 12(1) 1977].

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

        (1995-01-25)

ALGOL 60 Revised

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

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

        [Sammet 1969, p.773].

        (1995-01-25)

ALGOL 68

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

        ALGOL 68 was 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}.

        (1995-05-01)

ALGOL 68C

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

        (1995-05-02)

ALGOL 68-R

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

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

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

        (1995-05-03)

ALGOL 68 Revised

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

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

        (1995-05-03)

ALGOL 68RS

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

        (1995-05-04)

ALGOL 68S

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

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

        (1995-05-04)

ALGOL C

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

        (1994-11-24)

ALGOL D

        <language>

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

ALGOL N

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

        (1994-11-24)

ALGOL W

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

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

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

        (1994-11-24)

ALGOL X

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

        [Sammet 1969, p. 194].

        (1995-05-07)

ALGOL Y

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

        (1995-05-09)

algorithim

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

        (1997-02-25)

algorithm

        <algorithm, programming> A detailed sequence of actions to
        perform to accomplish some task.  Named after 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).

        (1996-04-06)

ALgorithm DEScription

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

        (1995-04-19)

ALgorIthmic ASsembly language

        <language> (ALIAS) A machine oriented variant of {BLISS}.
        ALIAS was implemented in {BCPL} for the {PDP-9}.

        ["ALIAS", H.E. Barreveld, Int Rep, Math Dept, Delft U Tech,
        Netherlands, 1973].

        (1997-03-13)

Algorithmic Language

        {Algol 60}

Algorithmic Model

        <programming> A method of estimating software cost using
        mathematical {algorithms} based on the parameters which are
        considered to be the major cost drivers.  These estimate of
        effort or cost are based primarily on the size of the software
        or {Delivered Source Instructions} (DSI)s, and other
        productivity factors known as {Cost Driver Attributes}.

        See also {Parametric Model}.

        (1996-05-28)

Algorithmic Processor Description Language

        <language> (APDL) An {ALGOL 60}-like language for describing
        computer design, for the {CDC G-21}.

        ["The Description, Simulation, and Automatic Implementation of
        Digital Computer Processors", J.A. Darringer, Ph.D Thesis EE
        Dept, CMU May 1969].

        (1995-11-26)

Algorithmic Test Case Generation

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

        (1996-05-10)

ALGY

        <language> An early language for {symbolic mathematics}.

        [Sammet 1969, p. 520].

        (1995-04-12)

ALIAS

        {ALgorIthmic ASsembly language}

alias

        1. <operating system> A name, usually short and easy to
        remember and type, that is translated into another name or
        string, usually long and difficult to remember or type.  Most
        {command interpreters} (e.g. {Unix}'s {csh}) allow the user to
        define aliases for commands, e.g. "alias l ls -al".  These are
        loaded into memory when the interpreter starts and are
        expanded without needing to refer to any file.

        2. <networking> One of several alternative {hostnames} with
        the same {Internet address}.  E.g. in the {Unix} {hosts}
        database (/etc/hosts or {NIS} map) the first field on a line
        is the {Internet address}, the next is the official hostname
        (the "{canonical} name" or "{CNAME}") and any others are
        aliases.

        Hostname aliases often indicate that the host with that alias
        provides a particular network service such as {archie},
        {finger}, {FTP}, or {World-Wide Web}.  The assignment of
        services to computers can then be changed simply by moving an
        alias (e.g. www.doc.ic.ac.uk) from one {Internet address} to
        another, without the clients needing to be aware of the
        change.

        3. <file system> The name used by {Apple computer, Inc.} for
        {symbolic links} when they added them to the {System 7}
        {operating system} in 1991.

        (1997-10-22)

aliasing

        1. <jargon> When several different identifiers refer to the
        same object.  The term is very general and is used in many
        contexts.

        See {alias}, {aliasing bug}, {anti-aliasing}.

        2. <hardware> (Or "shadowing") Where a hardware device
        responds at multiple addresses because it only decodes a
        subset of the {address lines}, so different values on the
        other lines are ignored.

        (1998-03-13)

aliasing bug

        {stale pointer bug}

Alice

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

        (1995-01-19)

alife

        {artificial life}

A-Life

        {artificial life}

ALJABR

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

        E-mail: <aljabr@fpr.com>.

        (1995-02-21)

Allegro

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

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

        (1997-10-15)

all-elbows

        <jargon> Said of a {TSR} (terminate-and-stay-resident)
        {mess-dos} program, such as the N pop-up calendar and
        calculator utilities that circulate on {BBS} systems:
        unsociable.  Used to describe a program that {rude}ly steals
        the resources that it needs without considering that other
        TSRs may also be resident.  One particularly common form of
        rudeness is lock-up due to programs fighting over the keyboard
        interrupt.

        (1995-02-21)

ALLIANCE

        <tool> A complete set of {CAD} tools for teaching Digital
        {CMOS} {VLSI} Design in Universities.  It includes a {VHDL}
        compiler and simulator, {logic synthesis} tools, and automatic
        place and route tools.  ALLIANCE is the result of a ten years
        effort at University Pierre et Marie Curie (PARIS VI, France).

        It runs on {Sun4}, not well supported: {MIPS}/{Ultrix},
        {386}/{SystemV}.

        Current version: 1.1 (as of 1993-02-16).

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

        Mailing list: <alliance-request@masi.ibp.fr>.

        E-mail: <cao-vlsi@masi.ibp.fr>.

        (1993-02-16)

ALLOY

        <language> A language by Thanasis Mitsolides
        <mitsolid@cs.nyu.edu> which combines {functional programming},
        {object-oriented programming} and {logic programming} ideas,
        and is suitable for {massively parallel} systems.

        Evaluating modes support serial or parallel execution, {eager
        evaluation} or {lazy evaluation}, {nondeterminism} or multiple
        solutions etc.  ALLOY is simple as it only requires 29
        primitives in all (half of which are for {object oriented
        programming} support).

        It runs on {SPARC}.

        {(ftp://cs.nyu.edu/pub/local/alloy/)}.

        ["The Design and Implementation of ALLOY, a Parallel Higher
        Level Programming Language", Thanasis Mitsolides
        <mitsolid@cs2.nyu.edu>, PhD Thesis NYU 1990].

        (1991-06-11)

ALM

        {Assembly Language for Multics}

Aloha

        <networking> (From the Hawaiian greeting) A system of
        {contention resolution} devised at The {University of Hawaii}.
        {Packets} are {broadcast} when ready, the sender listens to
        see if they collide and if so re-transmits after a random
        time.  {Slotted Aloha} constrains packets to start at the
        beginning of a time slot.  Basic Aloha is appropriate to long
        propagation time nets (e.g. satellite).  For shorter
        propagation times, {carrier sense} {protocols} are possible.

        (1995-12-10)

Aloha Net

        <networking> (From the Hawaiian greeting) One of the first
        functioning {networks} in the USA, conceived and implimented
        at the {University of Hawaii} campus at Manoa.  Its purpose
        was to link the University {mainframe} computer to client
        computers located on outer islands at University campuses.
        Put in place in the early 1970s, it was dubed the Aloha Net.
        {Key punch} cards were fed through a reader, and sent over the
        commercial phone lines.

        (1995-12-10)

Alonzo Church

        <person> A twentieth century mathematician and logician, and
        one of the founders of computer science.  Church invented the
        {lambda-calculus} and posited a version of the {Church-Turing
        thesis}.

        (1995-03-25)

ALP

        <language> A {list processing} extension of {Mercury
        Autocode}.

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

        (1995-01-24)

ALPAK

        <library> A subroutine package used by {ALTRAN}.

        ["The ALPAK System for Nonnumerical Algebra on a Digital
        Computer", W.S. Brown, Bell Sys Tech J 42:2081, 1963].

        [Sammet 1969, p. 502].

        (1995-05-10)

ALPHA

        <language> (Or "Input") An extension of {ALGOL 60} for the
        {M-20} computer developed by A.P. Ershov at Novosibirsk in
        1961.  ALPHA includes {matrix} operations, {slices}, and
        complex arithmetic.

        ["The Alpha Automatic Programming System", A.P. Ershov ed.,
        A-P 1971].

        (1995-05-10)

Alpha

        1. <tool> A {compiler generator} written by Andreas Koschinsky
        <koschins@cs.tu-berlin.de> and described in his thesis at the
        {Technische Universitaet Berlin}.  Alpha takes an {attribute
        grammar} and uses {Bison} and {Flex} to generate a {parser}, a
        {scanner} and an {ASE evaluator} (Jazayeri and Walter).

        The documentation is in german.

        (1993-02-16)

        2. <processor> {DEC Alpha}.

        (1995-05-10)

Alpha AXP 21164

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

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

        (1995-05-10)

alpha/beta pruning

        <games, algorithm> An optimisation of the {minimax}
        {algorithm} for choosing the next move in a two-player game.
        The position after each move is assigned a value.  The larger
        this value, the better the position is for me.  Thus, I will
        choose moves with maximum value and you will choose moves with
        minimum value (for me).

        If it is my move and I have already found one move M with
        value alpha then I am only interested in other moves with
        value greater than alpha.  I now consider another of my
        possible moves, M', to which you could reply with a move with
        value beta.  I know that you would only make a different reply
        if it had a value less than beta.  If beta is already less
        than alpha then M' is definitely worth less than M so I can
        reject it without considering any other replies you might
        make.

        The same reasoning applies when considering my replies to your
        reply.  An alpha cutoff is when your reply gives a lower value
        than the current maximum (alpha) and a beta cutoff is when my
        reply to your reply gives a higher value than the current
        minimum value of your reply (beta).

        In short, if you've found one possible move, you need not
        consider another move which your opponent can force to be
        worse than the first one.

        (1997-05-05)

alpha conversion

        <theory> In {lambda-calculus} and {reduction}, the renaming of
        a {formal parameter} in a {lambda abstraction}.  This does not
        change the meaning of the abstraction.  For example:

                \ x . x+1  <-->  \ y . y+1

        If the {actual argument} to a lambda abstraction contains
        instances of the abstraction's formal parameter then it is
        necessary to rename the parameter before applying the
        abstraction to avoid {name capture}.

        (1995-05-10)

Alpha EV6

        {EV6}

Alpha Geek

        <job> The head {geek} or geek's geek.  When no one else knows
        the answer, or several techno-types give conflicting advise,
        or the error message says "consult your administrator" and you
        *are* the administrator, you ask the Alpha Geek.

        (1997-06-25)

alphanumeric

        <character> A decimal digit or a letter (upper or lower case).
        Typically, "letters" means only English letters ({ASCII} A-Z
        plus a-z) but it may also include non-English letters in the
        Roman alphabet, e.g., e-{acute}, c-{cedilla}, the {thorn
        letter}, and so on.  Perversely, it may also include the
        {underscore} character in some contexts.

        (1997-09-11)

alpha particle

        {bit rot}

Alphard

        <language> (Named after the brightest star in Hydra) A
        {Pascal}-like language developed by Wulf, Shaw and London of
        {CMU} in 1974.  Alphard supports {data abstraction} using the
        'form', which combines a specification and an implementation.

        ["Abstraction and Verification in Alphard: Defining and
        Specifying Iteration and Generators", Mary Shaw, CACM
        20(8):553-563, Aug 1977].

        (1995-05-10)

alpha testing

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

        (1996-05-10)

ALPS

        <language> 1. An 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 <dpeters@theshop.net> reports that in the summer
        of 1966 he attended the second year of an {NSF}-sponsored
        summer institute in mathematics and computing at the
        University of Oklahoma.  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].

        (1994-11-24)

alt

        <character> /awlt/ 1. The alt {modifier key} on many
        {keyboards}, including the {IBM PC}.  On some keyboards and
        {operating systems}, (but not the IBM PC) the alt key sets bit
        7 of the character generated.

        See {bucky bits}.

        2. The "{clover}" or "Command" key on a {Macintosh}; use of
        this term usually reveals that the speaker hacked PCs before
        coming to the Mac (see also {feature key}).  Some Mac hackers,
        confusingly, reserve "alt" for the Option key (and it is so
        labelled on some Mac II keyboards).

        3. (Obsolete {PDP-10}; often "ALT") An alternate name for the
        {ASCII} ESC character (Escape, ASCII 27), after the keycap
        labelling on some older {terminals}; also "altmode"
        (/awlt'mohd/).  This character was almost never pronounced
        "escape" on an {ITS} system, in {TECO} or under {TOPS-10},
        always alt, as in "Type alt alt to end a TECO command" or
        "alt-U onto the system" (for "log onto the [ITS] system").
        This usage probably arose because alt is easier to say.

        4. <messaging> One of the {Usenet} {newsgroup} {hierarchies}.
        It was founded by {John Gilmore} and {Brian Reid}.  The alt
        hierarchy is special in that anyone can create new groups here
        without going though the normal voting proceduers, hence the
        regular appearence of new groups with names such as
        "alt.swedish.chef.bork.bork.bork".

        (1997-04-12)

ALTAC

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

        [Sammet 1969, p.146].

        (1995-03-16)

Altair 8800

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

        (1997-06-30)

Altair 9000

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

        (1995-03-14)

Alta Vista

        <World-Wide Web> A {World-Wide Web} site provided by {Digital}
        which features a very fast Web and {Usenet} {search engine}.

        As of April 1996 its word index is 33GB in size.  AltaVista is
        currently (June 1996) the largest Web index, with 30 million
        pages from 225,000 servers, and three million articles from
        14,000 {Usenet} news groups.  It is accessed over 12 million
        times per weekday.

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

        (1996-06-10)

alt bit

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

altmode

        {alt}

ALTRAN

        <language> A {FORTRAN} extension for {rational algebra}
        developed by W.S. Brown of {Bell Labs} ca. 1968.

        ["The ALTRAN System for Rational Function Manipulation - A
        Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971)].

        (1995-06-01)

alt.sources

        <messaging, programming> A {Usenet} {newsgroup} for posting
        program {source code}.

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

        (1995-10-18)

ALU

        1. <processor> {Arithmetic and Logic Unit}.

        2. <body> {Association of Lisp Users}.

Aluminum Book

        <publication>

        ["Common LISP: The Language, 2nd Edition", {Guy L. Steele
        Jr.}, Digital Press 1990, ISBN 1-55558-041-6].

        Due to a technical screwup some printings of the second
        edition are actually what the author calls "yucky green".

        {On-line version
        (http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html)}.

        See also {book titles}.

        (1997-06-25)

Alvey

        <project, body> A funding programme for collaborative research
        in the UK.

        (1995-06-01)

AM

        1. <communications> {Amplitude Modulation}.

        2. <artificial intelligence> A program by {Doug Lenat} to
        discover concepts in elementary mathematics.  AM was written
        in 1976 in {Interlisp}.  From 100 fundamental concepts and
        about 250 {heuristics} it discovered several important
        mathematical concepts including subsets, disjoint sets, sets
        with the same number of elements, and numbers.  It worked by
        filling slots in {frames} maintaining an agenda of
        resource-limited prioritised tasks.

        AM's successor was {Eurisko}.

        {(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}.

        (1999-04-19)

am

        <networking> The {country code} for Armenia.

        Used for the {vanity domain} "i.am".

        (1999-01-27)

Amanda

        <language> A {functional programming language} derived mostly
        from {Miranda} with some small changes.  Amanda was written by
        Dick Bruin and implemented on {MS-DOS} and {NeXT}.  It is
        available as an {interperator} only.

        (1998-04-27)

A Manufacturing Language

        <language, robotics> (AML) A {high-level language} developed
        by {IBM} in the 1980s for industrial {robots}.

        ["AML: A Manufacturing Language", R.H. Taylor et al, Inst J
        Robot Res 1(3):19-43].

        (1995-09-25)

Amber

        <language> 1. A {functional programming} language which adds
        {CSP}-like {concurrency}, {multiple inheritance} and
        {persistence} to {ML} and generalises its type system.  It is
        similar to {Galileo}.  Programs must be written in two type
        faces, roman and italics!  It has both {static types} and
        {dynamic types}.

        There is an implementation for {Macintosh}.

        ["Amber", L. Cardelli, TR Bell Labs, 1984].

        2.  An {object-oriented} distributed language based on a
        subset of {C++}, developed at {Washington University} in the
        late 1980s.

        (1994-12-08)

AMBIT

        <language> Algebraic Manipulation by Identity Translation
        (also claimed: "Acronym May Be Ignored Totally").

        An early {pattern-matching} language, developed by
        C. Christensen of Massachusetts Computer Assocs in 1964, aimed
        at algebraic manipulation.

        [Sammet 1969, pp. 454-457].

        (1994-12-08)

AMBIT/G

        <language> {AMBIT} for graphs.

        ["An Example of the Manipulation of Directed Graphs in the
        AMBIT/G Programming Language", C. Christensen, in Interactive
        Systems for Experimental Applied Mathematics, M. Klerer et al,
        eds, Academic Press 1968, pp. 423-435].

        (1994-12-08)

AMBIT/L

        <language> {AMBIT} for lists.

        A variant of AMBIT supporting list handling and {pattern
        matching} rules based on two-dimensional diagrams.

        ["An Introduction to AMBIT/L, A Diagrammatic Language for List
        Processing", Carlos Christensen, Proc 2nd ACM Symp Symb and
        Alg Manip (Mar 1971)].

        (1994-12-08)

AMBIT/S

        <language> {AMBIT} for strings.

AMBUSH

        <language> A language for {linear programming} problems in a
        materials processing and transportation network.

        ["AMBUSH - An Advanced Model Builder for Linear Programming",
        T.R. White et al, National Petroleum Refiners Assoc Comp Conf
        (Nov 1971)].

        (1995-06-19)

AMD

        1. <company> {Advanced Micro Devices}.

        2. <jargon> According to Don Olivier
        <don@hsph.harvard.edu>, his system manager came in to work one
        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".

        (1995-01-16)

AMD 29000

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

        (1995-06-19)

AMD 29027

        <processor> The {FPU} for the {AMD 29000}.

        (1995-01-16)

Amdahl

        1. <company> {Amdahl Corporation}.

        2. <person> {Gene Amdahl}.

Amdahl Corporation

        <company> A US computer manufacturer.  Amdahl is a major
        supplier of large {mainframes}, {UNIX} and {Open Systems}
        software and servers, data storage subsystems, data
        communications products, applications development software,
        and a variety of educational and consulting services.

        Amdahl products are sold in more than 30 countries for use in
        both open systems and {IBM} plug-compatible mainframe
        computing environments.

        Quarterly sales $397M, profits $13M (Aug 1994).

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

        (1995-05-23)

Amdahl's Law

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

        (1995-05-23)

AMD Am2901

        <processor> A 4-bit {bit-slice} processor from {Advanced Micro
        Devices}.  It featured sixteen 4-bit {registers} and a 4-bit
        {ALU} and operation signals to allow carry/borrow or shift
        operations and such to operate across any number of other
        2901s.  An {address sequencer} (such as the {2910}) could
        provide control signals with the use of custom {microcode} in
        {ROM}.

        (1994-11-16)

AMD Am2903

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

        (1994-11-16)

AMD Am2910

        <processor> An {address sequencer} from {Advanced Micro
        Devices}.

        (1994-11-16)

AMD K7
        
        {Athlon}

American National Standard

        <standard> (ANS) A common prefix for {ANSI} documents or
        standards, e.g.: "ANS {Forth}", or "American National Standard
        X3.215-1994".

        (1998-07-01)

American National Standards Institute

        <body, standard> (ANSI) The 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.

        (1996-11-03)

American Society of Mechanical Engineers

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

        (1995-04-21)

American Standard Code for Information Interchange

        The basis of character sets used in almost all present-day
        computers.  {US-ASCII} uses only the lower seven {bit}s
        ({character points} 0 to 127) to convey some {control codes},
        space, numbers, most basic punctuation, and unaccented letters
        a-z and A-Z.  More modern coded character sets (e.g.,
        {Latin-1}, {Unicode}) define extensions to ASCII for values
        above 127 for conveying special Latin characters (like
        accented characters, or German ess-tsett), characters from
        non-Latin writing systems (e.g., Cyrillic, or {Han
        characters}), and such desirable {glyphs} as distinct open-
        and close-quotation marks.  ASCII replaced earlier systems
        such as {EBCDIC} and {Baudot}, which used fewer bytes, but
        were each {broken} in their own way.

        Computers are much pickier about spelling than humans; thus,
        hackers need to be very precise when talking about characters,
        and have developed a considerable amount of verbal shorthand
        for them.  Every character has one or more names - some
        formal, some concise, some silly.

        Individual characters are listed in this dictionary with
        alternative names from revision 2.3 of the {Usenet} ASCII
        pronunciation guide in rough order of popularity, including
        their official {ITU-T} names and the particularly silly names
        introduced by {INTERCAL}.

        See {V} {ampersand}, {asterisk}, {back quote}, {backslash},
        {caret}, {colon}, {comma}, {commercial at}, {control-C},
        {dollar}, {dot}, {double quote}, {equals}, {exclamation mark},
        {greater than}, {hash}, {left bracket}, {left parenthesis},
        {less than}, {minus}, {parentheses}, {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 {US-ASCII} to correctly represent nearly any
        language other than English became an obvious and intolerable
        {misfeature} as computer use outside the US and UK became the
        rule rather than the exception (see {software rot}).  And so
        national extensions to US-ASCII were developed, such as
        Latin-1.

        Hardware and software from the US still tends to embody the
        assumption that US-ASCII is the universal character set and
        that words of text consist entirely of byte values 65-90 and
        97-122 (A-Z and a-z); this is a major irritant to people who
        want to use a character set suited to their own languages.
        Perversely, though, efforts to solve this problem by
        proliferating sets of national characters produced an
        evolutionary pressure (especially in protocol design, e.g.,
        the {URL} standard) to stick to {US-ASCII} as a subset common
        to all those in use, and therefore to stick to English as the
        language encodable with the common subset of all the ASCII
        dialects.  This basic problem with having a multiplicity of
        national character sets ended up being a prime justification
        for {Unicode}, which was designed, ostensibly, to be the *one*
        ASCII extension anyone will need.

        A system is described as "{eight-bit clean}" if it doesn't
        mangle text with byte values above 127, as some older systems
        did.

        See also {ASCII character table}, {Yu-Shiang Whole Fish}.

        (1995-03-06)

America On-Line, Inc.

        <company, communications> (AOL) A US on-line service provider
        based in Vienna, Virginia, USA.  AOL claims to be the largest
        and fastest growing provider of on-line services in the world,
        with the most active subscriber base.  AOL offers its three
        million subscribers {electronic mail}, interactive newspapers
        and magazines, conferencing, software libraries, computing
        support, and on-line classes.

        In October 1994 AOL made {Internet} {FTP} available to its
        members and in May 1995, full Internet access including
        {World-Wide Web}.

        AOL's main competitors are {Prodigy} and {Compuserve}.

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

        (1997-08-26)

America's Multimedia Online

        <company, world-wide web> (AMO) An {Internet} technologies
        company started in 1996.  In 1999, AMO invented {Never
        Offline}.

        {Home (http://amo.net/)}.

        Address: Albuquerque, NM, USA.

        (1999-09-21)

AMI

        {Alternate Mark Inversion}

Amiga

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

        The Amiga was originally called the Lorraine, and was
        developed by a company named "Amiga" or "Amiga, Inc.", funded
        by some doctors to produce a killer game machine.  After the
        US game machine market collapsed, the Amiga company sold some
        {joysticks} but no Lorraines or any other computer.  They
        eventually floundered and looked for a buyer.

        Commodore at that time bought the (mostly complete) Amiga
        machine, infused some money, and pushed it through the final
        stages of development in a hurry.  Commodore released it
        sometime[?] in 1985.

        Most components within the machine were known by nicknames.
        The {coprocessor} commonly called the "Copper" is in fact the
        "{Video} Timing Coprocessor" and is split between two chips:
        the instruction fetch and execute units are in the "Agnus"
        chip, and the {pixel} timing circuits are in the "Denise"
        chip.

        "Agnus" and "Denise" were responsible for effects timed to the
        {real-time} position of the video scan, such as midscreen
        {palette} changes, {sprite multiplying}, and {resolution}
        changes.  Different versions (in order) were: "Agnus" (could
        only address 512K of {video RAM}), "Fat Agnus" (in a {PLCC}
        package, could access 1MB of video RAM), "Super Agnus"
        (slightly upgraded "Fat Agnus").  "Agnus" and "Fat Agnus" came
        in {PAL} and {NTSC} versions, "Super Agnus" came in one
        version, jumper selectable for PAL or NTSC.  "Agnus" was
        replaced by "Alice" in the A4000 and A1200, which allowed for
        more {DMA} channels and higher bus {bandwidth}.

        "Denise" outputs binary video data (3*4 bits) to the "Vidiot".
        The "Vidiot" is a hybrid that combines and amplifies the
        12-bit video data from "Denise" into {RGB} to the {monitor}.

        Other chips were "Amber" (a "flicker fixer", used in the A3000
        and Commodore display enhancer for the A2000), "Gary" ({I/O},
        addressing, {glue logic}), "Buster" (the {bus controller},
        which replaced "Gary" in the A2000), "Buster II" (for handling
        the Zorro II/III cards in the A3000, which meant that "Gary"
        was back again), "Ramsey" (The {RAM} controller), "DMAC" (The
        DMA controller chip for the WD33C93 {SCSI adaptor} used in
        the A3000 and on the A2091/A2092 SCSI adaptor card for the
        A2000; and to control the {CD-ROM} in the {CDTV}), and "Paula"
        ({Peripheral}, Audio, {UART}, {interrupt} Lines, and {bus
        Arbiter}).

        There were several Amiga chipsets: the "Old Chipset" (OCS),
        the "Enhanced Chipset" (ECS), and {AGA}.  OCS included "Paula",
        "Gary", "Denise", and "Agnus".

        ECS had the same "Paula", "Gary", "Agnus" (could address 2MB
        of Chip RAM), "Super Denise" (upgraded to support "Agnus" so
        that a few new {screen modes} were available).  With the
        introduction of the {Amiga A600} "Gary" was replaced with
        "Gayle" (though the chipset was still called ECS).  "Gayle"
        provided a number of improvments but the main one was support
        for the A600's {PCMCIA} port.

        The AGA chipset had "Agnus" with twice the speed and a 24-bit
        palette, maximum displayable: 8 bits (256 colours), although
        the famous "{HAM}" (Hold And Modify) trick allows pictures of
        256,000 colours to be displayed.  AGA's "Paula" and "Gayle"
        were unchanged but AGA "Denise" supported AGA "Agnus"'s new
        screen modes.  Unfortunately, even AGA "Paula" did not support
        High Density {floppy disk drives}.  (The Amiga 4000, though,
        did support high density drives.)  In order to use a high
        density disk drive Amiga HD floppy drives spin at half the
        rotational speed thus halving the data rate to "Paula".

        Commodore Business Machines went bankrupt on 1994-04-29,
        the German company {Escom AG} bought the rights to the Amiga
        on 1995-04-21 and the Commodore Amiga became the Escom
        Amiga.  In April 1996 Escom were reported to be making the
        {Amiga} range again but they too fell on hard times and
        {Gateway 2000} (now called Gateway) bought the Amiga brand
        on 1997-05-15.

        Gateway licensed the Amiga operating system to a German
        hardware company called {Phase 5} on 1998-03-09.  The
        following day, Phase 5 announced the introduction of a
        four-processor {PowerPC} based Amiga {clone} called the
        "{pre\box}".  Since then, it has been announced that the
        new operating system will be a version of {QNX}.

        On 1998-06-25, a company called {Access Innovations Ltd}
        {announced plans
        (http://www.compulink.co.uk/~index/aaplus.html)} to build the
        next Amiga custom chip set, the {AA+}.

        The new chips will be based partly on the AGA chips but will
        have a new fully 32-bit functional core with 16-bit AGA
        {hardware register emulation} to provide {backwards
        compatibility} with the AGA chip set.  The new core will
        improve memory access, and so DMA access for the video display
        will take significantly less bandwidth and will be less time
        critical.  This will result in fewer conflicts with processor
        operations.

        The AA+ chips will also allow 16-bit displays of resolutions
        up to 1024x768, 16-bit sound and high-density floppy drive
        support.  An interface will implement off-chip support for low
        cost serial, parallel, {UDMA}, {IDE} and {USB} connections.
        Features such as {Firewire}, {modems} and {networks} may be
        implemented using a plug-in {PCI} card or an integrated PCI
        chip board.

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

        (1999-03-06)

Amiga E

        <tool> An {Amiga} {E} {compiler} by Wouter van Oortmerssen.

        Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga.  It
        allows {in-line} {assembly code} and has an integrated
        {linker}.  It has a large set of integrated functions and
        {modules}.  V2.04 includes as modules a flexible {type}
        system, quoted expressions, {immediate} and typed lists, low
        level {polymorphism} and {exception} handling.  It is written
        in {assembly language} and E.

        Version 2.1b

        {(ftp://ftp.wustl.edu/pub/aminet/dev/e/AmigaE21b.lha)}.
        {(ftp://amiga.physik.unizh.ch/amiga/dev/lang/AmigaE21b.lha)}.

        Mailing list: <amigae@bookhouse.cts.com>.

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

        (1997-08-26)

Aminet

        <networking> (Amiga network) A collection of {FTP} {mirrors}
        that contain several {gigabytes} of {freely distributable
        software} for the {Amiga} range of computers.

        {Home, ftp.wustl.edu (ftp://ftp.wustl.edu)}.

        (1997-08-31)

AML

        {A Manufacturing Language}

AML/E

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

        (1995-10-03)

AMO

        {America's Multimedia Online}

Amoeba

        1. <operating system> A distributed {operating system}
        developed by {Andrew S. Tanenbaum} and others of {Vrije
        Universiteit, Amsterdam}.  Amoeba is only available under
        licence from the VUA, but is free of charge and includes all
        {source}, {binaries} and documentation.

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

        [Features?]

        2. <computer, abuse> A derogatory term for {Commodore}'s
        {Amiga} {personal computer}.

        (1997-05-07)

AMP

        {Algebraic Manipulation Package}

amper

        {ampersand}

ampersand

        <character> "&" {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"?]

        (1995-03-06)

AMPL

        <language> Along with {mpl}, the intrinsic parallel languages
        for {MasPar}'s computers.  AMPL and mpl are parallel variants
        of {C}.  Ampl is actually now a {gcc} port.

        ["AMPL: Design, Implementation and Evaluation of a
        Multiprocessing Language", R. Dannenberg, CMU 1981].

        ["Loglan Implementation of the AMPL Message Passing System",
        J. Milewski SIGPLAN Notices 19(9):21-29 (Sept 1984)].

        [Are these the same language?]

        (1995-11-01)

AMPLE

        <language, music> A {FORTH}-like language for programming the
        500/5000 series of add-on music synthesisers for the {BBC
        Microcomputer}.  AMPLE was produced by Hybrid Technologies,
        Cambridge, England in the mid 1980s.  Many AMPLE programs were
        published in Acorn User magazine.

        (1995-11-01)

Amplitude Modulation

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

        (1996-06-18)

amp off

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

        (1995-11-14)

AMPPL-II

        {Associative Memory Parallel Processing Language}

AMS

        {Andrew Message System}

AMTRAN

        {Automatic Mathematical TRANslation}

Amulet

        <processor> An implementation or the {Advanced RISC Machine}
        {microprocessor} architecture using the {micropipeline} design
        style.  In April 1994 the Amulet group in the Computer Science
        department of {Manchester University} took delivery of the
        AMULET1 {microprocessor}.  This was their first large scale
        asynchronous circuit and the world's first implementation of a
        commercial microprocessor architecture (ARM) in {asynchronous
        logic}.

        Work was begun at the end of 1990 and the design despatched
        for fabrication in February 1993.  The primary intent was to
        demonstrate that an asynchronous microprocessor can consume
        less power than a synchronous design.

        The design incorporates a number of concurrent units which
        cooperate to give instruction level compatibility with the
        existing synchronous part.  These include an Address unit,
        which autonomously generates instruction fetch requests and
        interleaves ({nondeterministic}ally) data requests from the
        Execution unit; a {Register} file which supplies operands,
        queues write destinations and handles data dependencies; an
        Execution unit which includes a multiplier, a shifter and an
        {ALU} with data-dependent delay; a Data interface which
        performs byte extraction and alignment and includes an
        {instruction prefetch} buffer, and a control path which
        performs {instruction decode}.  These units only synchronise
        to exchange data.

        The design demonstrates that all the usual problems of
        processor design can be solved in this asynchronous framework:
        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)}

        (1994-12-08)

an

        <networking> The {country code} for the Netherlands Antilles
        (Dutch Antilles).

        (1999-01-27)

analog

        <spelling> American spelling of {analogue}.

        (1995-11-14)

Analog Hardware Design Language

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

        (1995-04-09)

analogue

        <electronics> (US: "analog") A description of a continuously
        variable signal or a circuit or device designed to handle such
        signals.  The opposite is "discrete" or "{digital}".

        Analogue circuits are much harder to design and analyse than
        digital ones because the designer must take into account
        effects such as the gain, linearity and power handling of
        components, the resistance, capacitance and inductance of PCB
        tracks, wires and connectors, interference between signals,
        power supply stability and more.  A digital circuit design,
        especially for high switching speeds, must also take these
        factors into account if it is to work reliably, but they are
        usually less critical because most digital components will
        function correctly within a range of parameters whereas such
        variations will corrupt the outputs of an analogue circuit.

        See also {analogue computer}.

        (1995-11-14)

analogue computer

        <computer, hardware> A machine or electronic circuit designed
        to work on numerical data represented by some physical
        quantity (e.g. rotation or displacement) or electrical
        quantity (e.g. voltage or charge) which varies continuously,
        in contrast to {digital} signals which are either 0 or 1.

        For example, the turning of a wheel or changes in voltage can
        be used as input.  Analogue computers are said to operate in
        {real time} and are used for research in design where many
        different shapes and speeds can be tried out quickly.  A
        computer model of a car suspension allows the designer to see
        the effects of changing size, stiffness and damping.

        (1995-05-01)

Analogy Model

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

        (1996-05-28)

Analytical Engine

        <history> A design for a general-purpose digital computer
        proposed by {Charles Babbage} in 1837 as a successor to his
        earlier special-purpose {Difference Engine}.

        The Analytical Engine was to be built from brass gears powered
        by steam with input given on {punched cards}.  Babbage could
        never secure enough funding to build it, and so it was, and
        never has been, constructed.

        {(http://www.fourmilab.ch/babbage/)}.

        (1998-10-19)

Analytical Machine

        {Analytical Engine}

anchor

        <hypertext> (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 <A..>..</A> 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.

                <A HREF="http://foldoc.doc.ic.ac.uk/">
                Free On-line Dictionary of Computing</A>

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

                <A NAME="chapter3">

        The name or "fragment identifier" is appended to the URL of
        the page 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).

        (1997-11-15)

ANCP

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

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

        (1995-11-15)

AND

        <logic> (Or "conjunction") The {Boolean} function which is
        true only if all its arguments are true.  The {truth table}
        for the two argument AND function is:

         A | B | A AND B
         --+---+---------
         F | F |    F
         F | T |    F
         T | F |    F
         T | T |    T

        AND is often written as an inverted "V" in texts on logic.  In
        the {C} programming language it is represented by the &&
        (logical and) {operator}.

        (1997-11-15)

ANDF

        {Architecture Neutral Distribution Format}

Andorra-I

        <language> A {parallel} {logic programming} language with the
        {OR-parallelism} of {Aurora} and the {AND-parallelism} of
        {Parlog}.

        ["Andorra-I: A Parallel Prolog System that Transparently
        Exploits both And- and Or-Parallelism", V.S Costa et al,
        SIGPLAN Notices 26(7):83-93 (July 1991)].

        [Imperial College?  Who?]

        (1995-11-24)

Andorra Kernel Language

        <language> (AKL) The successor to {KAP} by S. Janson
        <sverker@sics.se>.

        A prototype implementation is available from the author.

        ["Programming Paradigms of the Andorra Kernel Language",
        S. Janson et al in Logic Programming: Proc 1991 Intl Symp, MIT
        Press 1991].

        (1994-11-24)

Andorra-Prolog

        <language>

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

        (1995-11-24)

Andrei Markov

        <person> 1856-1922.  The Russian mathematician, after who
        {Markov chains} were named.

        {Biography
        (http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Markov.html
)}.

        [Other contributions?]

        (1995-10-06)

Andrew File System

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

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

        (1994-11-24)

Andrew Fluegelman

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

        (1997-08-25)

Andrew Message System

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

        (1994-11-24)

Andrew Project

        <project> A distributed system project for support of
        educational and research computing at {Carnegie Mellon
        University}, named after Andrew Carnegie, an American
        philanthropist who provided money to establish CMU.

        See also {Andrew File System}, {Andrew Message System},
        {Andrew Toolkit}, {class}.

        {Home FTP (ftp://emsworth.andrew.cmu.edu)}

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

        [More detail?]

        (1997-11-17)

Andrew S. Tanenbaum

        {Andrew Tanenbaum}

Andrew Tanenbaum

        <person> Professor Andrew S. Tanenbaum (1941-) of the {Vrije
        Universiteit, Amsterdam} in 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 <ast@cs.vu.nl>.

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

        (1996-04-23)

Andrew Toolkit

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

        (1995-11-24)

An Evolutionary System for On-line Programming

        <database> (AESOP) An early interactive {query system} on the
        {IBM 1800} using a {light pen}.

        ["AESOP: A Final Report: A Prototype Interactive Information
        Control System", J.K. Summers et al, in Information System
        Science and Technology, D. Walker ed, 1967].

        [Sammet 1969, p. 703].

        (1995-04-04)

Angel

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

        [Ariel Burton]

        (1995-11-24)

angle bracket

        <character> Either of the characters "<" (less-than, {ASCII}
        60) and ">" (greater-than, ASCII 62).  Typographers in the
        {Real World} use angle brackets which are either taller and
        slimmer (the {ISO} "{Bra}" and "{Ket}" characters), or
        significantly smaller (single or double guillemets) than the
        less-than and greater-than signs.

        See {broket}.

        (1995-11-24)

angry fruit salad

        <abuse> A bad visual-interface design that uses too many
        colours.  (This term derives, of course, from the bizarre
        day-glo colours found in canned fruit salad).  Too often one
        sees similar effects from interface designers using colour
        window systems such as {X}; there is a tendency to create
        displays that are flashy and attention-getting but
        uncomfortable for long-term use.

        (1995-11-24)

ANI

        {Automatic Number Identification}

Animated GIF

        <graphics, file format> (GIF89a) A variant of the {GIF}
        {image} format, often used on {World-Wide Web} pages to
        provide moving {icons} and banners.

        The GIF89a format supports multiple "frames" that give the
        impression of motion when displayed in sequence, much like a
        flip book.  The animation may repeat continuously or play
        once.

        Animated GIFs aren't supported by earlier {web browsers},
        however the first frame of the image is still shown.

        There are many utilities to create animated GIFs from a
        sequence of individual GIF files.  There are also utilities
        that will produce animated GIFs automatically from a piece of
        text or a single image.

        One problem with this format is the size of the files
        produced, as they are by definition a sequence of individual
        images.  Apart from minimising the number of frames, the best
        way to decrease file size is to assist the {LZW} compression
        by using blocks of solid colour, avoid {dithering}, and use
        fewer colours.  If areas of an image don't change from one
        frame to another, they don't need to be redrawn so make the
        area a transparent block in the second frame.
        
        (1999-08-01)

animation

        <graphics> The creation of artificial moving images.

        {Usenet} newsgroup: {news:comp.graphics.animation}.  {FAQ
        (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.animation)}.

        (1995-11-24)

Animus

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

        (1995-11-24)

ANL

        {Argonne National Laboratory}

Anna

        {ANNotated Ada}

annealing

        {simulated annealing}

annotate

        {annotation}

ANNotated Ada

        <language, specification> (Anna) A {specification} language
        developed at {Stanford University} ca. 1980 for formally
        specifying {Ada} programs.  It has a Specification Analyzer
        and a Consistency Checking System.  It adds semantic
        {assertions} in the form of Ada {comments}.

        {(ftp://anna.stanford.edu/pub/anna/)}

        ["ANNA - A Language for Annotating Ada Programs", David
        Luckham et al, Springer 1987].

        (1994-11-01)

annotation

        1. <programming, compiler> Extra information associated with a
        particular point in a document or program.  Annotations may be
        added either by a {compiler} or by the programmer.  They are
        not usually essential to the correct function of the program
        but give hints to improve performance.

        2. <hypertext> A new commentary {node} linked to an existing
        node.  If readers, as well as authors, can annotate nodes,
        then they can immediately provide feedback if the information
        is misleading, out of date or plain wrong.

        (1995-11-26)

annoybot

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

        (1997-12-23)

annoyware

        <software> {Shareware} that reminds you frequently that you
        are using an unregistered copy.

        (1998-04-29)

Annual Change Traffic

        <software> (ACT) The fraction of the software product's
        {source code} which changes during a year, either through
        addition or modification.  The ACT can be used to determine
        the product size in order to estimate software maintenance
        effort.

        (1996-05-29)

anonymous FTP

        <networking> An interactive service provided by many
        {Internet} {hosts} allowing any user to transfer documents,
        files, programs, and other archived data using {File Transfer
        Protocol}.  The user logs in using the special {user name}
        "ftp" or "anonymous" and his {e-mail address} as {password}.
        He then has access to a special directory hierarchy containing
        the publically accessible files, typically in a subdirectory
        called "pub".  This is usually a separate area from files used
        by local users.

        A reference like

                ftp: euagate.eua.ericsson.se /pub/eua/erlang/info

        means that files are available by anonymous FTP from the host
        called euagate.eua.ericsson.se in the directory (or file)
        /pub/eua/erlang/info.  Sometimes the {hostname} will be
        followed by an {Internet address} in parentheses.  The
        directory will usually be given as a path relative to the
        anonymous FTP login directory.  A reference to a file
        available by FTP may also be in the form of a {URL} starting
        "ftp:".

        See also {Archie}, {archive site}, {EFS}, {FTP by mail},
        {World-Wide Web}.

        (1995-11-26)

ANother Tool for Language Recognition

        <tool> (ANTLR) The {parser generator} in the {Purdue
        Compiler-Construction Tool Set}.

        (1995-10-26)

ANR

        {Automatic Network Routing}

ANS

        {American National Standard}

ANSA

        {Advanced Network Systems Architecture}

ANSI

        {American National Standards Institute}

ANSI C

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

        {cgram} is a {grammar} for ANSI C, written in {Scheme}.
        {unproto} is a program for removing function prototypes to
        translate ANSI C to standard C.  {lcc} is a {retargetable}
        {compiler} for ANSI C.

        (1995-11-26)

ANSI Minimal BASIC

        <language, standard> ANS X3.60-1978.

        [Details?]

        (1995-11-29)

ANSI/SPARC

        {ANSI Standards Planning And Requirments Committee}

ANSI/SPARC Architecture

        <architecture> (Or "ANSI/SPARC model") {ANSI/SPARC}'s layered
        model of {database} architecture comprising a {physical
        schema}, a {conceptual schema} and user {views}.

        [Reference?]

        (1998-12-17)

ANSI/SPARC model

        {ANSI/SPARC Architecture}

ANSI X12

        <standard> Standards defining the structure, format, and
        content of business transactions conducted through {Electronic
        Data Interchange} (EDI).  ANSI X12 is produced by the
        committee ASC X12, supported by the {Data Interchange
        Standards Association, Inc.} (DISA).

        [{(http://www.onlinewbc.org/Docs/procure/standard.html)}].

        (1999-09-18)

ANSI Z39.50

        <networking, standard> Information Retrieval Service
        Definition and Protocol Specification for Library
        Applications, officially known as ANSI/NISO Z39.50-1992, and
        ANSI/NISO Z39.50-1995.  This {standard}, used by {WAIS},
        specifies an {OSI} {application layer} service to allow an
        application on one computer to query a {database} on another.

        Z39.50 is used in libraries and for searching some databases
        on the {Internet}.  The US {Library of Congress
        (http://lcweb.loc.gov/z3950/agency/)} is the official
        maintanence agency for Z39.50.

        {Index Data}, a Danish company, have released a lot of Z39.50
        code.  Their {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)}.

        (1996-07-22)

Anthony Hoare

        <person> (C. Anthony R. Hoare, Tony) A computer scientist
        working on programming languages, especially {parallel} ones.
        Hoare was responsible for {Communicating Sequential Processes}
        (CSP).

        See also: {pointer}, {Simone}.

        [Did he invent the Hoare {powerdomain}}?  Other details?]

        (1999-07-22)

anti-aliasing

        <graphics> A technique used on a {grey-scale} or colour
        {bitmap display} to make diagonal edges appear smoother by
        setting {pixels} near the edge to intermediate colours
        according to where the edge crosses them.

        The most common example is black characters on a white
        background.  Without anti-aliasing, diagonal edges appear
        jagged, like staircases, which may be noticeable on a low
        {resolution} display.  If the display can show intermediate
        greys then anti-aliasing can be applied.  A pixel will be
        black if it is completely within the black area, or white if
        it is completely outside the black area, or an intermediate
        shade of grey according to the proportions of it which overlap
        the black and white areas.  The technique works similarly with
        other foreground and background colours.

        "Aliasing" refers to the fact that many points (which would
        differ in the real image) are mapped or "aliased" to the same
        pixel (with a single value) in the digital representation.

        (1998-03-13)

antichain

        <mathematics> A subset S of a {partially ordered set} P is an
        antichain if,

        for all x, y in S,  x <= y  =>  x = y

        I.e. no two different elements are related.

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

        (1995-02-03)

antisymmetric

        <mathematics> A {relation} R is antisymmetric if,

        for all x and y,  x R y and y R x  =>  x == y.

        I.e. no two different elements are mutually related.

        {Partial orders} and {total orders} are antisymmetric.  If R
        is also {symmetric} (x R y => y R x) then x R y => x == y.
        I.e. different elements are not related.

        (1995-04-18)

antivirus software

        <tool> Programs to detect and remove computer {viruses}.  The
        simplest kind scans executable files and {boot blocks} for a
        list of known viruses.  Others are constantly active,
        attempting to detect the actions of general classes of
        viruses.  antivirus software should always include a regular
        update service allowing it to keep up with the latest viruses
        as they are released.

        (1998-02-25)

ANTLR

        {ANother Tool for Language Recognition}

ANU

        {Australian National University}

ANU ML

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

        (1995-11-26)

anytime algorithm

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

        [Example?]

        (1998-02-26)

ao

        <networking> The {country code} for Angola.

        (1999-01-27)

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.

        (1995-11-26)

APA

        {Application Portability Architecture}

Apache

        <World-Wide Web, project> 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)}.

        (1996-08-25)

APAL

        {Array Processor Assembly Language}

APAREL

        {A PArse REquest Language}

A PArse REquest Language

        <language> (APAREL) A {PL/I} extension to provide {BNF}
        {parsing} routines, for {IBM 360}.

        ["APAREL: A Parse Request Language", R.W. Balzer et al, CACM
        12(11) (Nov 1969)].

        (1995-11-26)

APC

        {Association for Progressive Communications}

APDL

        {Algorithmic Processor Description Language}

apE

        <graphics> A graphics package from the Ohio Supercomputer
        Centre.

        (1995-11-29)

API

        {Application Program Interface}

APIC

        {Advanced Programmable Interrupt Controller}

APL

        {A Programming Language}

APL2

        <language> An {APL} extension from {IBM} with nested {arrays}.

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

        (1995-11-29)

APLGOL

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

        (1995-11-29)

APLWEB

        <text, tool> A {Web} to {APL} and {Web} to {TeX} translator by
        Dr. Christoph von Basum of The University of Bielefeld,
        Germany.

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

        (1992-12-27)

APM

        {Advanced Power Management}

Apollo Computer

        <company> A company making {workstations} often used for {CAD}.

        Apollo became a division of {Hewlett-Packard} some time before
        November 1995.

        [Dates?  More details?]

        (1998-03-13)

apostrophe

        {single quote}

app

        {application program}

APPC

        {Advanced Program-to-Program Communications}

AppKit

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

        (1995-03-13)

APPLE

        <language> A revision of {APL} for the {Illiac IV}.

        (1995-04-28)

Apple Computer, Inc.

        <company> Manufacturers of the {Macintosh} range of {personal
        computers} as well as the earlier {Apple I}, {Apple II} and
        {Lisa}.  Founded on 1 April 1976 by {Steve Jobs} and {Steve
        Wozniak}.

        Apples were among the first {microcomputers}.  They originally
        used the {6502} processor and are still being made (August
        1994), now using the {65816}.  The {Apple II} line, which
        includes the {Apple I}, is the longest existing line of
        microcomputers.

        Steve Jobs left Apple (involuntarily) and started {NeXT} and
        later returned when Apple bought NeXT in late 1997(?).

        Quarterly sales $2150M, profits $138M (Aug 1994).
        {Home (http://www.apple.com/)}.

        [Dates?  More?]

        (1998-03-13)

Apple II

        <computer> An 8-bit {personal computer} with a {6502}
        processor, from {Apple Computer}.  It was invented by {Steve
        Wozniak} and was very popular from about 1980 until the first
        several years of {MS-DOS} {IBM PC}s.

        (1995-01-12)

Apple Macintosh

        {Macintosh}

Apple Newton

        <computer> A {Personal Digital Assistant} produced by {Apple
        Computer}.  The Newton provides a clever, {user-friendly}
        interface and relies solely on pen-based input.  Eagerly
        anticipated, the Newton uses handwriting recognition software
        to "learn" the users handwriting and provide reliable
        {character recognition}.

        Various third-party software applications are 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)}.

        (1997-09-12)

Apple Open Collaboration Environment

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

        (1995-03-08)

AppleScript

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

        (1995-12-10)

Applesoft BASIC

        <language> A version of {BASIC} for {Apple} computers.

        (1995-12-10)

applet

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

        Navigator severely restricts the applet's file system and
        network access in order to prevent accidental or deliberate
        security violations.  Full Java applications, which run
        outside of the browser, do not have these restrictions.

        Web browsers can also be extended with {plug-ins} though these
        differ from applets in that they usually require manual
        installation and are {platform}-specific.  Various other
        languages can now be embedded within {HTML} documents, the
        most common being {JavaScript}.

        Despite Java's aim to be a "write once, run anywhere"
        language, the difficulty of accomodating the variety of
        browsers in use on the Internet has led many to abandon
        client-side processing in favour of {server}-side Java
        programs for which the term {servlet} was coined.

        (1999-06-15)

Appletalk

        <networking, protocol> A proprietary {local area network}
        {protocol} developed by {Apple Computer, Inc.} for
        communication between Apple products (e.g. {Macintosh}) and
        other computers.  This protocol is independent of the {network
        layer} on which it runs.  Current implementations exist for
        {Localtalk}, a 235 kilobyte per second local area network and
        {Ethertalk}, a 10 megabyte per second local area network.

        (1995-03-08)

AppleTalk Data Stream Protocol

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

        (1996-06-18)

AppleTalk Filing Protocol

        <networking> (AFP) A {client/server} {protocol} used in
        {AppleTalk} communications networks.  In order for non-{Apple}
        networks to access data in an {AppleShare} {server}, their
        protocols must translate into the AFP language.

        See also: {Columbia AppleTalk Package}.

        (1998-06-28)

application

        1. {application program}.

        2. {function application}.

Application Binary Interface

        <programming> (ABI) The interface by which an {application
        program} gains access to {operating system} and other
        services.  It should be possible to run the same compiled
        {binary} applications on any system with the right ABI.

        Examples are {88open}'s {Binary Compatibility Standard}, the
        {PowerOpen Environment} and {Windows sockets}.

        (1994-11-08)

Application Configuration Access Protocol

        <protocol> (ACAP) A {protocol} which enhances {IMAP} by
        allowing the user to set up {address books}, user options, and
        other data for universal access.  Currently (Feb 1997) no
        Internet proprietary products have implemented ACAP because
        the {Internet Engineering Task Force} has not yet approved the
        final specification.  This was expected early in 1997.

        ["Your E-Mail Is Obsolete", Byte, Feb 1997].

        (1997-05-03)

Application Control Architecture

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

        (1994-11-08)

application enablement services

        <programming> {IBM}-speak for {API}s to services such as
        telecoms, database, etc. within and between address spaces.

        (1999-01-20)

Application environment specification

        <programming> (AES) A set of specifications from {OSF} for
        programming and {user interfaces}, aimed at providing a
        consistent application environment on different hardware.  It
        includes "O/S" for the {operating system} (user commands and
        program interfaces), "U/E" for the User Environment ({Motif}),
        and "N/S" for Network services.

        [Reference?]

        (1994-12-07)

Application Executive

        <language> (AE) An {embeddable language}, written as a {C}
        {interpreter} by Brian Bliss <bliss@sp64.csrd.uiuc.edu>.  AE
        is compiled with an {application} and thus exists in the same
        process and address space.  It includes a {dbx} {symbol table}
        scanner to access compiled variables and routines, or you can
        enter them manually by providing a type/name declaration and
        the address.  When the {interpreter} is invoked, {source code}
        fragments are read from the input stream (or a string),
        parsed, and evaluated immediately.  The user can call compiled
        functions in addition to a few {built-in} intrinsics, declare
        new data types and data objects, etc.  Different input streams
        can be evaluated in parallel on {Alliant} computers.

        AE has been ported to {SunOS} (cc or {gcc}), {Alliant FX} and
        {Cray YMP} (soon).

        {(ftp://sp2.csrd.uiuc.edu/pub/at.tar.Z)}
        {(ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z)}.

        (1992-04-21)

Application Integration Architecture

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

application layer

        <networking> The top layer of the {OSI} seven layer model.
        This layer handles issues like {network transparency},
        resource allocation and problem partitioning.  The application
        layer is concerned with the user's view of the network
        (e.g. formatting {electronic mail} messages).  The
        {presentation layer} provides the application layer with a
        familiar local representation of data independent of the
        format used on the network.

        (1994-11-28)

Application Portability Architecture

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

        (1994-11-28)

application program

        <programming, operating system> (Or "application", "app") A
        complete, self-contained program that performs a specific
        function directly for the user.  This is in contrast to system
        software such as the {operating system} {kernel}, {server}
        processes and libraries which exists to support application
        programs.

        Editors for various kinds of documents, {spreadsheets}, and
        text formatters are common examples of applications.  Network
        applications include clients such as those for {FTP},
        {electronic mail}, {telnet} and {WWW}.

        The term is used fairly loosely, for instance, some might say
        that a client and server together form a distributed
        application, others might argue that editors and compilers
        were not applications but 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}.

        (1994-11-28)

Application Program Interface

        <programming> (API, or "application programming interface")
        The interface (calling conventions) by which an {application
        program} accesses {operating system} and other services.  An
        API is defined at {source code} level and provides a level of
        {abstraction} between the application and the {kernel} (or
        other privileged utilities) to ensure the {portability} of the
        code.

        An API can also provide an interface between a {high level
        language} and lower level utilities and services which were
        written without consideration for the {calling conventions}
        supported by compiled languages.  In this case, the API's main
        task may be the translation of parameter lists from one format
        to another and the interpretation of {call-by-value} and
        {call-by-reference} arguments in one or both directions.

        (1995-02-15)

Application Programming Interface

        {Application Program Interface}

Application Protocol Data Unit

        <networking> (APDU) A {packet} of data exchanged between two
        {application} programs across a {network}.  This is the
        highest level view of communication in the {OSI} {seven layer
        model} and a single packet exchanged at this level may
        actually be transmitted as several packets at a lower layer as
        well as having extra information (headers) added for {routing}
        etc.

        (1995-12-19)

Application Service Element

        <networking> (ASE) Software in the {presentation layer} of the
        {OSI} seven layer model which provides an abstracted interface
        layer to service {application protocol data units} (APDU).
        Because {applications} and {networks} vary, ASEs are split
        into common services and specific services.

        Examples of services provided by the {common application
        service element} (CASE) include remote operations (ROSE) and
        {database} {concurrency control and recovery} (CCR).

        The {specific application service element} (SASE) provides
        more specialised services.

        (1995-12-19)

applications language

        {Ousterhout's dichotomy}

application software

        {application program}

Application Software Installation Server

        (ASIS) Something at {CERN}.

        [What?]

        (1999-10-21)

Application-Specific Integrated Circuit

        <hardware> (ASIC) An {integrated circuit} designed to perform
        a particular function by defining the interconnection of a set
        of basic circuit building blocks drawn from a library provided
        by the circuit manufacturer.

        (1995-02-15)

Applications Programming Interface

        {Application Programming Interface}

Application Visualisation System

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

        (1994-11-28)

applicative language

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

        (1995-12-24)

Applicative Language for Digital Signal Processing

        <language> (ALDiSP) A {functional language} with special
        features for {real-time} {I/O} and numerical processing,
        developed at the {Technical University of Berlin} in 1989.

        ["An Applicative Real-Time Language for DSP - Programming
        Supporting Asynchronous Data-Flow Concepts", M. Freericks
        <mfx@cs.tu-berlin.de> in Microprocessing and Microprogramming
        32, N-H 1991].

        (1995-04-19)

applicative order reduction

        <programming> An {evaluation strategy} under which an
        expression is evaluated by repeatedly evaluating its leftmost
        innermost {redex}.  This means that a function's arguments are
        evaluated before the function is applied.  This method will
        not terminate if a function is given a non-terminating
        expression as an argument even if the function is not {strict}
        in that argument.  Also known as {call-by-value} since the
        values of arguments are passed rather than their names.  This
        is the evaluation strategy used by {ML}, {Scheme}, {Hope} and
        most {procedural languages} such as {C} and {Pascal}.

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

        (1995-01-25)

APPLOG

        <language> A language which unifies {logic programming} and
        {functional programming}.

        ["The APPLOG Language", S. Cohen in Logic Programming, deGroot
        et al eds, P-H 1986, pp.39-276].

        (1995-01-25)

APPN

        {Advanced Peer-to-Peer Networking}

approximation algorithm

        <algorithm> An {algorithm} for an {optimisation} problem that
        generates {feasible} but not necessarily {optimal} solutions.

        Unlike "{heuristic}", the term "approximation algorithm" often
        implies some proven worst or average case bound on
        performance.  The terms are often used interchangeably
        however.

        (1997-10-28)

April Fool's Joke

        <humour, event> (AFJ) Elaborate April Fool's hoaxes are a
        long-established tradition on {Usenet} and {Internet}; see
        {kremvax} for an example.  In fact, April Fool's Day is the
        *only* seasonal holiday marked by customary observances on the
        hacker networks.

        (1995-01-25)

A Programming Language

        <language> (APL) A language designed originally by Ken Iverson
        at {Harvard University} in 1957-1960 as a notation for the
        concise expression of mathematical {algorithms}.  It went
        unnamed (or just called {Iverson's Language}) and
        unimplemented for many years.  Finally a subset, APL\360, was
        implemented in 1964.

        APL is an {interactive} {array-oriented} language 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].

        (1995-11-29)

APSE

        {Ada Programming Support Environment}

APT

        1. <language> {Automatically Programmed Tools}.

        2. <company> {Audio Processing Technology}.

        (1996-01-15)

APX III

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

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

        (1995-05-04)

aq

        <networking> The {country code} for Antarctica.

        (1999-01-27)

AQL

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

        ["AQL: A Relational Database Management System and Its
        Geographical Applications", F. Antonacci et al, in Database
        Techniques for Pictorial Applications, A. Blaser ed,
        pp. 569-599].

        (1995-05-04)

ar

        <networking> The {country code} for Argentina.

        (1999-01-27)

arbitrary precision calculator

        <tool> An arbitrary precision {C}-like calculator.
        {Interpreter} version 1.26.4 by David I. Bell
        <dbell@canb.auug.org.au>.  Ported to {Linux}.

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

        (1993-06-15)

ARC

        {Advanced RISC Computing Specification}

arc

        1. <file format, tool> An old {archive} format for {IBM PC}.
        The format is now so obscure that it is only likely to be
        supported by jack-of-all-trades decompression programs such as
        {WINZIP}.

        2. <mathematics, data> An {edge} in a {tree}.  "{branch}" is a
        generally more common synonym.

        (1998-12-29)

Arcade

        <networking> A UK {BBS} for the {Acorn} {Archimedes}.  Also
        has links with {Demon Internet}.

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

        (1994-11-08)

ArchBSD

        <operating system> 4.4 {BSD-Lite} for the {Acorn}
        {Archimedes}.

        (1994-11-08)

archie

        <tool, networking> A system to automatically gather, index and
        serve information on the {Internet}.  The initial
        implementation of archie by {McGill University} School of
        Computer Science provided an indexed directory of filenames
        from all {anonymous FTP} archives on the Internet.  Later
        versions provide other collections of information.

        See also {archive site}, {Gopher}, {Prospero}, {Wide Area
        Information Servers}.

        (1995-12-28)

Archimedes

        <computer> A family of {microcomputers} produced by {Acorn
        Computers}, Cambridge, UK.  The Archimedes, launched in June
        1987, was the first {RISC} based {personal computer}
        (predating {Apple Computer}'s {Power Mac} by some seven
        years).  It uses the {Advanced RISC Machine} (ARM) processor
        and includes Acorn's {multitasking} {operating system} and
        {graphical user interface}, {RISC OS} on {ROM}, along with an
        interpreter for Acorn's enhanced {BASIC}, {BASIC V}.

        The Archimedes was designed as the successor to Acorn's
        sucessful {BBC Microcomputer} series and includes some
        backward compatibility and a {6502} {emulator}.  Several
        utilities are included free on disk (later in ROM) such as a
        {text editor}, paint and draw programs.  Software emulators
        are also available for the {IBM PC} as well as add-on {Intel}
        processor cards.

        There have been several series of Archimedes: A300, A400,
        A3000, A5000, A4000 and {RISC PC}.

        {Usenet FAQ
        (ftp://rtfm.mit.edu/pub/usenet/news.answers/acorn/)}.
        {Archive site list
        (http://www.cs.vu.nl/~gerben/acorn/acorn-archives.txt)}.
        {HENSA archive (ftp://micros.hensa.ac.uk/)}.  {Stuttgart
        archive (ftp://ftp.uni-stuttgart.de/pub/systems/acorn)}.

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

        (1998-04-03)

architecture

        <architecture> Design, the way components fit together.  The
        term is used particularly of {processors}, both individual and
        in general.  "The {ARM} has a really clean architecture".  It
        may also be used of any complex system, e.g. "software
        architecture", "network architecture".

        (1995-05-02)

Architecture Neutral Distribution Format

        <programming, operating system> (ANDF) An emerging {OSF}
        {standard} for software distribution.  Programs are compiled
        into ANDF before distribution and {executables} are produced
        from it for the local target system.  This allows software to
        be developed and distributed in a single version then
        installed on a variety of hardware.

        See also {UNCOL}.

        Mailing list: <andf-tech@osf.org>.

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

        (1995-10-20)

archive

        1. <file format> A single file containing one or (usually)
        more separate files plus information to allow them to be
        extracted (separated) by a suitable program.

        Archives are usually created for software distribution or
        {backup}.  {tar} is a common format for {Unix} archives, and
        {arc} or {PKZIP} for {MS-DOS} and {Microsoft Windows}.

        2. <operating system> To transfer files to slower, cheaper
        media (usually {magnetic tape}) to free the {hard disk} space
        they occupied.  This is now normally done for long-term
        storage but in the 1960s, when disk was much more expensive,
        files were often shuffled regularly between disk and tape.

        3. <networking> {archive site}.

        (1996-12-08)

archive site

        <networking> (Or "FTP site", "FTP archive") An {Internet}
        {host} where program source, documents, {e-mail} or {news}
        messages are stored for public access via {anonymous FTP},
        {Gopher}, {World-Wide Web} or other document distribution
        system.  There may be several archive sites for e.g. a
        {Usenet} {newsgroup} though one may be recognised as the main
        one.

        FTP servers were common on the Internet for many years before
        the {World-Wide Web} (WWW) was invented and are still used in
        preference to web servers for serving large files such as
        software distributions.  This is because FTP is more efficient
        than {HTTP}, the protocol of the WWW.  Many sites therefore
        run both HTTP and FTP servers.

        [Is FTP more efficient?  How much more?]

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

        (1998-07-02)

ARCnet

        <networking> A {network} developed by {DataPoint}.  ARCnet was
        {proprietary} until the late 1980s and had about as large a
        marketshare as {Ethernet} among small businesses.  It was
        almost as fast and was considerably cheaper at the time.

        (1995-01-16)

ARCS

        {ARC}

Arctic

        <language, music> A {real-time} {functional language}, used
        for music synthesis.

        ["Arctic: A Functional Language for Real-Time Control",
        R.B. Dannenberg, Conf Record 1984 ACM Symp on LISP and
        Functional Prog, ACM].

        (1995-01-16)

arena

        <programming> The area of memory attached to a {Unix} process
        by the {brk} and {sbrk} {system calls} and used by {malloc} as
        dynamic storage.  So named from a "malloc: corrupt arena"
        message emitted when some early versions detected an
        impossible value in the free block list.

        See {overrun screw}, {aliasing bug}, {memory leak}, {memory
        smash}, {smash the stack}.

        (1995-12-28)

ARES

        <language> A pictorial {query language}.

        ["A Query Manipulation System for Image Data Retrieval",
        T. Ichikawa et al, Proc IEEE Workshop Picture Data Description
        and Management, Aug 1980, pp. 61-67].

        (1995-10-10)

AREV

        {Advanced Revelation}

AREXX

        <language> {REXX} for the {Amiga}.

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

        (1996-02-06)

arg

        {argument}

argument

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

        (1995-01-24)

Argus

        <language> A successor to {CLU}, from LCS at {MIT}.  Argus
        supports {distributed programming} through {guardians} (like
        {monitors}, but can be created dynamically) and {atomic
        actions} (indivisible activity).  It also has {cobegin} and
        coend.

        ["Argus Reference Manual", B. Liskov et al., TR-400, MIT/LCS,
        1987].

        ["Guardians and Actions: Linguistic Support for Robust,
        Distributed Programs", B. Liskov <liskov@lcs.mit.edu> et al,
        TOPLAS 5(3):381-404 (1983)].

        (1995-12-28)

Ariel

        <language> An {array}-oriented language for the {CDC 6400}.

        ["Ariel Reference Manual", P. Devel, TR 22, CC UC Berkeley,
        Apr 1968].

        ["A New Survey of the Ariel Programming Language", P. Deuel,
        TR 4, Ariel Consortium, UC Berkeley, June 1972].

        [Deuel or Devel?]

        (1995-12-29)

ARITH-MATIC

        {A-3}

Arithmetic and Logic Unit

        <processor> (ALU or "mill") The part of the {central
        processing unit} which performs operations such as addition,
        subtraction and multiplication of integers and {bit-wise}
        {AND}, {OR}, {NOT}, {XOR} and other {Boolean} operations.  The
        CPU's instruction decode logic determines which particular
        operation the ALU should perform, the source of the {operands}
        and the destination of the result.

        The width in {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 by a separate "{floating-point
        unit}".  Some processors use the ALU for address calculations
        (e.g. incrementing the {program counter}), others have
        separate logic for this.

        (1995-03-24)

arity

        <programming> The number of {arguments} a {function} or
        {operator} takes.  In some languages functions may have
        variable arity which sometimes means their last or only
        argument is actually a list of arguments.

        (1997-07-21)

arj

        <tool, file format> An archive format for the {IBM PC}.  ARJ
        files are handled by the ARJ program, created by the American
        programmer Robert Jung.

        [Available from?  Compare with PKZIP?]

        (1996-11-03)

Arjuna

        <language> An {object-oriented programming} system developed
        by a team led by Professor Santosh Shrivastava at the
        {University of Newcastle}, implemented entirely in {C++}.
        Arjuna provides a set of tools for the construction of
        {fault-tolerant} {distributed} applications.  It exploits
        features found in most object-oriented languages (such as
        {inheritance}) and only requires a limited set of system
        capabilities commonly found in conventional {operating
        systems}.  Arjuna provides the programmer with {classes} that
        implement {atomic transactions}, {object level recovery},
        {concurrency} control and {persistence}.  The system is
        {portable}, modular and flexible; the system software has been
        available via FTP since 1992.

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

        E-mail: <arjuna@newcastle.ac.uk>.

        (1995-03-06)

ARL

        {ASSET Reuse Library}

ARM

        1. <processor> {Advanced RISC Machine}.

        Originally {Acorn} RISC Machine.

        2. <company> {Advanced RISC Machines} Ltd.

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

        4. <hardware> {Active Reconfiguring Message}.

        (1997-10-03)

ARM610

        <processor> A 32-bit {RISC} {microprocessor} based on the
        {ARM6} processor core designed by {Advanced RISC Machines}
        Ltd.

        The ARM610 is the successor to the {ARM3} processor and is
        produced by {VLSI Technology Inc}.  It consumes 500mW at 33MHz
        with a 5V supply.

        (1995-12-29)

ARM7

        <processor> A {RISC} {microprocessor} architecture from
        {Advanced RISC Machines} Ltd. (ARM).  Building upon the {ARM6}
        family, the goal of the ARM7 design was to offer higher levels
        of raw compute performance at even lower levels of power
        consumption.  The ARM7 architecture is now (Dec 1994) the most
        powerful low voltage {RISC} processor available on the market.

        The ARM7 offers several architectural extensions which address
        specific market needs, encompassing fast multiply and
        innovative embedded {ICE} support.  Software development tools
        are available.

        The ARM7 architecture is made up of a core CPU plus a range of
        system peripherals which can be added to a CPU core to give a
        complete system on a chip, e.g. 4K or 8K {cache}, {Memory
        Management Unit}, {Write Buffer}, {coprocessor} interface,
        {ICEbreaker} embedded {ICE} support and {JTAG} {boundary
        scan}.  The {ARM710} {microprocessor} is built around the ARM7
        core.

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

        (1995-01-05)

ARM710

        <processor> A 32-bit {RISC} {microprocessor} based on the
        {ARM7} processor core designed by {Advanced RISC Machines}
        Ltd.  The A710 is the successor to the {ARM610} processor.  It
        was released in July 1994 by {VLSI Technology Inc}.

        The ARM710 can run at 40MHz (fastest sample 55MHz) dissipating
        500mW with a 5V supply or 25MHz with 3.3V supply.  It has an 8
        kilobyte on-chip {cache}, {memory management unit} and {write
        buffer}.

        The ARM700 and ARM710 processors represent a significant
        improvement over the {ARM610} processors.  They have a higher
        maximum clock speed and a number of architectural improvements
        such as double the size of internal cache, this means that
        more of any process can be executed internally without
        accessing the (relatively) slow external memory.  Other
        improvements are an improved {write buffer} and an enlarged
        {Translation Lookaside Buffer} in the {MMU}.  All of these
        improvements increase the performance of the system and
        deliver more real performance than a simple comparison of
        clock speeds would indicate.

        The ARM710 has been optimised for integer performance.  The
        FPA11 {floating point} {coprocessor} has a peak throughput of
        up to 5 {MFLOPS} and achieves an average throughput in excess
        of 3 MFLOPS for a range of calculations.

        (1995-04-21)

ARM7500

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

        (1994-09-23)

ARM8

        <processor> A {RISC} {microprocessor} {core} designed by
        {Advanced RISC Machines} Ltd. with 50000 {transistors}.  The
        design of the ARM8 is not yet public but it is not
        {superscalar}.  The ARM8 will form the core of the {ARM800}
        {microprocessor} {integrated circuit}.

        (1995-03-03)

ARM800

        <processor> A {microprocessor} based on the {ARM8} processor
        core designed by {Advanced RISC Machines} Ltd.  Planned
        features include a 60-100Mhz {clock rate}; 0.35-0.4 micron
        silicon fabrication; an improvement on the {ARM7}'s 1.4
        cycle/instruction; a 16 Kbyte {cache}.

        Some estimates were 100 MIPS and 120 Kdhrystones at 70Mhz
        (twice the {ARM700}).  Samples of the ARM800 are expected to
        be available in late 1995.

        It may run on a voltage below 3.3V.

        {Digital Semiconductor}'s Hudson fab is 0.35 micron and they
        have announced a licensing deal for the ARM architecture (see
        {StrongARM}).

        (1995-02-07)

ARM Ltd

        {Advanced RISC Machines Ltd.}

ARMM

        {Automated Retroactive Minimal Moderation}

armour-plated

        {bulletproof}

ARP

        {Address Resolution Protocol}

ARPA

        {Defense Advanced Research Projects Agency}

ARPANET

        {Advanced Research Projects Agency Network}

ARQ

        {Automatic Repeat Request}

array

        1. <programming> A collection of identically typed data items
        distinguished by their indices (or "subscripts").  The number
        of dimensions an array can have depends on the language but is
        usually unlimited.

        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. <architecture> A {processor array}, not to be confused with
        an {array processor}.

        (1995-01-25)

array processor

        <processor> (Or "vector processor") A {computer}, or extension
        to its {arithmetic unit}, that is capable of performing
        simultaneous computations on elements of an {array} or table
        of data in some number of dimensions.

        Common uses for array processors include analysis of fluid
        dynamics and rotation of {3d} objects, as well as data
        retrieval, in which elements of a {database} are scanned
        simultaneously.  Array processors are very rare now (1998).

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

        [What sort of computations?  How much parallelism?  Example
        brands?]

        (1998-03-13)

Array Processor Assembly Language

        <language> (APAL) The {assembly language} for the {DAP}
        parallel computer.

        (1994-11-28)

Array Theory

        <theory> A theory developed by Trenchard More Jr. and used as
        the basis for the {NIAL} language.

        Papers are available from the IBM Cambridge Scientific Center,
        Cambridge MA.

        (1995-01-25)

arrow key

        <hardware> One of four keys on a {keyboard} marked with arrows
        pointing up, down, left and right.  The arrow keys are used
        for such things as moving the {cursor} in a text document, for
        moving the {input focus} between the fields of a form or
        sometimes for scrolling a picture.

        (1998-06-26)

ART

        <language> A {real-time} {functional language}.  It timestamps
        each data value when it was created.

        ["Applicative Real-Time Programming", M. Broy, PROC IFIP 1983,
        N-H].

        (1996-01-15)

Artemis microkernel

        <operating system> A {microkernel} currently under development
        by Dave Hudson <dave@humbug.demon.co.uk>, scheduled for
        release under {GPL} in May 1995.  It is targeted at
        {embedded} applications on {Intel 80386}, {Intel 486} and
        {Pentium} based systems.

        (1995-03-29)

Artifex

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

        (1996-01-24)

artificial intelligence

        <artificial intelligence> (AI) The subfield of computer
        science concerned with the concepts and methods of {symbolic
        inference} by computer and symbolic {knowledge representation}
        for use in making inferences.  AI can be seen as an attempt to
        model aspects of human thought on computers.  It is also
        sometimes defined as trying to solve by computer any problem
        that a human can solve faster.

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

        (1995-10-29)

Artificial Intelligence Lab

        {MIT AI Lab}

Artificial Life

        <algorithm, application> (a-life) The study of synthetic
        systems which behave like natural living systems in some way.
        Artificial Life complements the traditional biological
        sciences concerned with the analysis of living organisms by
        attempting to create lifelike behaviours within computers and
        other artificial media.  Artificial Life can contribute to
        theoretical biology by modelling forms of life other than
        those which exist in nature.  It has applications in
        environmental and financial modelling and network
        communications.

        There are some interesting implementations of artificial life
        using strangely shaped blocks.  A video, probably by the
        company Artificial Creatures who build insect-like robots in
        Cambridge, MA (USA), has several mechanical implementations of
        artificial life forms.

        See also {evolutionary computing}, {Life}.

        [Christopher G. Langton (Ed.), "Artificial Life", Proceedings
        Volume VI, Santa Fe Institute Studies in the Sciences of
        Complexity.  Addison-Wesley, 1989].

        {Yahoo! (http://www.yahoo.com/Science/Artificial_Life/)}.

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

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

        (1995-02-21)

artificial neural network

        <artificial intelligence> (ANN, commonly just "neural network"
        or "neural net") A network of many very simple processors
        ("units" or "neurons"), each possibly having a (small amount
        of) local memory.  The units are connected by unidirectional
        communication channels ("connections"), which carry numeric
        (as opposed to symbolic) data.  The units operate only on
        their local data and on the inputs they receive via the
        connections.

        A neural network is a processing device, either an
        {algorithm}, or actual hardware, whose design was inspired by
        the design and functioning of animal brains and components
        thereof.

        Most neural networks have some sort of "training" rule whereby
        the weights of connections are adjusted on the basis of
        presented patterns.  In other words, neural networks "learn"
        from examples, just like children learn to recognise dogs from
        examples of dogs, and exhibit some structural capability for
        generalisation.

        Neurons are often elementary non-linear signal processors (in
        the limit they are simple threshold discriminators).  Another
        feature of NNs which distinguishes them from other computing
        devices is a high degree of interconnection which allows a
        high degree of parallelism.  Further, there is no idle memory
        containing data and programs, but rather each neuron is
        pre-programmed and continuously active.

        The term "neural net" should logically, but in common usage
        never does, also include biological neural networks, whose
        elementary structures are far more complicated than the
        mathematical models used for ANNs.

        See {Aspirin}, {Hopfield network}, {McCulloch-Pitts neuron}.

        {Usenet} newsgroup: {news:comp.ai.neural-nets}.

        (1997-10-13)

Artisoft, Inc.

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

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

        Telephone: +1 (800) 809 1257.

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

        (1995-04-24)

ARTSPEAK

        <language> An early simple language for {plotter} graphics.

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

        (1995-02-21)

AS

        1. <networking> {Autonomous System}.

        2. <storage> {Address Strobe}.

        (1999-04-08)

as

        <networking> The {country code} for American Samoa.

        (1999-01-27)

as31

        <tool> An {8031}/{8051} {assembler} by Ken Stauffer
        <stauffer@cpsc.ucalgary.ca> and Theo Deraadt which produces a
        variety of {object code} output formats.  The distribution
        includes an {assembler}, {yacc} parser and documentation.
        as31 runs on {Sun 3}, {Sun 4}, {SunOS 4.0}, {Tandy 6000}, and
        {Xenix}.

        Current version as of 1990-01-26: 1.

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

        (1990-01-26)

AS400

        {AS/400}

AS/400

        <computer> An {IBM} {minicomputer} for small business and
        departmental users, released in 1988 and still in production
        in October 1998.

        Features include a menu-driven interface, {multi-user}
        support, terminals that are (in the grand {IBM} tradition)
        incompatible with anything else including the {IBM 3270}
        series, and an extensive library-based {operating system}.

        The machine survives because its {API} layer allows the
        {operating system} and {application programs} to take
        advantage of advances in hardware without recompilation and
        which means that a complete system that costs $9000 runs the
        exact same operating system and software as a $2 million
        system.  There is a 64-bit {RISC} processor operating system
        implementation.

        Programming languages include {RPG}, {assembly language}, {C},
        {COBOL}, {SQL}, {BASIC}, and {REXX}.  Several {CASE} tools are
        available: {Synon}, {AS/SET}, {Lansa}.

        {Home (http://www.as400.ibm.com/)}.

        (1999-07-26)

ASA

        {Adaptive Simulated Annealing}

asap

        <chat> As soon as possible.

        (1999-10-13)

asbestos

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

        (1996-02-06)

asbestos cork award

        <humour> Once, long ago at {MIT}, there was a {flamer} so
        consistently obnoxious that another hacker designed, had made,
        and distributed posters announcing that said flamer had been
        nominated for the "asbestos cork award".  (Any reader in doubt
        as to the intended application of the cork should consult the
        etymology under {flame}.)  Since then, it is agreed that only
        a select few have risen to the heights of bombast required to
        earn this dubious dignity - but there is no agreement on
        *which* few.

        (1996-02-06)

asbestos longjohns

        <humour> Notional garments donned by {Usenet} posters just
        before emitting a remark they expect will elicit {flamage}.
        This is the most common of the {asbestos} coinages.  Also
        "asbestos underwear", "asbestos overcoat", etc.

        (1997-07-04)

ascender

        <text> A lowercase letter that extends above the "x-height"
        (the height of the letter "x"), such as "d", "t", or "h".
        Also used to denote the part of the letter extending above the
        x-height.

        Compare {descender}.

        (1998-03-27)

ASCII

        {American Standard Code for Information Interchange}

ASCII art

        <graphics> (Or "character graphics", "ASCII graphics") The
        fine art of drawing diagrams using the {ASCII} character set
        (mainly "|-/\+").

        See also {boxology}.  Here is a serious example:

           o----)||(--+--|<----+   +---------o + D O
             L  )||(  |        |   |             C U
           A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
           C N  )||(        |  |   |      |        P
             E  )||(  +-->|-+--)---+--)|--+-o      U
                )||(  |        |          | GND    T
           o----)||(--+--|<----+----------+

           A power supply consisting of a full wave rectifier
           circuit feeding a capacitor input filter circuit

                                 Figure 1.

        And here are some very silly examples:

           |\/\/\/|     ____/|              ___    |\_/|    ___
           |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
           |      |      =(_)=  THPHTH!   /      \/     \/      \
           | (o)(o)        U             /                       \
           C      _)  (__)                \/\/\/\  _____  /\/\/\/
           | ,___|    (oo)                       \/     \/
           |   /       \/-------\         U                  (__)
          /____\        ||     | \    /---V  `v'-            oo )
         /      \       ||---W||  *  * |--|   || |`.         |_/\

                        //-o-\\
                 ____---=======---____
             ====___\   /.. ..\   /___====      Klingons rule OK!
           //        ---\__O__/---        \\
           \_\                           /_/

                                            _____
                                    __...---'-----`---...__
                               _===============================
          ,----------------._/'      `---..._______...---'
          (_______________||_) . .  ,--'
              /    /.---'         `/
             '--------_- - - - - _/
                       `--------'

                                   Figure 2.

        There is an important subgenre of ASCII art that puns on the
        standard character names in the fashion of a rebus.

         +--------------------------------------------------------+
         |      ^^^^^^^^^^^^                                      |
         | ^^^^^^^^^^^            ^^^^^^^^^                       |
         |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
         |        ^^^^^^^         B       ^^^^^^^^^               |
         |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
         +--------------------------------------------------------+
                     "A Bee in the Carrot Patch"

                               Figure 3.

        Within humorous ASCII art, there is, for some reason, an
        entire flourishing subgenre of pictures of silly cows.  One is
        shown in Figure 2; here are three more:

                  (__)              (__)              (__)
                  (\/)              ($$)              (**)
           /-------\/        /-------\/        /-------\/
          / | 666 ||        / |=====||        / |     ||
         *  ||----||       *  ||----||       *  ||----||
            ~~    ~~          ~~    ~~          ~~    ~~
          Satanic cow    This cow is a Yuppie   Cow in love

                                  Figure 4.

        {(http://gagme.wwa.com/~boba/scarecrow.html)}

        (1996-02-06)

ASCIIbetical order

        <jargon, programming> /as'kee-be'-t*-kl or'dr/ Used to
        indicate that data is sorted in {ASCII} collated order rather
        than alphabetical order.  The main difference is that, in
        ASCII, all the upper case letters come before any of the lower
        case letters so, e.g., "Z" comes before "a".

        (1999-04-08)

ASCIIbonics

        <chat> (From {ASCII} and Ebonics) A style of text
        communication in English which is most common on {talk}
        systems such as {irc}.  Its notable characteristics are:

        Typing all in lowercase (and occasionally all in uppercase).

        Copious use of abbreviations of the sort "u" for "you" "1" for
        "one" (and therefore "some1" for "someone", "ne1" for
        "anyone"), "2" for "to", "r" for "are", etc.

        A general lack of punctuation, except for strings of question
        marks and exclamation marks.

        Common use of the idiom "m or f?", meant to elicit a statement
        of the listener's gender.

        Typical extended discourse in ASCIIbonics: "hey wasup ne1 want
        2 {cyber}?"  "m or f?"

        ASCIIbonics is similar to the way {B1FF} talked, although B1FF
        used more punctuation (lots more), and used all uppercase,
        rather than all lowercase.  What's more, B1FF was only
        interested in {warez}, and so never asked "m or f?".

        It has been widely observed that some of the purest examples
        of ASCIIbonics come from non-native speakers of English.

        The phenomenon of ASCIIbonics predates by several years the
        use of the word "ASCIIbonics", as the word could only have
        been coined in or after late 1996, when "Ebonics" was first
        used in the US media to denote the US English dialects known
        in the linguistic literature as "Black Vernacular English".

        (1997-06-21)

ASCII character table

        <character> The following list gives the {octal}, decimal and
        {hexadecimal} {ASCII} codes for each character along with its
        printed representation and common name(s).

          Oct Dec Hex  Name
          000   0 0x00 NUL
          001   1 0x01 SOH, Control-A
          002   2 0x02 STX, Control-B
          003   3 0x03 ETX, Control-C
          004   4 0x04 EOT, Control-D
          005   5 0x05 ENQ, Control-E
          006   6 0x06 ACK, Control-F
          007   7 0x07 BEL, Control-G
          010   8 0x08 BS, backspace, Control-H
          011   9 0x09 HT, tab, Control-I
          012  10 0x0a LF, line feed, newline, Control-J
          013  11 0x0b VT, Control-K
          014  12 0x0c FF, form feed, NP, Control-L
          015  13 0x0d CR, carriage return, Control-M
          016  14 0x0e SO, Control-N
          017  15 0x0f SI, Control-O
          020  16 0x10 DLE, Control-P
          021  17 0x11 DC1, XON, Control-Q
          022  18 0x12 DC2, Control-R
          023  19 0x13 DC3, XOFF, Control-S
          024  20 0x14 DC4, Control-T
          025  21 0x15 NAK, Control-U
          026  22 0x16 SYN, Control-V
          027  23 0x17 ETB, Control-W
          030  24 0x18 CAN, Control-X
          031  25 0x19 EM, Control-Y
          032  26 0x1a SUB, Control-Z
          033  27 0x1b ESC, escape
          034  28 0x1c FS
          035  29 0x1d GS
          036  30 0x1e RS
          037  31 0x1f US
          040  32 0x20 space
          041  33 0x21 !, exclamation mark
          042  34 0x22 ", double quote
          043  35 0x23 #, hash
          044  36 0x24 $, dollar
          045  37 0x25 %, percent
          046  38 0x26 &, ampersand
          047  39 0x27 ', quote
          050  40 0x28 (, open parenthesis
          051  41 0x29 ), close parenthesis
          052  42 0x2a *, asterisk
          053  43 0x2b +, plus
          054  44 0x2c ,, comma
          055  45 0x2d -, minus
          056  46 0x2e ., full stop
          057  47 0x2f /, oblique stroke
          060  48 0x30 0, zero
          061  49 0x31 1
          062  50 0x32 2
          063  51 0x33 3
          064  52 0x34 4
          065  53 0x35 5
          066  54 0x36 6
          067  55 0x37 7
          070  56 0x38 8
          071  57 0x39 9
          072  58 0x3a :, colon
          073  59 0x3b ;, semicolon
          074  60 0x3c <, less than
          075  61 0x3d =, equals
          076  62 0x3e >, greater than
          077  63 0x3f ?, question mark
         0100  64 0x40 @, commercial at
         0101  65 0x41 A
         0102  66 0x42 B
         0103  67 0x43 C
         0104  68 0x44 D
         0105  69 0x45 E
         0106  70 0x46 F
         0107  71 0x47 G
         0110  72 0x48 H
         0111  73 0x49 I
         0112  74 0x4a J
         0113  75 0x4b K
         0114  76 0x4c L
         0115  77 0x4d M
         0116  78 0x4e N
         0117  79 0x4f O
         0120  80 0x50 P
         0121  81 0x51 Q
         0122  82 0x52 R
         0123  83 0x53 S
         0124  84 0x54 T
         0125  85 0x55 U
         0126  86 0x56 V
         0127  87 0x57 W
         0130  88 0x58 X
         0131  89 0x59 Y
         0132  90 0x5a Z
         0133  91 0x5b [, open square bracket
         0134  92 0x5c \, backslash
         0135  93 0x5d ], close square bracket
         0136  94 0x5e ^, caret
         0137  95 0x5f _, underscore
         0140  96 0x60 `, back quote
         0141  97 0x61 a
         0142  98 0x62 b
         0143  99 0x63 c
         0144 100 0x64 d
         0145 101 0x65 e
         0146 102 0x66 f
         0147 103 0x67 g
         0150 104 0x68 h
         0151 105 0x69 i
         0152 106 0x6a j
         0153 107 0x6b k
         0154 108 0x6c l
         0155 109 0x6d m
         0156 110 0x6e n
         0157 111 0x6f o
         0160 112 0x70 p
         0161 113 0x71 q
         0162 114 0x72 r
         0163 115 0x73 s
         0164 116 0x74 t
         0165 117 0x75 u
         0166 118 0x76 v
         0167 119 0x77 w
         0170 120 0x78 x
         0171 121 0x79 y
         0172 122 0x7a z
         0173 123 0x7b {, open curly bracket
         0174 124 0x7c |, vertical bar
         0175 125 0x7d }, close curly bracket
         0176 126 0x7e ~, tilde
         0177 127 0x7f delete

        See {NUL}, {SOH}, {STX}, {ETX}, {ETX}, {EOT}, {ENQ}, {ACK},
        {BEL}, {BS}, {HT}, {line feed}, {VT}, {FF}, {CR}, {SO}, {SI},
        {DLE}, {XON}, {DC1}, {DC2}, {DC3}, {DC4}, {NAK}, {SYN}, {ETB},
        {CAN}, {EM}, {SUB}, {ESC}, {FS}, {GS}, {RS}, {US}, {space},
        {exclamation mark}, {double quote}, {hash}, {dollar},
        {percent}, {ampersand}, {quote}, {open parenthesis}, {close
        parenthesis}, {asterisk}, {plus}, {comma}, {minus}, {full
        stop}, {oblique stroke}, {colon}, {semicolon}, {less than},
        {equals}, {greater than}, {question mark}, {commercial at},
        {open square bracket}, {backslash}, {close square bracket},
        {caret}, {underscore}, {back quote}, {open curly bracket},
        {vertical bar}, {close curly bracket}, {tilde}, {delete}.

        (1996-06-24)

ASCII graphics

        {ASCII art}

ASDIMPL

        {ASDO IMPlementation Language}

ASDL

        {Abstract-Type and Scheme-Definition Language}

ASDO IMPlementation Language

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

        (1996-02-06)

ASE

        1. <programming> {Advanced Software Environment}.

        2. <networking> {Application Service Element}.

        (1999-07-06)

A* search

        <algorithm> A {graph} search {algorithm}.  A* is guaranteed to
        find a minimal solution path before any other solution paths,
        if a solution exists, in other words, it is an "{admissible}"
        search algorithm.  Each path is assigned a value based on the
        cost of the path (e.g. its length) and an (under)estimate of
        the cost of completing the path, i.e. the cost of a path from
        the end of the current path to a solution.

        (1995-03-31)

ASF

        {Algebraic Specification Language}

ash

        <tool> A {Bourne Shell} clone by Kenneth Almquist.  It works
        pretty well.  For running scripts, it is sometimes better and
        sometimes worse than {Bash}.

        Ash runs under {386BSD}, {NetBSD}, {FreeBSD}, and {Linux}.

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

        (1995-07-20)

Ashmedai

        <tool> A {symbolic mathematics} package by Michael Levine
        <levine@cpwsca.psc.edu> that influenced {SMP} and {FORM}.
        There are versions for the {Univac 1108} and {VAX}/{VMS}.

        (1995-03-21)

Ashton-Tate Corporation

        <company> The original 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?]

        (1996-03-09)

ASIC

        {Application-Specific Integrated Circuit}

A Simulation Process-Oriented Language

        <language, simulation> (ASPOL) An {ALGOL}-like language for
        computer {simulation}.

        ["Process and Event Control in ASPOL", M.H. MacDougall, Proc
        Symp on Simulation of Computer Systems, NBS (Aug 1975)].

        (1996-03-25)

ASIS

        1. {Application Software Installation Server}.

        2. <language> {Ada Semantic Interface Specification}.

        ??

        (1999-10-21)

ASK

        {Amplitude Shift Keying}

ASL

        {Algebraic Specification Language}

ASL+

        <language, specification> An {algebraic specification
        language} by David Aspinall of the {University of Edinburgh}.
        ASL+ has rules for proving the satisfaction of specifications.
        It can also be viewed as a {type theory} with {subtyping},
        featuring {contravariant refinement} for Pi-abstracted
        specifications and a notion of {stratified equality} for
        {higher-order} objects.

        (1994-09-14)

ASM

        {assembly language}

ASME

        {American Society of Mechanical Engineers}

ASN

        {Autonomous System Number}

ASN.1

        {Abstract Syntax Notation 1}

ASP

        1. <World-Wide Web> {Active Server Pages}.

        2. <language> A {query language}(?).

        [Sammet 1969, p.702].

        3. <processor> {Attached Support Processor}.

        (1999-01-12)

ASPECT

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

        (1996-03-25)

ASpecT

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

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

        (1996-03-25)

aspect

        <programming> In {aspect-oriented programming}, a modular unit
        of control over emergent entities.

        (1999-08-31)

aspect-oriented programming

        <programming> A style of programming that attempts to abstract
        out features common to many parts of the code beyond simple
        functional modules and thereby improve the {quality} of
        software.

        Mechanisms for defining and composing {abstractions} are
        essential elements of programming languages.  The design style
        supported by the abstraction mechanisms of most current
        languages is one of breaking a system down into parameterised
        components that can be called upon to perform a function.

        But many systems have properties that don't necessarily align
        with the system's functional components, such as failure
        handling, {persistence}, communication, replication,
        coordination, {memory management}, or {real-time} constraints,
        and tend to cut across groups of functional components.

        While they can be thought about and analysed relatively
        separately from the basic functionality, programming them
        using current {component-oriented languages} tends to result
        in these aspects being spread throughout the code.  The
        {source code} becomes a tangled mess of instructions for
        different purposes.

        This "tangling" phenomenon is at the heart of much needless
        complexity in existing software systems.  A number of
        researchers have begun working on approaches to this problem
        that allow programmers to express each of a system's aspects
        of concern in a separate and natural form, and then
        automatically combine those separate descriptions into a final
        executable form using automatic tools.  These approaches have
        been called aspect-oriented programming.

        (Xerox AOP homepage
        (http://www.parc.xerox.com/spl/projects/aop/)}.

        {ECOOPP'99 AOP workshop
        (http://wwwtrese.cs.utwente.nl/aop-ecoop99/)}

        (1999-08-31)

aspect ratio

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

        (1994-11-30)

ASPEN

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

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

        (1994-11-30)

ASPI

        {Advanced SCSI Peripheral Interface}

ASPIK

        <language, specification> A multiple-style specification
        language.

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

        (1994-11-30)

Aspirin

        <language, tool> A {freeware} language from {MITRE 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/)}

        (1995-03-08)

ASPLE

        <language> A {toy language}.

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

        (1995-02-08)

ASPOL

        {A Simulation Process-Oriented Language}

ASQC

        {American Society for Quality Control}

ASR

        {Automatic Send Receive}

assembler

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

        (1996-03-25)

ASSEMBLY

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

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

        (1996-06-27)

assembly code

        {assembly language}

Assembly Language

        <language, robotics> (AL) A language for industrial {robots}
        developed at {Stanford University} in the 1970s.

        ["The AL Language for an Intelligent Robot", T. Binford in
        Langages et Methods de Programation des Robots Industriels,
        pp. 73-88, IRIA Press 1979].

        ["AL User's Manual", M.S. Mujtaba et al, Stanford AI Lab, Memo
        AIM-323 (Jan 1979)].

        (1994-11-24)

assembly language

        <language> (Or "assembly code") A symbolic representation of
        the {machine language} of a specific 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}.

        (1996-09-17)

Assembly Language Compiler

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

        Compare {BAL}.

        (1995-01-04)

Assembly Language for Multics

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

        (1994-11-24)

assertion

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

        (1997-06-30)

ASSET

        {Asset Source for Software Engineering Technology}

Asset Management

        <business> The process whereby a large organisation collects
        and maintains a comprehensive list of the items it owns such
        as hardware and software.  This data is used in connection
        with the financial aspects of ownership such as calculating
        the total cost of ownership, depreciation, licensing,
        maintenance and insurance.

        (1997-03-30)

Asset Source for Software Engineering Technology

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

        See also {ASSET Reuse Library}.

        (1996-08-19)

assigned numbers

        <standard> The {RFC} {STD 2} documenting the currently
        assigned values from several series of numbers used in network
        {protocol} implementations.  This RFC is updated periodically
        and, in any case, current information can be obtained from the
        {Internet Assigned Numbers Authority} (IANA).  If you are
        developing a protocol or application that will require the use
        of a link, {socket}, {port}, protocol, etc., you should
        contact the IANA to receive a number assignment.

        (1996-08-19)

assignment

        <programming> Storing the value of an expression in a
        variable.  This is commonly written in the form "v = e".  In
        {Algol} the assignment operator was ":=" (pronounced
        "becomes") to avoid mathematicians qualms about writing
        statements like x = x+1.

        Assignment is not allowed in {functional language}s, where an
        identifier always has the same value.

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

        (1996-08-19)

assignment problem

        <mathematics, algorithm> (Or "linear assignment") Any problem
        involving minimising the sum of C(a, b) over a set P of pairs
        (a, b) where a is an element of some set A and b is an element
        of set B and C is some function, under constraints such as
        "each element of A must appear exactly once in P" or similarly
        for B, or both.

        For example, the a's could be workers and the b's projects.

        The problem is "linear" because the "cost function" C()
        depends only on the particular pairing (a, b) and is
        independent of all other pairings.

        {(http://forum.swarthmore.edu/epigone/comp.soft-sys.matlab/bringhyclu)}
.
        {(http://www.soci.swt.edu/capps/prob.htm)}.
        {(http://mat.gsia.cmu.edu/GROUP95/0577.html)}.
        {(http://www.informs.org/Conf/WA96/TALKS/SB24.3.html)}.

        [Algorithms?]

        (1999-07-12)

Association Control Service Element

        <networking> (ACSE) The {OSI} method for establishing a call
        between two {application programs}.  ACSE checks the
        identities and contexts of the application entities, and could
        apply an {authentication} security check.

        Documents: {ITU} Rec. X.227 ({ISO} 8650), X.217 (ISO 8649)

        (1997-12-07)

Association for Computational Linguistics

        <body> (ACL) The international scientific and professional
        society for people working on problems involving {natural
        language} and computation.  Membership includes the ACL
        quarterly journal, "Computational Linguistics", reduced
        registration at most ACL-sponsored conferences, discounts on
        ACL-sponsored publications, and participation in ACL Special
        Interest Groups.  The ACL is in its 31st year; there are more
        than 2000 members worldwide.

        E-mail: <acl@aclweb.org>.

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

        (1999-08-31)

Association for Computing

        <body> (ACM, before 1997 - "Association for Computing
        Machinery") The largest and oldest international scientific
        and educational computer society in the industry.  Founded in
        1947, only a year after the unveiling of {ENIAC}, ACM was
        established by mathematicians and electrical engineers to
        advance the science and application of information technology.
        {John Mauchly}, co-inventor of the ENIAC, was one of ACM's
        founders.

        Since its inception ACM has provided its members and the world
        of computer science a forum for the sharing of knowledge on
        developments and achievements necessary to the fruitful
        interchange of ideas.

        ACM has 90,000 members - educators, researchers, practitioners,
        managers, and engineers - who drive the Association's major
        programs and services - publications, special interest groups,
        chapters, conferences, awards, and special activities.

        The ACM Press publishes journals (notably {CACM}), book
        series, conference proceedings, CD/ROM, Hypertext and Video,
        and specialized publications such as curricula recommendations
        and self-assessment procedures.

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

        (1998-02-24)

Association for Computing Machinery

        {Association for Computing}

Association for Progressive Communications

        <body, philosophy> (APC) A world-wide organisation of
        like-minded computer {networks} providing a global
        communications network dedicated to the free and balanced flow
        of information.  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: <apc-info@apc.org>.

        (1996-11-06)

Association for SIMULA Users

        <body>  See {SIMULA}.

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

        [Details?]

        (1995-03-29)

Association Franaise des Utilisateurs d'Unix

        <body> (et des systmes ouverts, AFUU) French Association of
        {Unix} Users.

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

        (1996-06-07)

Association of American Publishers

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

Association of C and C++ Users

        <body> (ACCU) A community of people with an interest in the
        {C} family of programming languages: {K&R C}, {ANSI C} and
        {C++}.  The community includes professional programmers, the
        suppliers of {compilers}, and those who are just interested in
        the languages.  ACCU members are using C and C++ on a wide
        range of platforms - {Unix}, {MS-DOS}, {OS/2}, {CP/M} - home
        computers, {IBM 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: <info@accu.org>, <membership@accu.org>,
        <academic@accu.org> (Academic Liaison Officer).

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

        (1996-12-02)

Association of Lisp Users

        <body> (ALU) A user group which aims to promote {Lisp}, help
        inform and educate Lisp users in general, and help represent
        Lisp users as a group to the vendors.  The ALU holds an annual
        conference and supports the formation of inter-vendor
        standards.  ALU has international membership and is
        incorporated in the US.

        {Usenet} {newsgroups}: {news:comp.org.lisp-users}
        {news:comp.std.lisp}.  Mailing list: <alu@ai.sri.com>.

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

        (1996-12-07)

associative array

        <programming> An {array} where the {indices} are not just
        {integers} but may be arbitrary strings.

        {awk} and its descendants (e.g. {Perl}) have associative
        arrays which are implemented using {hash coding}.

        (1995-02-16)

associative memory

        {content addressable memory}

Associative Memory Parallel Processing Language

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

        (1995-11-14)

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

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

        (1995-03-06)

asterix

        <spelling> Do you mean "{asterisk}"?

        (1997-03-01)

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

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

        Only one end of the connection has full bandwidth, the other
        has only a fraction of the bandwidth.  Normally, which end
        gets the full bandwidth is chosen dynamically.

        Asymmetrical modulation was made famous by the {HST} mode of
        the early high-speed modems from {US Robotics}.

        (1998-03-13)

Asymmetric Digital Subscriber Line

        <communications, protocol> (ADSL, or Asymmetric Digital
        Subscriber Loop) A form of {Digital Subscriber Line} in which
        the bandwidth available for {downstream} connection is
        significantly larger then for {upstream}.  Although designed
        to minimise the effect of {crosstalk} between the upstream and
        downstream channels this setup is well suited for {web
        browsing} and {client}-{server} applications as well as for
        some emerging applications such as {video on demand}.

        The data-rate of ADSL strongly depends on the length and
        quality of the line connecting the end-user to the telephone
        company.  Typically the upstream data flow is between 16 and
        640 {kilobits} per second while the downstream data flow is
        between 1.5 and 9 {megabits} per second.  ADSL also provides a
        voice channel.

        ADSL can be configured to carry digital data, analog voice and
        broadcast {MPEG2} video in a variety of implementations to
        meet customer needs.

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

        See also {Carrierless Amplitude/Phase Modulation}, {Discrete
        MultiTone} and the {ADSL Forum Home Page (http://www.adsl.com/)}.

        (1998-05-18)

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. <operating system> A {process} in a {multitasking} system
        whose execution can proceed independently, "in the
        {background}".  Other processes may be started before the
        asynchronous process has finished.

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

        (1995-12-08)

Asynchronous Balanced Mode

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

        (1997-05-07)

Asynchronous Communications Interface Adapter

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

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

        (1997-05-07)

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

        (1995-01-18)

Asynchronous Transfer Mode

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

        See also {ATM Forum}, {Wideband ATM}.

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

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

        [Data rate(s)?]

        (1996-04-01)

asyncronous

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

        (1996-12-13)

AT

        {IBM PC AT}

at

        1. <character> {commercial at}.

        2. <networking> The {country code} for Austria.

        (1999-01-27)

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

        <storage> /ul'tr* D M A/ (Or "Ultra DMA", "UDMA", "Ultra-ATA",
        "Ultra-DMA/33") A development of the {Advanced Technology
        Attachment} specifications which gives nearly twice the
        maximum transfer speed of the {ATA-3} standard ({PIO} Mode 4).

        ATA-4 Extensions Ultra DMA/33 Synchronous DMA Mode maximum
        burst transfer rates:

                Mode    Cycle Time      Transfer Rate
                        ns              MB/s
                0       235             16
                1       160             24
                2       120             33

        This is achieved by improving timing windows in the {protocol}
        on the ATA interface; reducing propagation delays by
        {pipelining} data transfers and transferring data in
        {synchronous} (strobed) mode.

        Developed by {Quantum Corporation}, ATA-4 has been freely
        licensed to manufacturers and is supported by {Intel
        Corporation}.

        (1998-09-30)

ATAPI

        {AT Attachment Packet Interface}

Atari

        1. <company, computer> A maker of arcade games, home video
        game systems, and home computers, especially during the 1970s
        and 1980s.  Atari are best known for their range of 16- and
        32-bit {microcomputers}, notable for having a built-in {MIDI}
        interface.  As of February 1994 the range included the Atari
        520ST, 1040ST, Mega ST, STe, STacy, Mega STe, TT, and Falcon.
        There are also emulators for the Apple {Macintosh} and {IBM
        PC}/XT/AT available.

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

        {Usenet newsgroups}: {news:comp.binaries.atari.st},
        {news:comp.sys.atari.st.tech}, {news:comp.sources.atari.st},
        {news:comp.sys.atari.st}, {news:comp.sys.atari.advocacy},
        {news:comp.sys.atari.programmer}, {news:stgt.atari},
        {news:alt.steinberg.cubase}, {news:demon.ip.support.atari},
        {news:muc.lists.atarix}.

        German: {news:maus.sys.atari}, {news:maus.sys.atari.desktop},
        {news:maus.sys.atari.f030}, {news:maus.sys.atari.gemini},
        {news:maus.sys.atari.hardware}, {news:maus.sys.atari.mint},
        {news:maus.sys.atari.okami}, {news:maus.sys.atari.software},
        {news:maus.sys.atari.talk}, {news:maus.gui.gem},
        {news:maus.comp.medusa}, {news:maus.os.minix},
        {news:z-netz.rechner.atari.allgemein},
        {news:z-netz.rechner.atari.hardware},
        {news:zer.z-netz.rechner.atari.hardware},
        {news:zer.z-netz.rechner.atari.programmieren},
        {news:zer.z-netz.rechner.atari.spiele}, {news:fido.ger.atari},

        {news:sfnet.atk.atari} [Finnish], {news:fr.comp.sys.atari}
        [French].

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

        (1999-07-12)

AT Attachment

        {Advanced Technology Attachment}

AT Attachment Packet Interface

        <storage> (ATAPI) Part of the {EIDE} interface that provides
        additional commands to control a {CD-ROM} drive or {magnetic
        tape}.

        [Winn L. Rosch "The Winn L. Rosch Hardware Bible"
        (Third Edition), Sams Publishing, 1994].

        (1998-11-01)

AT bus architecture

        {Industry Standard Architecture}

AtFS

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

Athlon

        <hardware> (K7) {AMD}'s 7th generation {x86} {processor},
        released in June 1999.

        Athlon uses a {Slot A} {motherboard} and is not compatible
        with {Slot 1} motherboards.

        (1999-08-05)    

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. <communications> {Asynchronous Transfer Mode}.

        2. Automatic Teller Machine.

        A cash dispenser.

        3. <chat> At the moment.

        4. <text> {Adobe Type Manager}.

        (1995-12-04)

ATM Forum

        <networking, body> An international non-profit arganisation
        aiming to encourage the user of {Asynchronous Transfer
        Mode} through {interoperability} specifications and to promote
        cooperation and awareness.

        The ATM Forum consists of a worldwide Technical Committee,
        three Marketing Committees for North America, Europe and
        Asia-Pacific as well as the User Committee, through which ATM
        end-users participate.

        Worldwide Headquarters: 2570 West El Camino Real, Suite 304
        Mountain View, CA 94040-1313 USA.

        Telephone: +1 (650) 949 6700.

        E-mail: ATM Forum <info@atmforum.com>.

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

        (1999-06-14)

atob

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

        (1997-08-08)

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.

        (1994-10-25)

ATRAC

        {AdaptiveTRansform Acoustic Coding}

ATS

        {Attribute Translation System}

at sign

        {commercial at}

AT&T

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

        (1994-12-07)

Attachment Unit Interface

        <networking> (AUI) The part of the {IEEE} {Ethernet}
        {standard} located between the {MAC}, and the {MAU}.  The AUI
        is a {transceiver} cable that provides a path between a
        {node}'s Ethernet interface and the MAU.

        (1996-12-08)

AT&T Bell Labs

        {Bell Laboratories}

atto-

        {prefix}

attoparsec

        <unit, humour> 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.

        (1996-12-08)

Attribute Translation System

        <grammar, tool> (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 <bocking@cs.usask.ca>?

        (1988-11-29)

ATX

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

        (1996-12-10)

au

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

        2. <filename extension> {audio}.

        (1995-02-15)

aubergine

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

        (1995-01-24)

audio

        <file format> Sound, one component of {multimedia}.  Computers
        (and audio compact discs and digital audio tape) work with
        {digital audio}, in contrast to vinyl disks or analogue tape.

        (1999-07-30)

audiographics

        {Audiographic Teleconferencing}

audiographic teleconferencing

        <communications> (Or "electronic whiteboarding", "screen
        sharing") A form of {teleconferencing} in {real time} using
        both an {audio} and a data connection.  The computer screen is
        shared by more than one site, and used as an electronic
        blackboard, overhead projector or still video projector.  Some
        systems allow for sharing software also.

        (1995-10-06)

Audio IFF

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

        (1994-10-10)

AudioOne

        <tool, music> Digital recording and editing software developed
        by {BizTrack Software Development} for the dance, music, and
        audio industries.  AudioOne includes a waveform recorder that
        allows signal manipulation, editing, and recording.

        (1996-09-28)

Audio Processing Technology

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

        (1996-01-15)

Audio Video Interleave

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

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

        [Details?]

        (1996-09-08)

Augumented Backus-Naur Form

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

        [Summary?]

        (1997-11-23)

AUI

        1. <tool, product> {Adaptable User Interface}.

        2. <networking> {Attachment Unit Interface}.

        (1996-12-08)

A'UM

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

        (1996-12-08)

AUP

        {acceptable use policy}

Aurora

        ["The Aurora Or-Parallel Prolog System", E. Lusk et al, Proc
        3rd Intl Conf on Fifth Generation Comp Systems, pp. 819-830,
        ICOT, A-W 1988].

Austin Kyoto Common Lisp

        <language> (AKCL) A collection of ports, bug fixes, and
        performance improvements to {KCL} by William Schelter
        <wfs@cli.com>, <wfs@math.utexas.edu>, University of Texas.

        Version 1-615 includes ports to {Decstation} 3100,
        {HP9000}/300, {i386}/{Sys V}, {IBM-PS2}/{AIX}, {IBM-RT}/{AIX},
        {SGI}, {Sun-3}/{Sunos} 3 or 4, {Sun-4}, {Sequent Symmetry},
        {IBM370}/{AIX}, {VAX}/{BSD VAX}/{Ultrix}, {NeXT}.

        {(ftp://rascal.ics.utexas.edu/pub/akcl-1-609.tar.Z)}

        (1992-04-29)

authentication

        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

        <hypertext> Creating a {hypertext} or {hypermedia} document.

        (1994-11-07)

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

        (1994-11-09)

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.

        (1994-11-07)

Autodesk, Inc.

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

        Address: Sausalito, CA, USA.

        (1994-11-09)

AUTOEXEC.BAT

        <operating system> The {batch file} containing commands,
        loaded by {MS-DOS} after running {CONFIG.SYS}.  AUTOEXEC.BAT
        contains normal DOS commands and can be used for additional
        system configuration such as setting paths and variables,
        configuring network connections and running {application
        program}s.

        (1995-03-18)

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

        (1994-11-07)

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

        (1994-11-09)

Autolisp

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

        (1994-11-09)

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

        <language> (AED) (Or "ALGOL Extended for Design") A systems
        language for the {IBM 7090} and {IBM 360} developed at {MIT}
        System Laboratory ca. 1965 by a team led by Douglas T. Ross
        (now at {Softech}).  AED is an extension of {ALGOL 60} with
        {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].

        (1995-03-26)

Automated Retroactive Minimal Moderation

        <messaging> (ARMM) A {Usenet} robot created by Dick Depew of
        Munroe Falls, Ohio.  ARMM was intended to automatically cancel
        posts from anonymous-posting sites.  Unfortunately, the
        robot's recogniser for anonymous postings triggered on its own
        automatically-generated control messages!  Transformed by this
        stroke of programming ineptitude into a monster of
        Frankensteinian proportions, it broke loose on the night of
        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}.

        (1996-01-08)

automated testing

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

        (1996-05-10)

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

        <language> (APT) A language for numerically controlled machine
        tools.

        Versions: APT II (IBM 704, 1958), APT III (IBM 7090, 1961).

        ["APT Part Programming", McGraw-Hill].

        [Sammet 1969, p. 605].

        (1995-05-04)

automatic baud rate detection

        (ABR, autobaud) A process by which a receiving device
        determines the speed, code level, and stop bits of incoming
        data by examining the first character, usually a preselected
        sign-on character.  ABR allows the receiving device to accept
        data from a variety of transmitting devices operating at
        different speeds without needing to establish data rates in
        advance.

        (1996-06-18)

automatic hyphenation

        <text> A feature of some {word processors} which can insert
        hyphens into words which would otherwise extend beyond the
        right hand margin of the page.

        More advanced word processors may have options to control the
        position of the hyphen, to restrict certain words from being
        hyphenated, and to allow custom dictionaries of hyphenation
        points to be built up.

        (1996-08-02)

Automatic Mathematical TRANslation

        <mathematics, tool> (AMTRAN) A system developed by NASA
        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)].

        (1995-11-14)

Automatic Network Routing

        <protocol> (ANR) A {source routing protocol} used to route
        {LU6.2} session and control traffic from {node} to node
        through a {High Performance Routing} network or {subnet}.  ANR
        operates at the lower end of the {SNA} {Path Control layer}.

        [Relationship to {OS/390}?]

        (1997-05-08)

Automatic Number Identification

        <communications> (ANI) A service that tells the recipient of a
        telephone call the telephone number of the person making the
        call.  This number can be passed to computer equipment to
        automatically retrieve associated information about the caller,
        i.e. account status, billing records, etc.

        See {CTI}.

        (1996-12-08)

Automatic Repeat Request

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

        (1995-11-14)

Automatic Send Receive

        <hardware> (ASR) Part of a designation for a hard-copy
        {terminal}, manufactured by {Teletype Corporation}, which
        could be commanded remotely to send the contents of its {paper
        tape} reader.  The ASR-33 was the most common {minicomputer}
        terminal in the early 1970s.

        (1995-11-23)

Automatic Sequence Controlled Calculator

        {Mark 1}

automation

        Automatic, as opposed to human, operation or control of a
        process, equipment or a system; or the techniques and
        equipment used to achieve this.  Most often applied to
        computer (or at least electronic) control of a manufacturing
        process.

        See also {design automation}, {office automation},
        {manularity}, {Manufacturing Automation Protocol}, {PEARL},
        {QBE}.

        (1994-10-21)

Automatische Rechenplanfertigung

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

automaton

        <robotics, mathematics, algorithm> (Plural automata) A
        machine, {robot}, or formal system designed to follow a
        precise sequence of instructions.

        Automata theory, the invention and study of automata, includes
        the study of the capabilities and limitations of computing
        processes, the manner in which systems receive input, process
        it, and produce output, and the relationships between
        behavioural theories and the operation and use of automated
        devices.

        See also {cellular automaton}, {finite state machine}.

        (1996-04-23)

Automatrix, Inc.

        <company> The company which produced {CAM-PC}.

        Address: Ballston Spa, NY, USA.

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

        (1995-04-21)

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

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

        (1997-12-13)

auxiliary storage

        <storage> An obsolete term for a {hard disk} {drive}.

        (1997-04-14)

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. <chat, virtual reality> An {image} representing a user in a
        multi-user {virtual reality} (or VR-like, in the case of
        {Palace}) space.

        2. (CMU, Tektronix) {root}, {superuser}.  There are quite a
        few {Unix} computers on which the name of the superuser
        account is "avatar" rather than "root".  This quirk was
        originated by a {CMU} hacker who disliked the term
        "superuser", and was propagated through an ex-CMU hacker at
        {Tektronix}.

        (1997-09-14)

average seek time

        <storage> The mean time it takes to move the head of a {disk
        drive} from one {track} to another, averaged over the source
        and destination cylinders.

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

        (1997-07-22)

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

        (1994-11-28)

AVS

        {Application Visualisation System}

aw

        <networking> The {country code} for Aruba.

        (1999-01-27)

AWE

        {Advanced WavEffect}

awk

        1. <tool, language> (Named from the authors' initials) An
        interpreted language included with many versions of {Unix} for
        massaging text data developed by Alfred Aho, Peter Weinberger,
        and Brian Kernighan in 1978.  It is characterised by {C}-like
        syntax, declaration-free variables, {associative 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. <jargon> An expression which is awkward to manipulate
        through normal {regexp} facilities, for example, one
        containing a {newline}.

        (1995-10-06)

AWT

        {Abstract Windowing Toolkit}

aXe

        <tool> A {text editor} for the {X Window System}.  No longer
        maintained.

        (1998-03-13)

AXIOM

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

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

        (1995-02-21)

axiom

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

        Compare: {lemma}.

        (1995-03-31)

AXIOM*

        <mathematics, tool> A {symbolic mathematics} system.

        {A#} is one component of AXIOM*.

        Version: 2.

        (1995-02-21)

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

        (1995-02-07)

axiomatic semantics

        <theory> A set of assertions about properties of a system and
        how they are effected by program execution.  The axiomatic
        semantics of a program could include pre- and post-conditions
        for operations.  In particular if you view the program as a
        state transformer (or collection of state transformers), the
        axiomatic semantics is a set of invariants on the state which
        the state transformer satisfies.

        E.g. for a function with the type:

                sort_list :: [T] -> [T]

        we might give the precondition that the argument of the
        function is a list, and a postcondition that the return value
        is a list that is sorted.

        One interesting use of axiomatic semantics is to have a
        language that has a {finitely computable} sublanguage that is
        used for specifying pre and post conditions, and then have the
        compiler prove that the program will satisfy those conditions.

        See also {operational semantics}, {denotational semantics}.

        (1995-11-09)

axiomatic set theory

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

        (1997-05-11)

Axiom of Choice

        <mathematics> (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 Frnkel set theory} (ZF).
        Gdel 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.

        (1995-04-12)

Axiom of Comprehension

        <mathematics> An {axiom schema} of {set theory} which states:
        if P(x) is a {property} then

                {x : P}

        is a set.  I.e. all the things with some property form a set.

        Acceptance of this axiom leads to {Russell's Paradox} which is
        why {Zermelo set theory} replaces it with a restricted form.

        (1995-03-31)

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: <irus-software-request@ics.uci.edu>.

        (1993-01-06)

AYT

        <chat> Are you there?

        (1996-03-09)

az

        <networking> The {country code} for Azerbaijan.

        (1999-01-27)

AZERTY

        {QWERTY}

B

        1. {byte}.

        2. <language> A systems language written by {Ken Thompson} in
        1970 mostly for his own use under {Unix} on the {PDP-11}.  B
        was later improved by Kerninghan(?) and Ritchie to produce
        {C}.  B was used as the systems language on {Honeywell}'s
        {GCOS-3}.

        B was, according to Ken, greatly influenced by {BCPL}, but the
        name B had nothing to do with BCPL.  B was in fact a revision
        of an earlier language, {bon}, named after Ken Thompson's
        wife, Bonnie.

        ["The Programming Language B", S.C. Johnson & B.W. Kernighan,
        CS TR 8, Bell Labs (Jan 1973)].

        [Features?  Differences from C?]

        (1997-02-02)

        3. <language> A simple interactive programming language 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. <language, specification> A specification language by
        Jean-Raymond Abrial of {B Core UK}, Magdalen Centre, Oxford
        Science Park, Oxford OX4 4GA.  B is related to {Z} and
        supports development of {C} code from specifications.  B has
        been used in major {safety-critical system} specifications in
        Europe, and is currently attracting increasing interest in
        industry.  It has robust, commercially available tool support
        for specification, design, proof and code generation.

        E-mail: <Ib.Sorensen@comlab.ox.ac.uk>.

        (1995-04-24)

b

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

        (1996-11-03)

B-0

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

        (1997-01-09)

B1FF

        {BIFF}

B1 security

        {Orange Book}

B2 security

        {Orange Book}

B3 security

        {Orange Book}

b4

        <chat> before.

ba

        <networking> The {country code} for Bosnia and Herzegowina.

        (1999-01-27)

Baan

        <company> A provider of {enterprise resource planning} and
        {manufacturer resource planning} software.

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

        (1998-07-07)

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

        <networking> An {Ethernet} node attempting to transmit more
        than 1518 data bytes - the largest allowed Ethernet {packet}.
        This is why the {Maximum Transmission Unit} for {IP} traffic
        on Ethernet is 1500.

        [Why 1518?]

        (1998-03-13)

BABEL

        1. A subset of {ALGOL 60}, with many {ALGOL W} extensions.

        ["BABEL, A New Programming Language", R.S. Scowen, Natl Phys
        Lab UK, Report CCU7, 1969].

        2. Mentioned in The Psychology of Computer Programming,
        G.M. Weinberg, Van Nostrand 1971, p.241.

        3. A language based on {higher-order 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)].

        (1994-11-28)

BABT

        {British Approval Boards for Telecommunications}

Baby AT

        <hardware> The redesigned {AT} motherboard that had the same
        size as the {XT} motherboard had (8.5" x 11") and could thus
        fit into an XT case.  The original 12" x 13" AT motherboards
        are now largely forgotten.

        Compare {ATX}.

        (1997-02-20)

BABYLON

        A development environment for {expert 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/)}

        (1995-02-08)

BACAIC

        Boeing Airplane Company Algebraic Interpreter Coding system.

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

        (1995-02-08)

Bachman

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

        (1995-02-08)

Bachman Information Systems

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

        (1998-02-06)

backbone

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

        See also: {Internet backbone}.

        (1998-07-02)

backbone cabal

        <networking> A group of large-site administrators who pushed
        through the {Great Renaming} and reined in the chaos of
        {Usenet} during most of the 1980s.  The cabal {mailing list}
        disbanded in late 1988 after a bitter internal cat-fight.

        (1994-11-28)

backbone site

        A key {Usenet}, {electronic mail} and/or {Internet} site; one
        that processes a large amount of third-party traffic,
        especially if it is the home site of any of the regional
        coordinators for the {Usenet} maps.  Notable backbone sites as
        of early 1993 include {uunet} and the mail machines at
        {Rutgers University}, UC Berkeley, {DEC}'s Western Research
        Laboratories, {Ohio State University} and the {University of
        Texas}.

        Compare {rib site}, {leaf site}.

        (1994-11-28)

back door

        <security> (Or "{trap door}", "{wormhole}").  A hole in the
        security of a system deliberately left in place by designers
        or maintainers.  The motivation for such holes is not always
        sinister; some {operating 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].

        (1995-04-25)

back-end

        <programming> Any software performing either the final stage
        in a process, or a task not apparent to the user.  A common
        usage is in a {compiler}.  A compiler's back-end generates
        {machine language} and performs optimisations specific to the
        machine's {architecture}.

        The term can also be used in the context of {network}
        applications.  E.g. "The back-end of the system handles
        {socket} protocols".

        Contrast {front end}.

        (1996-04-09)

Back End Generator

        <tool> (BEG) A {code generator}.  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
        <emmel@karlsruhe.gmd.dbp.de>, GMD, U Karlsruhe 1990].

        [Summary?]

        (1994-12-14)

Back End Generator Language

        {Back End Generator}

backgammon

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

background

        1. <operating system> A task running in the background (a
        background task) is detached from the terminal where it was
        started (and often running at a lower priority); opposite of
        {foreground}.  This means that the task's input and output
        must be from/to files (or other processes).

        Nowadays this term is primarily associated with {Unix}, but it
        appears to have been first used in this sense on {OS/360}.

        Compare {amp off}, {batch}, {slopsucker}.

        2. <jargon> For a human to do a task "in the background" is to
        do it whenever {foreground} matters are not claiming your
        undivided attention, and "to background" something means to
        relegate it to a lower priority.  "For now, we'll just print a
        list of nodes and links; I'm working on the graph-printing
        problem in the background."  Note that this implies ongoing
        activity but at a reduced level or in spare time, in contrast
        to mainstream "back burner" (which connotes benign neglect
        until some future resumption of activity).  Some people prefer
        to use the term for processing that they have queued up for
        their unconscious minds (often a fruitful tack to take upon
        encountering an obstacle in creative work).

        (1996-05-28)

backing store

        <text> Character storage in memory or on disk, as opposed to
        displayed or printed characters.  This distinction is
        important where the visual ordering of characters differs from
        the order in which they are stored, e.g. bidirectional or
        non-spacing layout.

        In a {Unicode} encoding, text is stored in sequential order in
        the backing store.  Logical or backing store order corresponds
        to the order in which text is typed on the keyboard (after
        corrections such as insertions, deletions, and overtyping).  A
        text rendering process converts Unicode text in the backing
        store to readable text.

        ["The Unicode Standard: Worldwide Character Encoding", Version
        1.0, Vol. 1. Addison-Wesley, 1991].

        (1996-05-28)

back link

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

        (1996-05-28)

backoff

        <networking> A {host} which has experienced a {collision} on a
        {network} waits for a amount of time before attempting to
        retransmit.  A random backoff minimises the probability that
        the same nodes will collide again, even if they are using the
        same backoff algorithm.  Increasing the backoff period after
        each collision also helps to prevent repeated collisions,
        especially when the network is heavily loaded.

        An example algorithm is {binary exponential backoff}.

        (1996-05-28)

BackOffice

        <software> A suite of network {server} software from
        {Microsoft} that includes {Windows NT} Server, 

        BackOffice Server (for the integrated development, deployment,
        and management of BackOffice applications in departments,
        branch offices, and medium sized businesses); {Exchange
        Server}; {Proxy Server}; {Site Server} for {intranet}
        publishing, management, and search; Site Server Commerce
        Edition For comprehensive {Internet commerce} transactions;
        {Small Business Server} for business operations, resource
        management, and customer relations; {SNA Server} for the
        integration of existing and new systems and data; {SQL Server}
        for scalable, reliable database and data-warehousing; {Systems
        Management Server} (SMS) for centralised change- and
        {configuration-management}.

        (1999-09-16)

back-propagation

        (Or "backpropagation") A learning {algorithm} for modifying a
        {feed-forward} {neural network} which minimises a continuous
        "{error function}" or "{objective function}."
        Back-propagation is a "{gradient descent}" method of training
        in that it uses gradient information to modify the network
        weights to decrease the value of the error function on
        subsequent tests of the inputs.  Other gradient-based methods
        from {numerical analysis} can be used to train networks more
        efficiently.

        Back-propagation makes use of a mathematical trick when the
        network is simulated on a digital computer, yielding in just
        two traversals of the network (once forward, and once back)
        both the difference between the desired and actual output, and
        the derivatives of this difference with respect to the
        connection weights.

back quote

        <character> "`" {ASCII} code 96.  Common names: left quote;
        left single quote; open quote; {ITU-T}: grave accent; grave.
        Rare: backprime; {INTERCAL}: backspark; unapostrophe; birk;
        blugle; back tick; back glitch; push; {ITU-T}: opening single
        quotation mark; quasiquote.

        Back quote is used in {Unix} shells to invoke {command
        substitution}.

        (1996-11-26)

backside cache

        <hardware, processor> An implementation of {secondary cache}
        memory that allows it to be directly accessed by the {CPU}.

        Backside cache is used by {Apple Computers, Inc.} in their
        {PowerPC G3} processor.  Previous PowerPC processors used the
        {system bus} to access both secondary cache and {main memory}.
        In the PowerPC G3 a dedicated bus handles only {CPU}/cache
        transactions.  This bus can operate faster than the system bus
        thus improving the overall performance of the processor.

        The term apparently derives from the relocation of the
        secondary cache from the {motherboard} to the processor card
        itself, i.e. on the backside of the processor card.

        (1998-09-10)

backslash

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

        (1995-11-17)

backtick

        {back quote}

backtracking

        <algorithm> A scheme for solving a series of sub-problems each
        of which may have multiple possible solutions and where the
        solution chosen for one sub-problem may affect the possible
        solutions of later sub-problems.

        To solve the overall problem, we find a solution to the first
        sub-problem and then attempt to recursively solve the other
        sub-problems based on this first solution.  If we cannot, or
        we want all possible solutions, we backtrack and try the next
        possible solution to the first sub-problem and so on.
        Backtracking terminates when there are no more solutions to
        the first sub-problem.

        This is the algorithm used by {logic programming} languages
        such as {Prolog} to find all possible ways of proving a
        {goal}.  An optimisation known as "{intelligent backtracking}"
        keeps track of the dependencies between sub-problems and only
        re-solves those which depend on an earlier solution which has
        changed.

        Backtracking is one {algorithm} which can be used to implement
        {nondeterminism}.  It is effectively a {depth-first search} of
        a {problem space}.

        (1995-04-13)

backup

        <operating system> (Sometimes "back up" when used as a verb) A
        spare copy of a file, file system or other resource for use in
        the event of failure or loss of the original.

        The term 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 neglected by most new computer
        users until the first time they experience a {disk crash} or
        accidentally delete the only copy of the file they have been
        working on for the last six months.

        Ideally the backup copies should be kept at a different site
        or in a fire safe since, though your hardware may be insured
        against fire, the data on it is almost certainly neither
        insured nor easily replaced.

        See also {incremental backup}.  Compare {archive}.

        (1998-04-17)

backup pumpkin

        {pumpkin}

Backus-Naur Form

        <language, grammar> (BNF, originally "Backus Normal Form") A
        formal {metasyntax} used to express {context-free grammars}.
        Backus Normal Form was renamed Backus-Naur Form at the
        suggestion of {Donald Knuth}.

        BNF is one of the most commonly used metasyntactic notations
        for specifying the {syntax} of programming languages, command
        sets, and the like.  It is widely used for language
        descriptions but seldom documented anywhere (how do you
        document a {metasyntax}?), so that it must usually be learned
        by osmosis (but see {RFC 2234}).

        Consider this BNF for a US postal address:

         <postal-address> ::= <name-part> <street-address> <zip-part>

         <personal-part> ::= <name> | <initial> "."

         <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
                       | <personal-part> <name-part>

         <street-address> ::= [<apt>] <house-num> <street-name> <EOL>

         <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>

        This translates into English as: "A postal-address consists of
        a name-part, followed by a street-address part, followed by a
        zip-code part.  A personal-part consists of either a first
        name or an initial followed by a dot.  A name-part consists of
        either: a personal-part followed by a last name followed by an
        optional "jr-part" (Jr., Sr., or dynastic number) and
        end-of-line, or a personal part followed by a name part (this
        rule illustrates the use of recursion in BNFs, covering the
        case of people who use multiple first and middle names and/or
        initials).  A street address consists of an optional apartment
        specifier, followed by a street number, followed by a street
        name.  A zip-part consists of a town-name, followed by a
        comma, followed by a state code, followed by a ZIP-code
        followed by an end-of-line."

        Note that many things (such as the format of a personal-part,
        apartment specifier, or ZIP-code) are left unspecified.  These
        lexical details are presumed to be obvious from context or
        specified somewhere nearby.

        There are many variants and extensions of BNF, possibly
        containing some or all of the {regexp} {wild cards} such as
        "*" or "+".  {EBNF} is a common one.  In fact the example
        above isn't the pure form invented for the {ALGOL 60} report.
        "[]" was introduced a few years later in {IBM}'s {PL/I}
        definition but is now universally recognised.  {ABNF} is
        another extension.

        (1997-11-23)

Backus Normal Form

        {Backus-Naur Form}

backward analysis

        <theory> An analysis to determine properties of the inputs of
        a program from properties or context of the outputs.  E.g. if
        the output of this function is needed then this argument is
        needed.

        Compare {forward analysis}.

        (1997-11-23)

backward chaining

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

        (1997-07-14)

backward combatability

        <humour> /bak'w*d k*m-bat'*-bil'*-tee/ (Play on "{backward
        compatibility}") A property of hardware or software revisions
        in which previous {protocols}, formats, layouts, etc. are
        irrevocably discarded in favour of "new and improved"
        protocols, formats and layouts, leaving the previous ones not
        merely deprecated but actively defeated.  (Too often, the old
        and new versions cannot definitively be distinguished, such
        that lingering instances of the previous ones yield crashes or
        other infelicitous effects, as opposed to a simple "version
        mismatch" message.)  A 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}.

        (1997-03-01)

backward compatible

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

        (1998-01-15)

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

        <operating system> The error message printed by {MS DOS} when
        it can't find a program or command to execute due to a typing
        error, incorrect PATH variable, or misplaced or missing
        executable.

        (1996-04-07)

Bad Thing

        <jargon> (From the 1930 Sellar & Yeatman parody "1066 And All
        That") Something that can't possibly result in improvement of
        the subject.  This term is always capitalised, as in
        "Replacing all of the 9600-baud modems with bicycle couriers
        would be a Bad Thing".

        Opposite: {Good Thing}.

        British correspondents confirm that {Bad Thing} and {Good
        Thing} (and probably therefore {Right Thing} and {Wrong
        Thing}) come from the book referenced in the etymology, which
        discusses rulers who were Good Kings but Bad Things.  This has
        apparently created a mainstream idiom on the British side of
        the pond.

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

        <jargon> Matching computer tools to job activities so that the
        computer system structure parallels the organisation structure
        and work functions.  Both {personal computers} and employees
        operate in a decentralised environment with monitoring of
        achievement of management objectives from centralised
        corporate systems.

        {(http://www.moultonco.com/balanced.htm)}

        (1996-04-15)

balanced tree

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

        (1996-04-15)

BALGOL

        <language> {ALGOL} on {Burroughs 220}.

        [Sammet 1969, p. 174].

        (1996-04-15)

BALITAC

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

BALM

        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

        <electronics> A transformer connected between a balanced
        source or load and an unbalanced source or load.  A balanced
        line has two conductors, with equal currents in opposite
        directions.  The unbalanced line has just one conductor; the
        current in it returns via a common ground or earth path.

        (1996-10-17)

bamf

        /bamf/ 1. [Old X-Men comics] Notional sound made by a person
        or object teleporting in or out of the hearer's vicinity.
        Often used in {virtual reality} (especially {MUD}) electronic
        {fora} when a character wishes to make a dramatic entrance or
        exit.

        2. The sound of magical transformation, used in virtual
        reality {fora}.

Banach algebra

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

        (1997-02-25)

Banach inverse mapping theorem

        <mathematics> In a {Banach space} the inverse to a
        {continuous} {linear mapping} is continuous.

        (1998-06-25)

Banach space

        <mathematics> A {complete} {normed} {vector space}.

        Several theorems hold only in Banach spaces, e.g. the {Banach
        inverse mapping theorem}.  All finite-dimensional real and
        complex vector spaces are Banach spaces.

        {Hilbert spaces}, spaces of {integrable functions} and spaces
        of {absolutely convergent series} are examples of
        infinite-dimensional Banach spaces.

        (1998-06-25)

Banach-Tarski paradox

        <mathematics> It is possible to cut a solid ball into finitely
        many pieces (actually about half a dozen), and then put the
        pieces together again to get two solid balls, each the same
        size as the original.

        This {paradox} is a consequence of the {Axiom of Choice}.

        (1995-03-29)

banana label

        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.

        (1995-01-31)

bandwidth

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

        (1994-11-28)

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.

        (1995-01-31)

bang on

        (Or "pound on").  To stress-test a piece of hardware or
        software: "I banged on the new version of the simulator all
        day yesterday and it didn't crash once.  I guess it is ready
        for release."

bang path

        1. <communications> An old-style {UUCP} {electronic-mail
        address} naming a sequence of hosts through which a message
        must pass to get from some assumed-reachable location to the
        addressee (a "{source route}").  So called because each {hop}
        is signified by a {bang} sign (exclamation mark).  Thus, for
        example, the path

                ...!bigsite!foovax!barbox!me

        directs people to route their mail to computer bigsite
        (presumably a well-known location accessible to everybody) and
        from there through the computer foovax to the account of user
        me on barbox.

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

        2. <operating system> A {shebang}.

        (1998-05-06)

banner

        1. The title page added to printouts by most {print spoolers}.
        Typically includes user or account ID information in very
        large character-graphics capitals.  Also called a "burst
        page", because it indicates where to burst (tear apart)
        fanfold paper to separate one user's printout from the next.

        2. A similar printout generated (typically on multiple pages
        of fan-fold paper) from user-specified text, e.g. by a program
        such as {Unix}'s "banner".

        3. {splash screen}.

        (1994-11-28)

Banyan

        <company> A {personal computer} networking company, best known
        for its "{Vines}" products for {local area networks}.

        Address: Westborough MA, USA.

        [More info?]

        (1995-03-01)

BAP

        1. <language> An early system used on the {IBM 701}.

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

        (1994-11-28)

        2. <language> {Brain Aid Prolog}.

        (1995-03-07)

bar

        1. <programming, convention> /bar/ The second {metasyntactic
        variable}, after {foo} and before {baz}.  E.g. "Suppose
        function FOO calls functions BAR..."

        2. Often appended to {foo} to produce {foobar}.

        (1995-03-07)

bar code

        <convention> A printed horizontal strip of vertical bars of
        varying widths, groups of which represent decimal digits and
        are used for identifying commercial products or parts.  Bar
        codes are read by a bar code reader and the code interpreted
        either through {software} or a {hardware} decoder.

        All products sold in open trade are numbered and bar-coded to
        a worldwide standard, which was introduced in the US in 1973
        and to the rest of the world in 1977.  The Uniform Code
        Council in the US, along with the international article
        numbering authority, EAN International, allocate blocks of
        unique 12 or 13-digit numbers to member companies through a
        national numbering authority.  In Britain this is the Article
        Number Association.  Most companies are allocated 100,000
        numbers that they can use to identify any of their products,
        services or locations.

        Each code typically contains a leading "quiet" zone, start
        character, data character, optional {check digit}, stop
        character and a trailing quiet zone.  The check digit is used
        to verify that the number has been scanned correctly.  The
        quiet zone could be white, red or yellow if viewed by a red
        scanner.  Bar code readers usually use visible red light with
        a wavelength between 632.8 and 680 nanometres.

        [Details of code?]

        (1997-07-18)

bare metal

        1. New computer hardware, unadorned with such snares and
        delusions as an {operating system}, an {HLL}, or even
        {assembler}.  Commonly used in the phrase "programming on the
        bare metal", which refers to the arduous work of {bit bashing}
        needed to create these basic tools for a new computer.  Real
        bare-metal programming involves things like building {boot
        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}.

        (1996-02-26)

barfmail

        <messaging> Multiple {bounce messages} accumulating to the
        level of serious annoyance, or worse.  The sort of thing that
        happens when an inter-network {mail gateway} goes down or
        misbehaves.

        (1996-01-05)

barfulation

        /bar`fyoo-lay'sh*n/ Variation of {barf} used around the
        Stanford area.  An exclamation, expressing disgust.  On seeing
        some particularly bad code one might exclaim, "Barfulation!
        Who wrote this, Quux?"

barfulous

        /bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of
        something that would make anyone barf, if only for aesthetic
        reasons.

        (1995-02-22)

barney

        In Commonwealth hackish, "barney" is to {fred} as {bar} is to
        {foo}.  That is, people who commonly use "fred" as their first
        {metasyntactic variable} will often use "barney" second.  The
        reference is, of course, to Fred Flintstone and Barney Rubble
        in the Flintstones cartoons.

        (1994-11-28)

Baroque

        An early {logic programming} language written by Boyer and
        Moore in 1972.

        ["Computational Logic: Structure Sharing and Proof of program
        Properties", J. Moore, DCL Memo 67, U Edinburgh 1974].

        (1995-02-22)

baroque

        Feature-encrusted; complex; gaudy; verging on excessive.  Said
        of hardware or (especially) software designs, this has many of
        the connotations of {elephantine} or monstrosity but is less
        extreme and not pejorative in itself.  "{Metafont} even has
        features to introduce random variations to its letterform
        output.  Now *that* is baroque!"

        See also {rococo}.

        (1995-02-22)

barrel shifter

        <hardware> A hardware device that can shift or rotate a data
        word by any number of bits in a single operation.  It is
        implemented like a {multiplexor}, each output can be connected
        to any input depending on the shift distance.

        (1995-03-28)

base

        <mathematics> {radix}.

base 64

        <file format, algorithm> A file format using 64 {ASCII}
        characters to encode the six bit {binary data} values 0-63.

        To convert data to base 64, the first byte is placed in the
        most significant eight bits of a 24-bit buffer, the next in
        the middle eight, and the third in the least significant eight
        bits.  If there a fewer than three bytes to encode, the
        corresponding buffer bits will be zero.  The buffer is then
        used, six bits at a time, most significant first, as indices
        into the string
        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
        and the indicated character output.  If there were only one or
        two input bytes, the output is padded with two or one "="
        characters respectively.  This prevents extra bits being added
        to the reconstructed data.  The process then repeats on the
        remaining input data.

        Base 64 is used when transmitting binary data through
        text-only media such as {electronic mail}, though {uuencode}
        is more common.

        (1995-03-21)

baseband

        A transmission medium through which digital signals are sent
        without frequency shifting.  In general, only one
        communication channel is available at any given time.

        {Ethernet} is an example of a baseband network.

        See also {broadband}.

        (1995-02-22)

base class

        <programming> (Or "superclass") The {class} from which another
        class (a "subclass") inherits.

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

        (1996-08-04)

baseline

        {released version}

base memory

        <hardware, jargon> The lowest 640 {kilobytes} of memory in an
        {IBM PC}-compatible computer running {MS-DOS}.  Other PC
        {operating systems} can usually compensate and "ignore" the
        fact that there is a 640K limit to base memory.  This was put
        in place because the original {CPU} - the {Intel 8088} - could
        only access one {megabyte} of memory, and {IBM} wanted to
        reserve the upper 384KB for {device drivers}.  The {high
        memory area} (HMA) lies above 640KB and can be accessed on
        MS-DOS computers that have an {A20 handler}.

        (1997-05-30)

basename

        <file system> The name of a file which, in contrast to a
        {pathname}, does not mention any of the {directories}
        containing the file.  Examples:

                pathname        basename
                --------        --------
                /etc/hosts      hosts
                ./alma          alma
                korte/a.a       a.a
                a.a             a.a

        See also {pathname}.

        (1996-11-23)

Base Technology

        <company> The company which developed and distributes {Liana}.

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

        E-mail: Jack Krupansky <Jack@BaseTechnology.com> (owner).

        Address: Base Technology, Attn: Jack Krupansky, 1500 Mass. Ave. NW #114
        Washington, DC 2005, USA.
        800-786-9505

        Telephone: +1 800 876 9505.

        (1999-06-29)

bash

        Bourne Again SHell.  {GNU}'s {command interpreter} for {Unix}.
        Bash is a {Posix}-compatible {shell} with full {Bourne shell}
        syntax, and some {C shell} commands built in.  The Bourne
        Again Shell supports {Emacs}-style command-line editing, job
        control, functions, and on-line help.  Written by Brian Fox
        <bfox@vision.ucsb.edu>.

        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: <bug-bash@prep.ai.mit.edu>.
        {Usenet} newsgroup: {news:gnu.bash.bug}.

        (1994-07-15)

BASIC

        <language> 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 1964-05-01.  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: <basic@ireq.hydro.qc.ca>.

        See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC},
        {ubasic}.

        (1995-03-15)

Basic Assembly Language

        (BAL) What most people called {IBM 360} {assembly language}.

        See {ALC}.

        (1995-04-13)

BASIC AUTOCODER

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

Basic COBOL

        <language> A subset of {COBOL} from {COBOL-60} standards.

        [Sammet 1969, p. 339].

        (1997-12-07)

Basic Encoding Rules

        <protocol, standard> (BER) {ASN.1} encoding rules for
        producing self-identifying and self-delimiting {transfer
        syntax} for data structures described in {ASN.1} notations.

        BER is an self-identifying and self-delimiting encoding
        scheme, which means that each data value can be identified,
        extracted and decoded individually.

        Huw Rogers once described BER as "a triumph of bloated theory
        over clean implementation".  He also criticises it as designed
        around bitstreams with arbitrary boundaries between data which
        can only be determined at a high level.

        Documents: {ITU-T} X.690, {ISO} 8825-1.

        See also {CER}, {DER}, {PER}.

        (1998-05-28)

Basic FORTRAN

        <language> A subset of {FORTRAN}.

        [Sammet 1969, p. 150].

        (1999-06-09)

Basic Input/Output System

        <operating system> (BIOS, ROM BIOS) The part of the {system
        software} of the {IBM PC} and compatibles that provides the
        lowest level interface to {peripheral} devices and controls
        the first stage of the {bootstrap} process, including
        installing the {operating system}.  The BIOS is stored in
        {ROM}, or equivalent, in every PC.  Its main task is to load
        and execute the operating system which is usually stored on
        the computer's {hard disk}, but may be loaded from {CD-ROM} or
        {floppy disk} at install time.

        In order to provide acceptable performance (e.g. for screen
        display), some software vendors access the routines in the
        BIOS directly, rather than using the higher level operating
        system calls.  Thus, the BIOS in the compatible computer must
        be 100% compatible with the IBM BIOS.

        As if that wasn't bad enough, many {application programs}
        bypass even the BIOS and address the screen hardware directly
        just as the BIOS does.  Consequently, {register} level
        compatibility is required in the compatible's display
        electronics, which means that it must provide the same storage
        locations and identification as the original IBM hardware.

        (1999-06-09)

Basic JOVIAL

        <language> A subset of {JOVIAL} written ca. 1965.

        [Sammet 1969, p.529].

        (1995-04-19)

Basic Language for Implementation of System Software

        <language> (BLISS, or allegedly, "System Software
        Implementation Language, Backwards") A language designed by
        W.A. Wulf at {CMU} around 1969.

        BLISS is an {expression language}.  It is {block-structured},
        and typeless, with {exception handling} facilities,
        {coroutines}, a {macro} system, and a highly {optimising
        compiler}.  It was one of the first non-{assembly languages}
        for {operating system} implementation.  It gained fame for its
        lack of a {goto} and also lacks implicit {dereferencing}: all
        symbols stand for addresses, not values.

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

        (1997-03-01)

Basic Multilingual Plane

        <text, standard> 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}).

        (1997-07-04)

Basic Object System

        <programming> (BOS) A {C}-callable library that implements the
        notion of {object} and which uses {Tcl} as its {interpreter}
        for interpreted {methods} (you can have "compiled" methods in
        C, and mix compiled and interpreted methods in the same
        object, plus lots more).  You can subclass and mix in existing
        objects using BOS to extend, among other things, the set of
        {tk} {widgets}.  BOS is a {class}-free object system, also
        called a prototype-based object system; it is modelled loosely
        on the {Self} system from {Stanford University}.

        Version 1.31 by Sean Levy <Sean.Levy@cs.cmu.edu>.

        {(ftp://barkley.berkeley.edu/tcl)}.

        (1992-08-21)

Basic Operating System

        <operating system> (BOS) An early [when?] {IBM} {operating
        system}.

        According to folklore, BOS was the predecessor to {TOS} on the
        {IBM 360} and it was {IPL}'d from a {card reader}.  It may
        have been intended for very small 360's with no disks and
        limited tape drives.

        BOS died out really early [when?] as disks such as the 2311
        and 2314 became common with the {IBM 360}, whereas disks had
        been a real luxury on the {IBM 7090}.

        (1999-01-29)

Basic Programming Support

        <operating system> (BPS, colloquially: Barely Programming
        Support) A suite of utility routines from {IBM} to perform
        very simple procedures like formatting a disk or labelling a
        tape.  BPS was only available on {punched cards}.

        (1998-07-08)

Basic Rate Interface

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

        (1994-11-28)

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

        (1995-01-05)

Bastard Operator From Hell

        <humour> (BOFH) A rogue {network operator} character invented
        by Simon Travaglia <simontrav@hotmail.com>, regularly featured
        in "Computing" and "DATAMATION" magazine.

        See also: {Dilbert}.

        {Home (http://www.angelfire.com/bc/simont/index.html)}.

        (1999-09-17)

bastion host

        {proxy gateway}

batch file

        <operating system> (Or script) A text file containing
        {operating system} commands which are executed automatically
        by the {command line interpreter}.  In {Unix}, this is called
        a "{shell script}" since it is the Unix {shell} which includes
        the {command line interpreter}.  Batch files can be used as a
        simple way to combine existing commands into new commands.

        {autoexec.bat} is the best known example of an {MS-DOS} batch
        file.

        (1996-01-07)

batch processing

        <programming> 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 cards} or {magnetic tape} 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.

        Since the advent of the {personal computer}, the term "batch"
        has come to mean automating frequently performed tasks that
        would otherwise be done interactively by storing those
        commands in a "{batch file}" or "{script}".  Usually this file
        is read by some kind of {command interpreter} but batch
        processing is sometimes used with GUI-based applications that
        define script equivalents for menu selections and other mouse
        actions.  Such a recorded sequence of GUI actions is sometimes
        called a "{macro}".  This may only exist in memory and may not
        be saved to disk whereas a batch normally implies something
        stored on disk.

        (1998-06-26)

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

        <communications, unit> /bawd/ (plural "baud") The unit in
        which the information carrying capacity or "{signalling rate}"
        of a communication channel is measured.  One baud is one
        symbol (state-transition or level-transition) per second.
        This coincides with bits per second only for two-level
        {modulation} with no {framing} or {stop bits}.

        A symbol is a unique state of the communication channel,
        distinguishable by the receiver from all other possible
        states.  For example, it may be one of two voltage levels on a
        wire for a direct digital connection or it might be the phase
        or frequency of a carrier.

        The term "baud" was originally a unit of telegraph signalling
        speed, set at one {Morse code} dot per second.  Or, more
        generally, the reciprocal of the duration of the shortest
        signalling element.  It was proposed at the International
        Telegraph Conference of 1927, and named after {J.M.E. Baudot}
        (1845-1903), the French engineer who constructed the first
        successful teleprinter.

        The UK {PSTN} will support a maximum rate of 600 baud but each
        baud may carry between 1 and 16 bits depending on the coding
        (e.g. {QAM}).

        Where data is transmitted as {packets}, e.g. characters, the
        actual "data rate" of a channel is

                R D / P

        where R is the "raw" rate in bits per second, D is the number
        of data bits in a packet and P is the total number of bits in
        a packet (including packet overhead).

        The term "baud" causes much confusion and is usually best
        avoided.  Use "bits per second" (bps), "bytes per second" or
        "characters per second" (cps) if that's what you mean.

        (1998-02-14)

baud barf

        <jargon> /bawd barf/ The garbage one gets on the {display
        screen} when using a {modem} connection with some {protocol}
        setting (especially line speed) incorrect, or when someone
        picks up a voice extension on the same line, or when really
        bad line noise disrupts the connection.  Baud barf is not
        completely {random}, by the way; hackers with a lot of
        serial-line experience can usually tell whether the device at
        the other end is expecting a higher or lower speed than the
        {terminal} is set to.  *Really* experienced ones can identify
        particular speeds.

        (1996-02-22)

Baudot

        {Baudot code}

Baudotbetical order

        <algorithm> /baw do bet' i k*l/ Sorted into an order where
        numerics and special characters are intermixed by sorting a
        5-bit Baudot code file ignoring the numeric shift and unshift
        codes.

        (1997-02-11)

Baudot code

        <communications> (For etymology, see {baud}) A {character set}
        predating {EBCDIC} and used originally and primarily on {paper
        tape}.  Use of Baudot reportedly survives in {TDD}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 '.

        (1997-01-30)

baud rate

        {baud}

bawk

        An {Awk}-like pattern-matching language by Bob Brodt,
        distributed with {MINIX}.

        (1994-11-28)

bay

        <hardware> (As in an aeroplane "cargo bay") A space in a
        cabinet into which a device of a certain size can be
        physically mounted and connected to power and data.

        Common examples are a "drive bay" into which a {disk drive}
        (usually either 3.5 inch or 5.25 inch) can be inserted or the
        space in a {docking station} where you insert a {notebook
        computer} or {laptop computer} to work in desktop mode or to
        charge their batteries, print, or connect to the office
        network, etc.

        (1999-01-11)

baz

        /baz/ The third {metasyntactic variable} "Suppose we have
        three functions: FOO, BAR, and BAZ.  FOO calls BAR, which
        calls BAZ..." (See also {fum}).  Occasionally appended to
        {foo} to produce "foobaz".

        Early versions of the Hacker Jargon dictionary derived "baz"
        as a Stanford corruption of {bar}.  However, Pete Samson
        (compiler of the {TMRC} lexicon) reports it was already
        current when he joined TMRC in 1958.  He says "It came from
        "Pogo".  Albert the Alligator, when vexed or outraged, would
        shout "Bazz Fazz!" or "Rowrbazzle!"  The club layout was said
        to model the (mythical) New England counties of Rowrfolk and
        Bassex (Rowrbazzle mingled with Norfolk/Suffolk/Middlesex/
        Essex)."

bb

        <networking> The {country code} for Barbados.

        (1999-01-27)

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

        <body> A {bulletin board} run by the {British Broadcasting
        Corporation} Education department from April 1994 to 30 Nov
        1995.

        (1997-01-20)

BBL

        <chat> (I will) be back later.

BBN

        {Bolt, Beranek and Newman}

bboard

        {bulletin board system}

BBS

        {bulletin board system}

BC

        An {arbitrary precision} numeric processing language with
        {C}-like {syntax}.  Traditionally implemented as a front-end
        to {DC}.  There is a {GNU} version called {GNU BC}.

        {Unix manual page}: bc(1).

BCBF

        {Branch on Chip Box Full}

BCC

        1. {Blind Carbon Copy}.

        2. {Block Check Character}.

        3. {Blocked Call Cleared}.

        (1997-02-05)

BCD

        {binary coded decimal}

BCL

        The successor to {Atlas Commercial Language}.

        ["The Provisional BCL Manual", D. Hendry, U London 1966].

BC NELIAC

        Version of NELIAC, post 1962.  Sammet 1969, p.197.

BCNU

        Be seein' you.

BCPL

        <language> (Basic CPL) A British systems language developed by
        Richards in 1969 and descended from {CPL} (Combined
        Programming Language).  BCPL is low-level, typeless and
        block-structured, and provides only one-dimensional {arrays}.
        Case is not significant, but conventionally reserved words
        begin with a capital.  Flow control constructs include:
        If-Then, Test-Then-Else, Unless-Do, While-Do, Until-Do,
        Repeat, Repeatwhile, Repeatuntil, For-to-By-Do, Loop, Break
        and Switchon-Into-Case-Default-Endcase.  BCPL has conditional
        expressions, pointers, and manifest constants.  It has both
        procedures: 'Let foo(bar) Be command' and functions: 'Let
        foo(bar) = expression'.  'Valof $(..Resultis..$)' causes a
        compound command to produce a value.  Parameters are
        {call-by-value}.

        Program segments communicate via the global vector where
        system and user variables are stored in fixed numerical
        locations in a single array.

        The first BCPL {compiler} was written in {AED}.  BCPL was used
        to implement the {TRIPOS} {operating system}, which was
        subsequently reincarnated as {AmigaDOS}.

        ["BCPL - The Language and its Compiler", Martin Richards &
        Colin Whitby-Stevens, Cambridge U Press 1979].

        See {OCODE}, {INTCODE}.

        Oxford BCPL differed slightly: Test-Ifso-Ifnot, and section
        brackets in place of $( $).

        The original {INTCODE} {interpreter} for BCPL is available for
        {Amiga}, {Unix}, {MS-DOS}
        {(ftp://wuarchive.wustl.edu/systems/amiga/programming/languages/BCPL/)}
.

        A BCPL compiler {bootstrap} kit with an {INTCODE}
        {interpreter} in {C} was written by Ken Yap
        <ken@syd.dit.csiro.au>.

        (1995-03-26)

BCS

        1. {British Computer Society}.

        2. {Binary Compatibility Standard}.

bd

        <networking> The {country code} for Bangladesh.

        (1999-01-27)

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}

be

        <networking> The {country code} for Belgium.

        (1999-01-27)

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

beamer

        <hardware, jargon> A video projector that can be connected to
        a computer instead of, or as well as, a {monitor}, and used
        for making presentations.

        [Examples?  Proper term?]

        (1999-10-24)

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

        <communications> Originally, a channel suited for carrying one
        voice-grade connection.  Typically a {DS0} channel.

        Compare {data channel}.

        (1997-03-7)

bear paw

        <jargon> The {Vulcan nerve pinch} for {SGI} computers.  The
        five key keyboard combination <left Ctrl><left Alt><left
        Shift><numeric keypad /><F12> resets the graphics subsystem,
        including the {window manager}.

        (1996-10-28)

Beats the shit outa me

        <exclamation> (BSOM) "I don't understand it".  The last thing
        you say as you walk out on someone whose system you can't fix.

        (1998-06-15)

BeBOP

        <language> A language combining sequential and parallel {logic
        programming}, {object-oriented} and {meta-level programming}.
        Both {don't know nondeterminism} and {stream AND-parallelism}.
        {Prolog} {theories} are first order entities and may be
        updated or passed in messages.  BeBOP is implemented by
        translation to {NU-Prolog} and {PNU-Prolog}.

        {(ftp://munnari.oz.au/pub/bebop.tar.Z)}.

        E-mail: Andrew Davidson <ad@cs.mu.oz.au>.

        (1996-10-27)

BeBox

        <computer> A {microcomputer} produced by {Be Inc}, containing
        between two and eight {PowerPCs} (the initial model has two
        {PPC} 603s). The BeBox can take standard {IBM PC}
        {peripherals}, such as {ISA} and {PCI} cards, {IDE} and {SCSI}
        disks, and a standard {PS/2} keyboard.

        Newsgroup: {news:comp.sys.be}.

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

        [Dates?]

        (1996-10-05)

BEDO

        {Burst Extended Data Out DRAM}

Bedrock

        A {C++} {class} library for {Macintosh} user interface
        portability.

beep

        {bell}

beeper

        {pager}

BEG

        {Back End Generator}

@Begin

        <text> The {Scribe} equivalent of {\begin}.

\begin

        <text, chat> The {LaTeX} command used with \end to delimit an
        environment within which the text is formatted in a certain
        way.  E.g. \begin{table}...\end{table}.

        Used humorously in writing to indicate a context or to remark
        on the surrounded text.  For example:

         \begin{flame}
         Predicate logic is the only good programming
         language.  Anyone who would use anything else
         is an idiot.  Also, all computers should be
         tredecimal instead of binary.
         \end{flame}

        {Scribe} users at {CMU} and elsewhere used to use @Begin/@End
        in an identical way (LaTeX was built to resemble Scribe).  On
        {Usenet}, this construct would more frequently be rendered as
        "<FLAME ON>" and "<FLAME OFF>" (a la {HTML}), or "#ifdef
        FLAME" and "#endif FLAME" (a la {C preprocessor}).

        (1998-09-21)

BEGL

        {Back End Generator}

beige toaster

        {Macintosh}

Be Inc

        <company> The company that produced the {BeBox}, founded by
        Jean-Louis Gassee, former product chief at {Apple}.

        (1996-10-05)

BEL

        {bell}

belief revision

        <artificial intelligence> The area of {theory change} in which
        preservation of the information in the theory to be changed
        plays a key role.

        A fundamental issue in belief revision is how to decide what
        information to retract in order to maintain consistency, when
        the addition of a new belief to a theory would make it
        inconsistent.  Usually, an ordering on the sentences of the
        theory is used to determine priorities among sentences, so
        that those with lower priority can be retracted.  This
        ordering can be difficult to generate and maintain.

        The postulates of the {AGM Theory for Belief Revision}
        describe minimal properties a revision process should have.

        [Better definition?]

        (1995-03-20)

BELL

        An early system on the {IBM 650} and {Datatron 200} series.

        Versions: BELL L2, BELL L3.

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

        [Is Datatron version the same?]

        (1994-12-06)

Bell

        <company> {Bell Telephone} or {Bell Laboratories}.

        (1997-04-07)

bell

        <character> {ASCII} 7, ASCII {mnemonic} "BEL", the {character
        code} which prodces a standard audibile warning from the
        computer or {terminal}.  In the {teletype} days it really was a
        bell, since the advent of the {VDU} it is more likely to be a
        sound sample (e.g. the sound of a bell) played through a
        loudspeaker.

        Also called "G-bell", because it is typed as Control-G.

        The term "beep" is preferred among some {microcomputer}
        hobbyists.

        Compare {feep}, {visible bell}.

        (1997-04-08)

Bell 103

        <protocol> The original variant of {V.21} created by {AT&T}
        when they had a telephone system monopoly in the USA.

        (1995-02-02)

Bell Communications Research, Inc

        (Bellcore) The research laboratory for the seven regional
        {Bell Telephone} companies in the USA that were created by the
        divestiture of {AT&T} in 1984.

        It can be compared to {Bell Laboratories}, for which many
        Bellcore employees used to work.  Currently jointly owned by
        the seven baby bells (as they are called), there are rumours
        that it is to be sold by its current owners to become an
        independent research laboratory

        Its headquarters are in Livingstone, New Jersey.  It has
        offices in Morristown, Lincroft, and Piscataway, all in
        New Jersey, USA.

        Telephone: +1 (201) 74 3000, +1 (800) 521 CORE.

        (1994-12-06)

Bellcore

        {Bell Communications Research, Inc.}

bell curve

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

        (1994-11-17)

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

        <benchmark> A standard program or set of programs which can be
        run on different computers to give an inaccurate measure of
        their performance.

        "In the computer industry, there are three kinds of lies:
        lies, damn lies, and benchmarks."

        A benchmark may attempt to indicate the overall power of a
        system by including a "typical" mixture of programs or it may
        attempt to measure more specific aspects of performance, like
        graphics, I/O or computation (integer or {floating-point}).
        Others measure specific tasks like {rendering} polygons,
        reading and writing files or performing operations on
        matrices.  The most useful kind of benchmark is one which is
        tailored to a user's own typical tasks.  While no one
        benchmark can fully characterise overall system performance,
        the results of a variety of realistic benchmarks can give
        valuable insight into expected real performance.

        Benchmarks should be carefully interpreted, you should know
        exactly which benchmark was run (name, version); exactly what
        configuration was it run on (CPU, memory, compiler options,
        single user/multi-user, peripherals, network); how does the
        benchmark relate to your workload?

        Well-known benchmarks include {Whetstone}, {Dhrystone},
        {Rhealstone} (see {h}), the {Gabriel benchmarks} for {Lisp},
        the {SPECmark} suite, and {LINPACK}.

        See also {machoflops}, {MIPS}, {smoke and mirrors}.

        {Usenet} newsgroup: {news:comp.benchmarks}.

        {A database of some benchmark results
        (http://netlib2.cs.utk.edu/performance/html/PDSreports.html)}.

        (1999-10-12)

Bend Over, Here It Comes Again

        <humour> (BOHICA) An utterance of frustration by computer
        support personnel who anticipate being told (usually via
        phone) to do something that can't be done, by a boss who
        doesn't know his ass from deep center field about what he's
        asking his minions to do.

        (1995-09-20)

Benoit B. Mandelbrot

        {Benoit Mandelbrot}

Benoit Mandelbrot

        <person> /ben'wa man'dl-bro/ Benoit B. Mandelbrot.  The {IBM}
        scientist who wrote several original books on {fractals} and
        gave his name to the set he was discovered, the {Mandelbrot
        set} and coined the term "fractal" in 1975 from the Latin
        fractus or "to break".

        (1997-07-02)

BeOS

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

        (1996-10-05)

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

        (1990-07-01)

Berkeley FP

        <language> A version of {Backus}'s {FP} distributed with
        {4.2BSD} {Unix}.

        {(ftp://apple.com/ArchiveVol1/Unix_lang)}

        (1997-12-15)

Berkeley Internet Name Domain

        <networking> (BIND) An implementation of a {DNS} {server}
        developed and distributed by the {University of California at
        Berkeley}.

        Many {Internet} {hosts} run BIND, and it is the ancestor of
        many commercial implementations.

        (1997-12-15)

Berkeley Logo

        <language> A {Logo} {interpreter} by Brian Harvey
        <bh@cs.berkeley.edu>.  Berkeley Logo programs will run on
        {Unix}, {IBM PC} and {Macintosh}.  It doesn't do anything
        fancy about graphics and only allows one {turtle}.

        Version: 4.2, 4.3 "in the works" (1997-11-26).

        {MswLogo} is a {Microsoft Windows} {front end}.

        {(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}.

        (1997-11-26)

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

        <abuse> (Often abbreviated "BQS") Term used in a pejorative
        sense to refer to software that was apparently created by
        rather spaced-out hackers late at night to solve some unique
        problem.  It usually has nonexistent, incomplete, or incorrect
        documentation, has been tested on at least two examples, and
        core dumps when anyone else attempts to use it.  This term was
        frequently applied to early versions of the "dbx(1)" debugger.

        See also {Berzerkeley}.

        (1996-01-15)

Berkeley Software Design, Inc

        <company> (BSDI) A company that sells {BSD/OS}, a commercial
        version of {Berkeley Standard Distribution} {Unix},
        networking, and Internet technologies originally developed by
        the {Computer Systems Research Group} (CSRG) at the
        {University of California at Berkeley}.

        Leading CSRG computer scientists founded BSDI in 1991.  BSDI's
        BSD/OS represents over 20 years of development by the
        worldwide BSD technical community.  BSD technology is known
        worldwide for its powerful, flexible and portable architecture
        and advanced development environments.

        BSDI designs, develops, markets, and supports the {BSD/OS}
        {operating system}, {Internet} server software for {IBM PCs},
        and other products.  BSDI planned to release an Internet
        gateway product for {Novell} {IPX} networks in 1995.

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

        E-mail: <bsdi-info@bsdi.com>.

        Address: 5575 Tech Center Drive, #110, Colorado Springs, CO
        80918, USA.  Telephone: +1 (719) 593 9445.  Fax: +1 (719) 598
        4238.

        (1996-01-13)

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

        (1995-01-24)

Berkeley System Distribution

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

        (1994-11-23)

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

        (1995-02-23)

Berners-Lee, Tim

        {Tim Berners-Lee}

Bernoulli Box

        <storage> A high capacity storage device, {Iomega
        Corporation}'s first popular product, that spins a mylar disk
        over a read-write head using the {Bernoulli prinicple}.

        (1997-04-15)

Bernoulli principle

        (Or "air foil principle", after Swiss mathematician Daniel
        Bernoulli, 1700-1782) The law that pressure in a fluid
        decreases with the rate of flow.  It has been applied to a
        class of {hard disk} drives.

        See {Bernoulli Box}.

        (1997-04-15)

Bernstein condition

        <parallel> Processes cannot execute in parallel if one effects
        values used by the other.  Nor can they execute in parallel if
        any subsequent process uses data effected by both, i.e. whose
        value might depend on the order of execution.

        (1995-02-23)

Bertrand

        (Named after the British mathematician Bertrand Russell
        (1872-1970)).  Wm. Leler.  Rule-based specification language
        based on augmented term rewriting.  Used to implement
        constraint languages.  The user must explicitly specify the
        tree-search and the constraint propagation.

        {(ftp://nexus.yorku.ca/pub/scheme/scm/bevan.shar)}

        ["Constraint Programming Languages - Their Specification and
        Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7].

Bertrand Meyer

        The author of the {Eiffel} Language and many articles on
        {object-oriented} software techniques.

        (1995-03-01)

Bertrand Russell

        <person> (1872-1970) A British mathematician, the discoverer
        of {Russell's paradox}.

        (1995-03-27)

Berzerkeley

        <humour> /b*r-zer'klee/ (From "berserk", via the name of a
        now-deceased record label) A humorous distortion of "Berkeley"
        used especially to refer to the practices or products of the
        {BSD Unix} hackers.

        See {software bloat}, {Missed'em-five}, {Berkeley Quality
        Software}.

        Mainstream use of this term in reference to the cultural and
        political peculiarities of UC Berkeley as a whole has been
        reported from as far back as the 1960s.

        (1996-06-01)

Berzerkley

        {Berzerkeley}

best effort

        <networking> A classification of low priority network traffic,
        used especially the {Internet}.

        Different kinds of traffic have different priorities.
        {Videoconferencing} and other types of {real-time}
        communication, for example, require a certain minimum
        guaranteed {bandwidth} and {latency} and so must be given a
        high priority.  {Electronic mail}, on the other hand, can
        tolerate an arbitrarily long delay and is classified as a
        "best-effort" service.

        [Scientific American, Nov. 1994, pp. 83-84].

        (1995-04-04)

best first search

        <algorithm> A {graph} search {algorithm} which optimises
        {breadth first search} by ordering all current paths according
        to some {heuristic}.  The heuristic attempts to predict how
        close the end of a path is to a solution.  Paths which are
        judged to be closer to a solution are extended first.

        See also {beam search}, {hill climbing}.

        (1995-12-09)

Best Fit

        <algorithm> A {resource} allocation scheme (usually for
        {memory}).  Best Fit tries to determine the best place to put
        the new data.  The definition of 'best' may differ between
        implementations, but one example might be to try and minimise
        the wasted space at the end of the block being allocated -
        i.e. use the smallest space which is big enough.

        By minimising wasted space, more data can be allocated
        overall, at the expense of a more time-consuming allocation
        {routine}.

        Compare {First Fit}.

        (1997-06-02)

BETA

        Kristensen, Madsen <olmadsen@daimi.aau.dk>, Moller-Pedersen &
        Nygaard, 1983.  Object-oriented language with block structure,
        coroutines, concurrency, {strong typing}, part objects,
        separate objects and classless objects.  Central feature is a
        single abstraction mechanism called "patterns", a
        generalisation of classes, providing instantiation and
        hierarchical inheritance for all objects including procedures
        and processes.

        Mjolner Informatics ApS, Aarhus, implementations for Mac, Sun,
        HP, Apollo.

        E-mail: <info@mjolner.dk>.

        Mailing list: <usergroup@mjolner.dk>.

        ["Object-Oriented Programming in the BETA Programming
        Language", Ole Lehrmann et al, A-W June 1993, ISBN
        0-201-62430-3].

        (1995-10-31)

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

        <theory> A term from {lambda-calculus} for {beta reduction} or
        {beta abstraction}.

        (1999-01-15)

Betamaxed

        <jargon> When a technology is overtaken in the market by
        inferior but better marketed competition.  E.g. "Microsoft
        betamaxed Apple right out of the market".  The Betamex
        videotape standard lost to VHS.

        (1999-01-15)

beta reduction

        [{lambda-calculus}] The {application} of a {lambda
        abstraction} to an argument expression.  A copy of the body of
        the lambda abstraction is made and occurrences of the {bound
        variable} being replaced by the argument.  E.g.

                (\ x . x+1) 4  -->  4+1

        Beta reduction is the only kind of {reduction} in the {pure
        lambda-calculus}.  The opposite of beta reduction is {beta
        abstraction}.  These are the two kinds of {beta conversion}.

        See also {name capture}.

beta testing

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

        (1996-11-05)

beta version

        {beta testing}

Bezier

        <graphics> (After Frenchman Pierre Bzier from Regie Renault)
        A collection of formulae for describing curved lines ({Bezier
        curve}) and surfaces ({Bezier surface}), first used in 1972 to
        model automobile surfaces.

        Curves and surfaces are defined by a set of "control points"
        which can be moved interactively making Bezier curves and
        surfaces convenient for interactive graphic design.

        ["Principles of interactive computer graphics", William
        M. Newman, Graw-Hill].

        (1995-04-04)

Bezier curve

        <graphics> A type of curve defined by mathematical formulae,
        used in {computer graphics}.  A curve with coordinates P(u),
        where u varies from 0 at one end of the curve to 1 at the
        other, is defined by a set of n+1 "control points" (X(i),
        Y(i), Z(i)) for i = 0 to n.

                P(u) = Sum i=0..n [(X(i), Y(i), Z(i)) * B(i, n, u)]

                B(i, n, u) = C(n, i) * u^i * (1-u)^(n-i)

                C(n, i) = n!/i!/(n-i)!

        A Bezier curve (or surface) is defined by its control points,
        which makes it invariant under any {affine mapping}
        (translation, rotation, parallel projection), and thus even
        under a change in the axis system.  You need only to transform
        the control points and then compute the new curve.  The
        control polygon defined by the points is itself affine
        invariant.

        Bezier curves also have the variation-diminishing property.
        This makes them easier to split compared to other types of
        curve such as {Hermite} or {B-spline}.

        Other important properties are multiple values, global and
        local control, versatility, and order of continuity.

        [What do these properties mean?]

        (1996-06-12)

Bezier surface

        <graphics> A surface defined by mathematical formulae, used in
        {computer graphics}.  A surface P(u, v), where u and v vary
        orthogonally from 0 to 1 from one edge of the surface to the
        other, is defined by a set of (n+1)*(m+1) "control points"
        (X(i, j), Y(i, j), Z(i, j)) for i = 0 to n, j = 0 to m.

                P(u, v) = Sum i=0..n {Sum j=0..m [
                        (X(i, j), Y(i, j), Z(i, j))
                        * B(i, n, u) * B(j, m, v)]}

                B(i, n, u) = C(n, i) * u^i * (1-u)^(n-i)

                C(n, i) = n!/i!/(n-i)!

        Bezier surfaces are an extension of the idea of {Bezier
        curves}, and share many of their properties.

        (1996-06-12)

bf

        <networking> The {country code} for Burkina Faso.

        (1999-01-27)

BFI

        {brute force and ignorance}

bg

        <networking> The {country code} for Bulgaria.

        (1999-01-27)

BGP

        {Border Gateway Protocol}

bh

        <networking> The {country code} for Bahrain.

        (1999-01-27)

BHC Code

        {Bose-Chaudhuri-Hocquenghem Code}

bi

        <networking> The {country code} for Burundi.

        (1999-01-27)

bib

        {BibTeX}

bible

        <publication> The most detailed and authoritative reference
        for a particular language, {operating system} or other complex
        software system.  It is also used to denote one of a small
        number of such books such as {Knuth} and {K&R}.

        (1996-12-03)

BIBOP

        {Big bag of pages}

BibTeX

        <text, tool> A {Tex} extension package for bibliographic
        citations, distributed with {LaTeX}.  BibTeX uses a
        style-independent bibliography database (.bib file) to produce
        a list of sources, in a customisable style, from citations in
        a Latex document.  It also supports some other formats.

        BibTeX is a separate program from LaTeX.  LaTeX writes
        information about citations and which .bib files to use in a
        ".aux" file.  BibTeX reads this file and outputs a ".bbl" file
        containing LaTeX commands to produce the source list.  You
        must then run LaTeX again to incorporate the source list in
        your document.  In typeset documents, "BibTeX" is written in
        upper case, with the "IB" slightly smaller and with the "E" as
        a subscript.  BibTeX is described in the {LaTeX} book by
        Lamport.

BiCapitalisation

        The act said to have been performed on trademarks (such as
        {PostScript}, {NeXT}, {NeWS}, {VisiCalc}, {FrameMaker},
        {TK!solver}, {EasyWriter}) that have been raised above the
        ruck of common coinage by nonstandard capitalisation.  Too
        many {marketroid} types think this sort of thing is really
        cute, even the 2,317th time they do it.

        Compare {studlycaps}.

        (1995-02-23)

BiCMOS

        <hardware> A manufacturing process for semiconductor devices
        that combines {bipolar} and {CMOS} to give the best balance
        between available output current and power consumption.

        (1995-03-28)

bidirectional printing

        <hardware> A feature of a printer whose printer head can print
        both when moving left to right and when moving right to left.

        Also known as "{boustrophedonic}".

        (1995-04-13)

Bidouilleurs Sans Argent

        <body> (BSA, French for "Moneyless Hackers") An association
        which aim is to help computer users who can't afford to buy
        commercial software.  The main purpose of the association is
        the promotion of {free software}, and distribution of
        ex-commercial software.  This is clearly an answer to the
        repressive attitude of the "other" {BSA}.

        Among BSA members are {Richard Stallman}, creator of the {GNU}
        project.

        {Home (http://www.bsa.lu/)}.

        (1998-10-27)

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

        (1995-02-23)

BIFF

        /bif/ (Or "B1FF", from {Usenet}) The most famous {pseudo}, and
        the prototypical {newbie}.  Articles from BIFF are
        characterised by all uppercase letters sprinkled liberally
        with bangs, typos, "cute" misspellings (EVRY BUDY LUVS GOOD
        OLD BIFF CUZ HE'S A K00L DOOD AN HE RITES REEL AWESUM THINGZ
        IN CAPITULL LETTRS LIKE THIS!!!), use (and often misuse) of
        fragments of {chat} abbreviations, a long {sig block}
        (sometimes even a {doubled sig}), and unbounded naivete.  BIFF
        posts articles using his elder brother's VIC-20.  BIFF's
        location is a mystery, as his articles appear to come from a
        variety of sites.  However, {BITNET} seems to be the most
        frequent origin.  The theory that BIFF is a denizen of BITNET
        is supported by BIFF's (unfortunately invalid) {electronic
        mail address}: <BIFF@BIT.NET>.

        [1993: Now It Can Be Told!  My spies inform me that BIFF was
        originally created by Joe Talmadge <jat@cup.hp.com>, also the
        author of the infamous and much-plagiarised "Flamer's Bible".
        The BIFF filter he wrote was later passed to Richard Sexton,
        who posted BIFFisms much more widely.  Versions have since
        been posted for the amusement of the net at large. - ESR]

        (1997-09-22)

biff

        /bif/ To notify someone of incoming mail.  From the {BSD}
        utility "biff(1)", which was in turn named after a friendly
        golden Labrador who used to chase frisbees in the halls at UCB
        while {4.2BSD} was in development (it had a well-known habit
        of barking whenever the mailman came).  No relation to {BIFF}.

\big

        <text> Prefix of several {LaTeX} commands implying a larger
        symbol.  See the command without "big".  Often used to convert
        a {dyadic} operator into a function which operates on a set.
        E.g. \sqcup, \bigsqcup.

        (1995-02-03)

Big bag of pages

        (BIBOP) Where data objects are tagged with some kind of
        descriptor (giving their size or type for example) memory can
        be saved by storing objects with the same descriptor in one
        "page" of memory.  The most significant bits of an object's
        address are used as the BIBOP page number.  This is looked up
        in a BIBOP table to find the descriptor for all objects in
        that page.

        This idea is similar to the "zones" used in some {Lisp}
        systems (e.g. {LeLisp}).

        [David R. Hanson.  "A portable storage management system for
        the Icon programming language".  Software - Practise and
        Experience, 10:489-500 1980].

        (1994-11-29)

big blue

        {International Business Machines}

big-endian

        1. <data, architecture> A computer {architecture} in which,
        within a given multi-{byte} numeric representation, the most
        significant byte has the lowest address (the word is stored
        "big-end-first").

        Most processors, including the {IBM 370} family, the {PDP-10},
        the {Motorola} {microprocessor} families, and most of the
        various {RISC} designs current in mid-1993, are big-endian.

        See {-endian}.

        2. <networking, standard> A backward {electronic mail
        address}.  The world now follows the {Internet} {hostname}
        {standard} (see {FQDN}) and writes e-mail addresses starting
        with the name of the computer and ending up with the {country
        code} (e.g. 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 sites} required
        {ad-hockery} in their {mailers} to handle this.

        By July 1994 this parochial idiosyncracy was on the way out
        and mailers started to reject big-endian addresses.  By about
        1996, people would look at you strangely if you suggested such
        a bizarre thing might ever have existed.

        (1998-08-09)

Big Gray Wall

        <jargon> What faces a {VMS} user searching for documentation.
        A full VMS kit comes on a pallet, the documentation taking up
        around 15 feet of shelf space before the addition of layered
        products such as {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".

        (1995-03-07)

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 <Manuel.Serrano@inria.fr> 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/)}

        (1993-09-08)

bignum

        <programming> /big'nuhm/ (Originally from {MIT} {MacLISP}) A
        {multiple-precision} computer representation for very large
        integers.

        Most computer languages provide a type of data called
        "integer", but such computer integers are usually limited in
        size; usually they must be smaller than 2^31 (2,147,483,648)
        or (on a {bitty box}) 2^15 (32,768).  If you want to work with
        numbers larger than that, you have to use {floating-point}
        numbers, which are usually accurate to only six or seven
        decimal places.  Computer languages that provide bignums can
        perform exact calculations on very large numbers, such as
        1000! (the factorial of 1000, which is 1000 times 999 times
        998 times ... times 2 times 1).  For example, this value for
        1000! was computed by the {MacLISP} system using bignums:

        40238726007709377354370243392300398571937486421071
        46325437999104299385123986290205920442084869694048
        00479988610197196058631666872994808558901323829669
        94459099742450408707375991882362772718873251977950
        59509952761208749754624970436014182780946464962910
        56393887437886487337119181045825783647849977012476
        63288983595573543251318532395846307555740911426241
        74743493475534286465766116677973966688202912073791
        43853719588249808126867838374559731746136085379534
        52422158659320192809087829730843139284440328123155
        86110369768013573042161687476096758713483120254785
        89320767169132448426236131412508780208000261683151
        02734182797770478463586817016436502415369139828126
        48102130927612448963599287051149649754199093422215
        66832572080821333186116811553615836546984046708975
        60290095053761647584772842188967964624494516076535
        34081989013854424879849599533191017233555566021394
        50399736280750137837615307127761926849034352625200
        01588853514733161170210396817592151090778801939317
        81141945452572238655414610628921879602238389714760
        88506276862967146674697562911234082439208160153780
        88989396451826324367161676217916890977991190375403
        12746222899880051954444142820121873617459926429565
        81746628302955570299024324153181617210465832036786
        90611726015878352075151628422554026517048330422614
        39742869330616908979684825901254583271682264580665
        26769958652682272807075781391858178889652208164348
        34482599326604336766017699961283186078838615027946
        59551311565520360939881806121385586003014356945272
        24206344631797460594682573103790084024432438465657
        24501440282188525247093519062092902313649327349756
        55139587205596542287497740114133469627154228458623
        77387538230483865688976461927383814900140767310446
        64025989949022222176590433990188601856652648506179
        97023561938970178600408118897299183110211712298459
        01641921068884387121855646124960798722908519296819
        37238864261483965738229112312502418664935314397013
        74285319266498753372189406942814341185201580141233
        44828015051399694290153483077644569099073152433278
        28826986460278986432113908350621709500259738986355
        42771967428222487575867657523442202075736305694988
        25087968928162753848863396909959826280956121450994
        87170124451646126037902930912088908694202851064018
        21543994571568059418727489980942547421735824010636
        77404595741785160829230135358081840096996372524230
        56085590370062427124341690900415369010593398383577
        79394109700277534720000000000000000000000000000000
        00000000000000000000000000000000000000000000000000
        00000000000000000000000000000000000000000000000000
        00000000000000000000000000000000000000000000000000
        00000000000000000000000000000000000000000000000000
        000000000000000000.

        (1996-06-27)

bigot

        A person who is religiously attached to a particular computer,
        language, operating system, editor, or other tool (see
        {religious issues}).  Usually found with a specifier; thus,
        "Cray bigot", "ITS bigot", "APL bigot", "VMS bigot", "Berkeley
        bigot".  Real bigots can be distinguished from mere partisans
        or zealots by the fact that they refuse to learn alternatives
        even when the march of time and/or technology is threatening
        to obsolete the favoured tool.  It is truly said "You can tell
        a bigot, but you can't tell him much."  Compare {weenie}.

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

        <jargon, humour> The extremely large room with the blue
        ceiling and intensely bright light (during the day) or black
        ceiling with lots of tiny night-lights (during the night)
        found outside all computer installations.  "He can't come to
        the phone right now, he's somewhere out in the Big Room."

        (1996-03-04)

big win

        <jargon> An {MIT} term for a {Good Thing} or a lucky accident.

        (1996-03-06)

bijection

        <mathematics> A {function} is bijective or a bijection or a
        one-to-one correspondence if it is both {injective} (no two
        values map to the same value) and {surjective} (for every
        element of the {codomain} there is some element of the
        {domain} which maps to it).  I.e. there is exactly one element
        of the domain which maps to each element of the codomain.
        Only bijective functions have inverses f' where f(f'(x)) =
        f'(f(x)) = x.

        See also {injection}, {surjection}, {isomorphism}.

        (1999-08-29)

Bill Gates

        <person> William Henry Gates III, Chief Executive Officer of
        {Microsoft}, which he co-founded in 1975 with {Paul Allen}.
        In 1994 Gates is a billionaire, worth $9.35b and {Microsoft}
        is worth about $27b.  He was a {computer nerd} who dropped out
        of Harvard and one of the first programmers to oppose
        {software piracy} ("Open Letter to Hobbyists," Computer Notes,
        February 3, 1976).

        (1995-03-02)

Bill Joy

        {William Joy}

binaries

        {binary file}

binary

        1. <mathematics> {Base} two.  A number representation
        consisting of zeros and ones used by practically all computers
        because of its ease of implementation using digital
        electronics and {Boolean algebra}.

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

        3. <programming> A description of an {operator} which takes
        two {arguments}.  See also {unary}, {ternary}.

        (1998-07-29)

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

        <programming, standard> (BCS) The {ABI} of {88open}.

        (1997-07-03)

binary counter

        <electronics, hardware> A digital circuit which has a clock
        input and a number of count outputs which give the number of
        clock cycles.  The output may change either on rising or
        falling clock edges.  The circuit may also have a reset input
        which sets all outputs to zero when asserted.  The counter may
        be either a {synchronous counter} or a {ripple counter}.

        (1997-07-03)

binary 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

        <storage, operating system> 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.

        (1995-12-14)

binary large object

        <database> (BLOB) A large block of data stored in a
        {database}, such as an {image} or {sound} file.  A BLOB has no
        structure which can be interpreted by the {database management
        system} but is known only by its size and location.

        (1997-11-04)

binary search

        <algorithm> A search {algorithm} which repeatedly divides an
        ordered {search space} in half according to how the required
        (key) value compares with the middle element.

        The following pseudo-{C} routine performs a binary search
        return the index of the element of vector "thing[first..last]"
        equal to "target":

         if (target < thing[first] || target > thing[last])
           return NOT_FOUND;
         while (first < last)
         {
           mid = (first+last)/2;        /* truncate to integer */
           if (target < thing[mid])
             last = mid;
           else if (target > thing[mid])
             first = mid+1;
           else
             return mid;
         }
         if (target == thing[last])
           return last;
         return NOT_FOUND;

        (1995-04-10)

Binary Synchronous Transmission

        <protocol> (Bisynch) An {IBM} link {protocol}, developed in
        the 1960 and popular in the 1970s and 1980s.

        Binary Synchronous Transmission has been largely replaced in
        IBM environments with {SDLC}.  Bisync was developed for
        {batch} communications between a {System 360} computer and the
        IBM 2780 and 3780 {Remote Job Entry} (RJE) {terminals}.  It
        supports RJE and on-line terminals in the {CICS}/{VSE}
        environment.  It operates with {EBCDIC} or {ASCII} {character
        sets}.  It requires that every message be acknowledged ({ACK})
        or negatively acknowledged ({NACK}) so it has high
        transmission overhead.  It is typically character oriented and
        {half-duplex}, although some of the bisync protocol flavours
        or dialects support binary transmission and {full-duplex}
        operation.

        (1997-01-07)

binary tree

        (btree) A {tree} in which each node has at most two successors
        or child nodes.  In {Haskell} this could be represented as

                data BTree a = NilTree
                             | Node a (BTree a) (BTree a)

        See also {balanced tree}.

        (1994-11-29)

BIND

        {Berkeley Internet Name Domain}

bindery

        <networking> A {Novell Netware} database that contains
        definitions for entities such as users, groups, and
        {workgroups}.  The bindery allows the network supervisor to
        design an organised and secure operating environment based on
        the individual requirements of each of these entities.

        The bindery has three components: objects, properties, and
        property data sets.  Objects represent any physical or logical
        entity, including users, user groups, file servers.
        Properties are characteristics of each object (e.g.
        passwords, account restrictions, {internetwork addresses}).
        Property data sets are the values assigned to an entity's
        bindery properties.

        [Netware Version 3.11 "Concepts" documentation (a glossary of
        Netware-related terms)].

        (1996-03-07)

binding handle

        <networking> An identifier representing the connection between
        a {client} and {server}.  An association between client/server
        end-points and {protocols}.

        (1997-03-18)

binding-time analysis

        <compiler> An analysis to identify sub-expressions which can
        be evaluated at {compile-time} or where versions of a function
        can be generated and called which are specialised to certain
        values of one or more arguments.

        See {partial evaluation}.

        (1995-03-28)

BinHex

        <file format> A {Macintosh} format for representing a {binary
        file} using only {printable 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?]

        (1994-11-30)

Binhex 4.0

        <file format> A seven bit wide representation of a {Macintosh}
        file with {CRC} error checking.  Binhex 4.0 files are designed
        for communication of Mac files over long distance, possibly
        noisy, seven bit wide paths.

        [Difference from other binhex formats?]

        (1996-09-17)

BinProlog

        <language> Probably the fastest freely available {C}-emulated
        {Prolog}.  BinProlog features:

        logical and permanent {global 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 <tarau@info.umoncton.ca>.

        (1995-04-04)

BIOR

        An early system on {UNIVAC} I or II.

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

        (1995-04-01)

BIOS

        {Basic Input/Output System}

BIP

        An incorrect singular of {BIPS}.  One billion instructions per
        second is 1 BIPS, not 1 BIP.

bipartite graph

        See {complete graph}.

bipolar

        1. <electronics> See {bipolar transistor}.

        2. <communications> In digital transmission, an electrical
        line signalling method where the mark value alternates between
        positive and negative polarities.

        See also {AMI}.

        (1995-03-02)

bipolar transistor

        <electronics> A {transistor} made from a sandwich of n- and
        p-type {semiconductor} material: either npn or pnp.  The
        middle section is known as the "base" and the other two as the
        "collector" and "emitter".  When used as an amplifying
        element, the base to emitter junction is in a "forward-biased"
        (conducting) condition, and the base to collector junction is
        "reverse-biased" or non-conducting.  Small changes in the base
        to emitter current (the input signal) cause either {holes}
        (for pnp devices) or free {electrons} (for npn) to enter the
        base from the emitter.  The attracting voltage of the
        collector causes the majority of these charges to cross into
        and be collected by the collector, resulting in amplification.

        Contrast {field effect transistor}.

        (1995-10-04)

BIPS

        Billion (10^9) instructions per second.  Same as {GIPS}.

Bird-Meertens Formalism

        <theory, programming> (BMF) (Or "Squiggol") A calculus for
        derivation of {functional 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].

        (1995-05-01)

Birds Of a Feather

        (BOF) (From the saying "Birds of a feather flock together") An
        informal discussion group, scheduled on a conference program
        or formed ad hoc, to consider a specific issue or subject.  It
        is not clear where or when this term originated, but it is now
        associated with the {USENIX} conferences for {Unix} techies
        and was already established there by 1984.  It was used
        earlier than that at {DECUS} conferences and is reported to
        have been common at {SHARE} meetings as far back as the early
        1960s.

        (1994-10-11)

BISDN

        Broadband {Integrated Services Digital Network}.

Bison

        {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:
        <bug-gnu-utils@prep.ai.mit.edu>.

        {Bison++} is a version which produces {C++} output.

        (1993-09-14)

Bison++

        GNU's Yacc parser generator retargeted to C++ by Alain
        Coetmeur <coetmeur@icdc.fr>.  Version 1.04.

        {(ftp://iecc.com/pub/file/bison++.tar.gz)}.
        {(ftp://iecc.com/pub/file/misc++.tar.gz)}.
        {(ftp://psuvax1.cs.psu.edu/pub/src/gnu/bison++-1.04.tar.Z)}.

        (1993-07-08)

BIST

        {Built-in Self Test}

bisync

        {Binary Synchronous Transmission}

bit

        <unit> (b) binary digit.

        The unit of information; the amount of information obtained by
        asking a yes-or-no question; a computational quantity that can
        take on one of two values, such as 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}.

        (1996-11-03)

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

        <jargon> 1. (Or "{write-only memory}", "WOM") The universal
        data sink (originally, the mythical receptacle used to catch
        bits when they fall off the end of a {register} during a
        {shift} instruction).  Discarded, lost, or destroyed data is
        said to have "gone to the bit bucket".  On {Unix}, often used
        for {/dev/null}.  Sometimes amplified as "the Great Bit Bucket
        in the Sky".

        2. The place where all lost mail and news messages eventually
        go.  The selection is performed according to {Finagle's Law};
        important mail is much more likely to end up in the bit bucket
        than junk mail, which has an almost 100% probability of
        getting delivered.  Routing to the bit bucket is automatically
        performed by mail-transfer agents, news systems, and the lower
        layers of the network.

        3. The ideal location for all unwanted mail responses: "Flames
        about this article to the bit bucket."  Such a request is
        guaranteed to overflow one's mailbox with flames.

        4. Excuse for all mail that has not been sent.  "I mailed you
        those figures last week; they must have landed in the bit
        bucket."  Compare {black hole}.

        This term is used purely in jest.  It is based on the fanciful
        notion that bits are objects that are not destroyed but only
        misplaced.  This appears to have been a mutation of an earlier
        term "bit box", about which the same legend was current;
        old-time hackers also report that trainees used to be told
        that when the CPU stored bits into memory it was actually
        pulling them "out of the bit box".

        Another variant of this legend has it that, as a consequence
        of the "parity preservation law", the number of 1 bits that go
        to the bit bucket must equal the number of 0 bits.  Any
        imbalance results in bits filling up the bit bucket.  A
        qualified computer technician can empty a full bit bucket as
        part of scheduled maintenance.

        In contrast, a "{chad box}" is a real container used to catch
        {chad}.  This may be related to the origin of the term "bit
        bucket" [Comments ?].

        (1996-11-20)

bit decay

        {bit rot}

bit diddling

        {bit bashing}

bite

        <spelling> It's spelled "{byte}" to avoid confusion with
        "{bit}".

        (1996-12-13)

bitmap

        <graphics, file format> A data file or structure which
        corresponds {bit} for bit with an {image} displayed on a
        screen, probably in the same format as it would be stored in
        the display's {video memory} or maybe as a {device independent
        bitmap}.  A bitmap is characterised by the width and height of
        the image in {pixels} and the number of bits per pixel which
        determines the number of shades of grey or colours it can
        represent.  A bitmap representing a coloured image (a
        "{pixmap}") will usually have pixels with between one and
        eight bits for each of the red, green, and blue components,
        though other colour encodings are also used.  The green
        component sometimes has more bits that the other two to cater
        for the human eye's greater discrimination in this component.

        See also {vector graphics}, {image formats}.

        (1996-09-21)

bitmap display

        <hardware> A computer output device where each {pixel}
        displayed on the {monitor} screen corresponds directly to one
        or more {bits} in the computer's {video memory}.  Such a
        display can be updated extremely rapidly since changing a
        pixel involves only a single processor write to memory
        compared with a {terminal} or {VDU} connected via a serial
        line where the speed of the serial line limits the speed at
        which the display can be changed.

        Most modern {personal computers} and {workstations} have
        bitmap displays, allowing the efficient use of {graphical user
        interfaces}, interactive graphics and a choice of on-screen
        {fonts}.  Some more expensive systems still delegate graphics
        operations to dedicated hardware such as {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?]

        (1995-02-16)

bitmap font

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

        (1995-02-16)

bitmapped display

        {bitmap display}

bit mask

        <programming> A pattern of {binary} values which is combined
        with some value using {bitwise} AND with the result that bits
        in the value in positions where the mask is zero are also set
        to zero.  For example, if, in {C}, we want to test if bits 0
        or 2 of x are set, we can write

                int mask = 5;   /* binary 101 */

                if (x & mask) ...

        A bit mask might also be used to set certain bits using
        bitwise OR, or to invert them using bitwise {exclusive OR}.

        (1995-05-12)

BITNET

        <networking> /bit'net/ (Because It's Time NETwork) An academic
        and research computer network connecting approximately 2500
        computers.  BITNET provides interactive, {electronic mail} and
        file transfer services, using a {store and forward}
        {protocol}, based on {IBM} {Network Job Entry} protocols.

        Bitnet-II encapsulates the Bitnet protocol within {IP}
        {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}.

        (1994-11-29)

bitonal image

        <graphics> An {image} consisting only of a foreground colour
        and a background colour.

        Compare {monochrome}.

        (1998-03-14)

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.

        (1995-02-20)

bit pattern

        <data> 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}.  A {bit string} is similar but
        suggests an arbitrary, as opposed to predetermined, length.

        (1998-09-27)

bit plane

        <graphics> (Or "bitplane") The memory in a graphic display
        device which holds a complete one-bit-per-{pixel} image.
        Several bit planes may be used in conjunction to give more
        bits per pixel or to overlay several images or mask one with
        another.

        "Bit plane" may be used as a synonym for "{bitmap}", though
        the latter suggests the data itself rather than the memory and
        also suggests a graphics file format.

        (1997-03-16)

bit rot

        <jargon> A hypothetical disease the existence of which has
        been deduced from the observation that unused programs or
        features will often stop working after sufficient time has
        passed, even if "nothing has changed".  The theory explains
        that bits decay as if they were radioactive.  As time passes,
        the contents of a file or the code in a program will become
        increasingly garbled.

        People with a physics background tend to prefer the variant
        "bit decay" for the analogy with particle decay.

        There actually are physical processes that produce such
        effects (alpha particles generated by trace radionuclides in
        ceramic chip packages, for example, can change the contents of
        a computer memory unpredictably, and various kinds of subtle
        media failures can corrupt files in mass storage), but they
        are quite rare (and computers are built with {error detection}
        circuitry to compensate for them).  The notion long favoured
        among hackers that {cosmic rays} are among the causes of such
        events turns out to be a myth.

        Bit rot is the notional cause of {software rot}.

        See also {computron}, {quantum bogodynamics}.

        (1998-03-15)

bit slice

        <architecture> A technique for constructing a {processor} from
        modules, each of which processes one {bit-field} or "slice" of
        an {operand}.  Bit slice processors usually consist of an
        {ALU} of 1, 2, 4 or 8 bits and control lines (including
        {carry} or {overflow} signals usually internal to the {CPU}).
        For example, two 4-bit ALUs could be arranged side by side,
        with control lines between them, to form an 8-bit ALU.  A
        {sequencer} executes a program to provide data and control
        signals.

        The {AMD Am2901} is an example.

        (1994-11-15)

bits per inch

        <unit> (BPI) A measure of the recording density of a {magnetic
        tape} or {disk}.

        (1995-04-13)

bits per pixel

        <hardware, graphics> (bpp) The number of {bits} of information
        stored per {pixel} of an {image} or displayed by a {graphics
        adapter}.  The more bits there are, the more colours can be
        represented, but the more memory is required to store or
        display the image.

        A colour can be described by the intensities of red, green and
        blue ({RGB}) components.  Allowing 8 {bits} (1 {byte}) per
        component (24 bits per pixel) gives 256 levels for each
        component and over 16 million different colours - more than
        the human eye can distinguish.  {Microsoft Windows} [and
        others?] calls this {truecolour}.  An image of 1024x768 with
        24 bpp requires over 2 MB of memory.

        "High colour" uses 16 bpp (or 15 bpp), 5 bits for blue, 5 bits
        for red and 6 bits for green.  This reduced colour precision
        gives a slight loss of image quality at a 1/3 saving on
        memory.

        Standard {VGA} uses a {palette} of 16 colours (4 bpp), each
        colour in the palette is 24 bit.  Standard {SVGA} uses a
        {palette} of 256 colours (8 bpp).

        Some graphics hardware and software support 32-bit colour
        depths, including an 8-bit "{alpha channel}" for transparency
        effects.

        (1999-08-01)

bits per second

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

        (1996-12-08)

bit string

        <programming, data> An ordered sequence of {bit}s.  This is
        very similar to a {bit pattern} except that the term "string"
        suggests an arbitrary length sequence as opposed to a
        pre-determined length "pattern".

bit stuffing

        <protocol> A {protocol} which guarantees the receiver of
        {synchronous} data can recover the sender's clock.  When the
        data stream sent contains a large number of adjacent bits
        which cause no transition of the signal, the receiver cannot
        adjust its clock to maintain proper synchronised reception.
        To eliminate the possibility of such a pathological case, when
        a preset number of transitionless bits have been transmitted,
        a bit which does cause a transition is "stuffed" (transmitted)
        by the sender.  The receiver follows the same protocol and
        removes the stuffed bit after the specified number of
        transitionless bits, but can use the stuffed bit to recover
        the sender's clock.

        The advantage of bit stuffing is that only a bit (not a
        {byte}) is inserted in the data stream, and that only when the
        content of the data stream fails to provide a timing signal to
        the receiver.  Thus very nearly 100% of the bits transported
        are useful data.  In contrast, {asynchronous} transmission of
        data "throws away" a start bit and one or more stop bits for
        each data byte sent.

        (1996-04-23)

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

        (1994-11-29)

bitwise

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

        (1995-05-12)

bitwise complement

        The bitwise complement of a {bit field} is a bit field of the
        same length but with each zero changed to a one and vice
        versa.  This is the same as the {ones complement} of a binary
        integer.

        (1994-11-14)

bixie

        /bik'see/ Variant {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.

        (1994-11-29)

bj

        <networking> The {country code} for Benin.

        (1999-01-27)

Bjarne Stroustrup

        The father of {C++} and author of the C++ {bible}.

        E-mail: <bs@alice.att.com>.

        ["The C++ Programming Language", Bjarne Stroustrup,
        Addison-Wesley, 1986].

        (1995-02-14)

BJC4000

        A colour {bubble jet} printer from {Canon}.  Released in
        September 1994.  It features 720 x 360 dots per inch in black
        and white mode and 360 x 360 in colour.  It has two
        cartridges: one for black and one for the three primary
        colours so it prints true black when printing in colour.

        (1994-11-29)

black art

        A collection of arcane, unpublished, and (by implication)
        mostly ad-hoc techniques developed for a particular
        application or systems area (compare {black magic}).  VLSI
        design and compiler code optimisation were (in their
        beginnings) considered classic examples of black art; as
        theory developed they became {deep magic}, and once standard
        textbooks had been written, became merely {heavy wizardry}.
        The huge proliferation of formal and informal channels for
        spreading around new computer-related technologies during the
        last twenty years has made both the term "black art" and what
        it describes less common than formerly.  See also {voodoo
        programming}.

black box

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

        (1997-07-03)

black-box testing

        {functional testing}

Black Data Processing Associates

        <body> (BDPA) A non-profit professional association, founded
        in 1975 to promote positive influence in the {information
        technology} (IT) industry and how it affects African
        Americans.  The BDPA facilitates African American professional
        participation in local and national activities keeping up with
        developing IT trends.

        BDPA offers a forum for exchanging information and ideas about
        the computer industry.  It provides numerous networking
        opportunities through monthly program meetings, seminars, and
        workshops and the annual national conference.  Membership is
        open to anyone interested in IT.

        The Foundation provides scholarships to students who compete
        in an annual {Visual Basic} competition.

        {Home (http://www.bdpa.org/conf96)}

        E-mail: <nbdpa@ix.netcom.com>.

        Telephone: Ms. Pat Drumming, +1 (800) 727-BDPA.

        (1996-04-07)

black hole

        1. An expression which depends on its own value or a technique
        to detect such expressions.  In graph reduction, when the
        reduction of an expression is begun, the root of the
        expression can be overwritten with a black hole.  If the
        expression depends on its own value, e.g.

                x = x + 1

        then it will try to evaluate the black hole which will usually
        print an error message and abort the program.  A secondary
        effect is that, once the root of the expression has been
        black-holed, parts of the expression which are no longer
        required may be freed for garbage collection.

        Without black holes the usual result of attempting to evaluate
        an expression which depends on itself would be a stack
        overflow.  If the expression is evaluated successfully then
        the black hole will be updated with the value.

        Expressions such as

                ones = 1 : ones

        are not black holes because the list constructor, : is lazy so
        the reference to ones is not evaluated when evaluating ones to
        WHNF.

        2. Where an {electronic mail} message or {news} aritcle has
        gone if it disappears mysteriously between its origin and
        destination sites without returning a {bounce message}.
        Compare {bit bucket}.

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 <mehrotra@csrd.uiuc.edu> et al, J
        Parallel Comp 5(3):339-361 (Nov 1987)].

BLAZE 2

        An {object-oriented} successor to {BLAZE}.

        ["Concurrent Object Access in BLAZE 2", P. Mehrotra et al,
        SIGPLAN Notices 24(4):40-42 (Apr 1989)].

bleam

        <jargon> To transmit or send data.

        "Bleam that binary to me in an e-mail".

        [Origin?  Used where?]

        (1997-05-14)

bleeper

        {pager}

bletcherous

        /blech'*-r*s/ Disgusting in design or function; aesthetically
        unappealing.  This word is seldom used of people.  "This
        keyboard is bletcherous!" (Perhaps the keys don't work very
        well, or are misplaced.)  The term {bletcherous} applies to
        the esthetics of the thing so described; similarly for
        cretinous.  By contrast, something that is "losing" or
        "bagbiting" may be failing to meet objective criteria.

Bletchley Park

        <body, history> A country house and grounds some 50 miles
        North of London, England, where highly secret work deciphering
        intercepted German military radio messages was carried out
        during World War Two.  Thousands of people were working there
        at the end of the war, including a number of early computer
        pioneers such as {Alan Turing}.

        The nature and scale of the work has only emerged recently,
        with total secrecy having been observed by all the people
        involved.  Throughout the war, Bletchley Park produced highly
        important strategic and tactical intelligence used by the
        Allies, (Churchill's "golden eggs"), and it has been claimed
        that the war in Europe was probably shortened by two years as
        a result.

        An exhibition of wartime code-breaking memorabilia, including
        an entire working {Colossus}, restored by Tony Sale, can be
        seen at Bletchley Park on alternate weekends.

        The {Computer Conservation Society} (CCS), a specialist group
        of the {British Computer Society} runs a museum on the site
        that includes a working {Elliot} {mainframe} computer and many
        early {minicomputers} and {microcomputers}.  The CCS hope to
        have substantial facilities for storage and restoration of old
        artifacts, as well as archive, library and research
        facilities.

        Telephone: Bletchley Park Trust office +44 (908) 640 404
        (office hours and open weekends).

        (1998-12-18)

Blind Carbon Copy

        <messaging> (BCC) An {electronic mail} {header} which lists
        addresses to which a message should be sent, but which will
        not be seen by the recipients.

        Bcc is defined in {RFC 822} and supported by most e-mail
        systems.  A normal, non-blind "CC" header would be visible to
        all recipients, thus allowing them to reply to each other as
        well as to the sender.  According to RFC 822, the addresses
        listed in a BCC header are not included in the copies of the
        message sent to the recipients.  RFC 822 says BCC addresses
        may appear in the copy sent to "BCC" recipients themselves
        (though this would be unusual).

        (1998-03-14)

B-LINE

        An early {CAD} language.

        ["B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall
        JCC 33 1968].

        (1994-11-17)

blinkenlights

        /blink'*n-li:tz/ Front-panel diagnostic lights on a computer,
        especially a {dinosaur}.  Derives from the last word of the
        famous blackletter-Gothic sign in mangled pseudo-German that
        once graced about half the computer rooms in the
        English-speaking world.  One version ran in its entirety as
        follows:

                        ACHTUNG!  ALLES LOOKENSPEEPERS!

          Das computermachine ist nicht fuer gefingerpoken und
          mittengrabben.  Ist easy schnappen der springenwerk,
          blowenfusen und poppencorken mit spitzensparken.  Ist nicht
          fuer gewerken bei das dumpkopfen.  Das rubbernecken
          sichtseeren keepen das cotten-pickenen hans in das pockets
          muss; relaxen und watchen das blinkenlichten.

        This silliness dates back at least as far as 1959 at Stanford
        University and had already gone international by the early
        1960s, when it was reported at London University's ATLAS
        computing site.  There are several variants of it in
        circulation, some of which actually do end with the word
        "blinkenlights".

        In an amusing example of turnabout-is-fair-play, German
        hackers have developed their own versions of the blinkenlights
        poster in fractured English, one of which is reproduced here:

                                 ATTENTION

          This room is fullfilled mit special electronische
          equippment.  Fingergrabbing and pressing the cnoeppkes from
          the computers is allowed for die experts only!  So all the
          "lefthanders" stay away and do not disturben the
          brainstorming von here working intelligencies.  Otherwise
          you will be out thrown and kicked anderswhere!  Also: please
          keep still and only watchen astaunished the blinkenlights.

        See also {geef}.

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

        (1994-11-16)

blitter

        <hardware, graphics> /blit'r/ (Or "{raster blaster}").  A
        special-purpose {integrated circuit} or hardware system built
        to perform {blit} (or "{bit bang}") operations, especially
        used for fast implementation of {bit-mapped} graphics.

        The {Commodore} {Amiga} and a few other {microcomputers} have
        these, but in 1991 the trend is away from them (however, see
        {cycle of reincarnation}).

        (1996-04-30)

blivet

        /bliv'*t/ [allegedly from a World War II military term meaning
        "ten pounds of manure in a five-pound bag"] 1. An intractable
        problem.

        2. A crucial piece of hardware that can't be fixed or replaced
        if it breaks.

        3. A tool that has been hacked over by so many incompetent
        programmers that it has become an unmaintainable tissue of
        hacks.

        4. An out-of-control but unkillable development effort.

        5. An embarrassing bug that pops up during a customer demo.

        6. In the subjargon of computer security specialists, a
        denial-of-service attack performed by hogging limited
        resources that have no access controls (for example, shared
        spool space on a multi-user system).

        This term has other meanings in other technical cultures;
        among experimental physicists and hardware engineers of
        various kinds it seems to mean any random object of unknown
        purpose (similar to hackish use of {frob}).  It has also been
        used to describe an amusing trick-the-eye drawing resembling a
        three-pronged fork that appears to depict a three-dimensional
        object until one realises that the parts fit together in an
        impossible way.

bloat

        {software bloat}

bloatware

        <jargon, abuse> {Software} suffering from {software bloat}.

        (1995-10-14)

BLOB

        1. {binary large object}.

        2. <architecture> {blitter object}.

block

        1. <unit> A unit of data or memory, often, but not
        exclusively, on a disk.

        Compare {record}, {sector}.

        2. <operating system> To delay or sit idle while waiting for
        something.

        Compare {busy-wait}.

blocked records

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

        (1995-04-13)

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.

        (1994-11-29)

blow away

        <operating system, jargon> To remove (files and directories)
        from permanent storage, generally by accident.  "He
        reformatted the wrong partition and blew away last night's
        netnews".

        Compare: {nuke}.

        (1996-01-05)

blowing your buffer

        <jargon> Losing your train of thought.  A reference to {buffer
        overflow}.

        (1999-01-15)

blow out

        <jargon> (Probably from mining and tunnelling jargon) Of
        {software}, to fail spectacularly; almost as serious as {crash
        and burn}.

        See {blow past}, {blow up}, {die horribly}.

        (1994-11-29)

blow past

        To {blow out} despite a safeguard.  "The server blew past the
        5K reserve buffer."

        (1994-11-29)

blow up

        1. Of a scientific computation: to become unstable.  It
        suggests that the computation is diverging so rapidly that it
        will soon overflow or at least go {nonlinear}.

        2. {blow out}.

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. <publication> Informal name for one of the four standard
        references on the page-layout and graphics-control language
        {PostScript}.  The other three official guides are known as
        the {Green Book}, the {Red Book}, and the {White Book}.

        ["PostScript Language Tutorial and Cookbook", Adobe Systems,
        Addison-Wesley 1985, (ISBN 0-201-10179-3)].

        2. <publication> Informal name for one of the three standard
        references on Smalltalk.  This book also has green and red
        siblings.

        ["Smalltalk-80: The Language and its Implementation", David
        Robson, Addison-Wesley 1983, (ISBN 0-201-11371-63)].

        3. <publication> Any of the 1988 standards issued by the
        {ITU-T}'s ninth plenary assembly.  These include, among other
        things, the {X.400} {electronic mail} specification and the
        Group 1 through 4 fax standards.

        See also {book titles}.

        (1995-10-12)

Blue Box

        <operating system> The complete implementation of the {Mac OS}
        run-time environment on the more modern {Rhapsody} operating
        system.  {Blue Box} is not an {emulation} layer; at any given
        time it will be based on the same source code and ROM image as
        the current version of Mac OS and will thus incorporate future
        Mac OS improvements.

        (1997-10-15)

Blue 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 Screen of Death

        <humour> (BSOD) The infamous white-on-blue text screen which
        appears when {Microsoft Windows} crashes.  BSOD is mostly seen
        on the 16-bit systems such as {Windows 3.1}, but also on
        {Windows 95} and apparently even under {Windows NT 4}.  It is
        most likely to be caused by a {GPF}, although Windows 95 can
        do it if you've removed a required {CD-ROM} from the drive.
        It is often impossible to recover cleanly from a BSOD.

        The acronym BSOD is sometimes used as a verb, e.g. "{Windoze}
        just keeps BSODing on me today".

        (1998-09-08)

Blue Screen of Life

        <operating system> (BSOL, by analogy with "{Blue Screen of
        Death}") The opening screen of {Microsoft} {Windows NT}.

        This screen shows the {file system} loading, and any problems
        such as conversions from {FAT} to {NTFS} or a scan of a {hard
        drive}.

        The Blue Screen of Life occurs in one way, as opposed to the
        {Blue Screen of Death}, which can occur in many different ways
        and times.

        [Is this term ever used in connection with {Windows 3.x} or
        {Windows 9x}?]

        (1999-04-18)

Blue Sky Software

        <company> 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.
        (1997-01-19)

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

        (1994-11-29)

blurgle

        /bler'gl/ [Great Britain] Spoken {metasyntactic variable}, to
        indicate some text that is obvious from context, or which is
        already known.  If several words are to be replaced, blurgle
        may well be doubled or trebled.  "To look for something in
        several files use "{grep} string blurgle blurgle"."  In each
        case, "blurgle blurgle" would be understood to be replaced by
        the file you wished to search.  Compare {mumble}.

bm

        <networking> The {country code} for Bermuda.

        (1999-01-27)

BMAN

        {Broadband Metropolitan Area Network}

BMASF

        Basic Module Algebra Specification Language?  "Design of a
        Specification Language by Abstract Syntax Engineering",
        J.C.M. Baeten et al, in LNCS 490, pp.363-394.

BMDP

        <language> BioMeDical Package.

        A statistical language developed at {UCB} in 1961, first
        implemented in {FORTRAN} for the {IBM 7090}.

        (1995-03-13)

B-Method

        <programming, tool> 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.

        (1995-03-13)

BMF

        {Bird-Meertens Formalism}

BMP

        {Basic Multilingual Plane}

bmp

        <file format, graphics> {Microsoft Windows} {Bitmap} format.
        Bmp files may use {run-length encoding}.

        This is the only graphics format where {compression} actually
        enlarges the file.  The format is widely used nonetheless.

        [Format?]

        (1998-03-14)

BMWF

        <body> The Austrian, German and Swiss(?) Ministries of
        Science.

        [Expansion?]

        (1998-12-09)

bn

        <networking> The {country code} for Brunei Darussalam.

        (1999-01-27)

BNC

        <hardware> A connector for {coaxial cable} such as that used
        for some video connections and {RG58} "{cheapernet}"
        connections.  A BNC connector has a bayonet-type shell with
        two small knobs on the female connector which lock into spiral
        slots in the male connector when it is twisted on.

        Different sources expand BNC as Bayonet Navy Connector,
        British Naval Connector, Bayonet Neill Concelman, or Bayonet
        Nut Connection.

        (1995-09-18)

BNF

        {Backus-Naur Form}.  Originally Backus Normal Form.

BNR Pascal

        ["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp
        17(10):741-755 (Oct 1987)].

        (1994-12-21)

BNR Prolog

        A {constraint logic} language.

        [Details?]

        (1994-12-21)

bo

        <networking> The {country code} for Bolivia.

        (1999-01-27)

boa

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

Bobo the Webmonkey

        <World-Wide Web> What {B1FF} was to {BITNET} users, Bobo the
        Webmonkey is to {webmonkeys} - the mythical prototype of
        incompetent web designers everywhere.  In fact, Bobo may be
        what B1FF became when he grew up.

        Bobo knows about {HTML} only what he has learned from viewing
        the source of other people's Web pages.

        Bobo doesn't know what a {MIME type} is, even though someone
        gave him a hardcopy of the {FOLDOC} entry for it.

        Bobo may have used an HTML code validator
        {(http://validator.w3.org/)} before, but isn't sure.

        Bobo doesn't know what the difference between {GIF} and {JPEG}
        is.  He thinks {PNG} is a foreign country.

        All the pages Bobo has designed say "Welcome to [organisation]
        online!" at the top, and say "click here!" at least three
        times per page.

        Bobo has used {Photoshop} before; he doesn't understand why
        people keep asking if he's ever been tested for
        color-blindness.

        Bobo never got that "its" / "it's" distinction real clear, as
        you can tell from his pages.

        Bobo likes <BLINK>.

        (1998-04-04)

BOCS

        Berard Object and Class Specifier, an Object-oriented CASE
        tool from Berard Software Engineering.

Boehm B.

        Proposed the COCOMO technique for evaluating the cost of a
        software project.

BOEING

        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

        <humour> /boh-gom'-*t-er/ A notional instrument for measuring
        {bogosity}.  Compare the "wankometer" described in the {wank}
        entry; see also {bogus}.

        (1999-06-10)

BogoMips

        <unit> (From "bogus", "{MIPS}") The timing unit of the {Linux}
        {kernel}.

        A BogoMips is an unscientific measurement of {processor} speed
        made by the {Linux} {kernel} when it {boots}, to calibrate an
        internal {busy-loop}.

        {BogoMips MiniHowto
        (http://metalab.unc.edu/LDP/HOWTO/mini/BogoMips.html)}.

        (1999-05-06)

bogon

        /boh'gon/ [by analogy with proton/electron/neutron, but
        doubtless reinforced after 1980 by the similarity to Douglas
        Adams's "Vogons"] 1. The elementary particle of bogosity (see
        {quantum bogodynamics}).  For instance, "the Ethernet is
        emitting bogons again" means that it is broken or acting in an
        erratic or bogus fashion.

        2. A query {packet} sent from a {TCP/IP} {domain resolver} to
        a root server, having the reply bit set instead of the query
        bit.

        3. Any bogus or incorrectly formed packet sent on a network.

        4. A person who is bogus or who says bogus things.  This was
        historically the original usage, but has been overtaken by its
        derivative senses.  See also {bogosity}, {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

        <humour> /bo-hee-ka/ {Bend Over, Here It Comes
        Again}.

Bohr bug

        <jargon, programming> /bohr buhg/ (From Quantum physics) A
        repeatable {bug}; one that manifests reliably under a possibly
        unknown but well-defined set of conditions.

        Compare {heisenbug}.  See also {mandelbug}, {schroedinbug}.

        (1995-02-28)

boink

        /boynk/ [{Usenet}: variously ascribed to the TV series
        "Cheers" "Moonlighting", and "Soap"] 1. To have sex with;
        compare {bounce}. (This is mainstream slang.) In Commonwealth
        hackish the variant "bonk" is more common.

        2. After the original Peter Korn "Boinkon" {Usenet} parties,
        used for almost any net social gathering, e.g. Miniboink, a
        small boink held by Nancy Gillett in 1988; Minniboink, a
        Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday
        get-togethers held in the San Francisco Bay Area.

        Compare {@-party}.

        3. Variant of "bonk"; see {bonk/oif}.

BOLERO

        <programming> {Software AG}'s {object-oriented} development
        environment and {application server} for Electronic Business
        applications.

        (1999-03-06)

Bolt, Beranek and Newman, Inc.

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

        (1994-10-07)

        [Butterfly?]

bomb

        1. <software> General synonym for {crash} except that it is
        not used as a noun.  Especially used of software or {OS}
        failures.  "Don't run Empire with less than 32K stack, it'll
        bomb".

        2. <operating system> {Atari ST} and {Macintosh} equivalents
        of a {Unix} "{panic}" or {Amiga} {guru}, in which {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. <software> A piece of code embedded in a program that
        remains dormant until it is triggered.  Logic bombs are
        triggered by an event whereas time bombs are triggered either
        after a set amount of time has elapsed, or when a specific
        date is reached.

        (1996-12-08)

bon

        <language> (From "Bonnie", {Ken Thompson}'s wife) A language
        designed by {Ken Thompson} and later revised by him to produce
        {B}.

        [When?  Features?]

        (1997-02-04)

bondage-and-discipline language

        A language (such as {Pascal}, {Ada}, APL, or Prolog) that,
        though ostensibly general-purpose, is designed so as to
        enforce an author's theory of "right programming" even though
        said theory is demonstrably inadequate for systems hacking or
        even vanilla general-purpose programming.  Often abbreviated
        "B&D"; thus, one may speak of things "having the B&D nature".

        See {Pascal}.  Compare {languages of choice}.

        (1996-01-05)

bonk/oif

        /bonk/, /oyf/ In the {MUD} community, it has become
        traditional to express pique or censure by "bonking" the
        offending person.  Convention holds that one should
        acknowledge a bonk by saying "oif!" and there is a myth to the
        effect that failing to do so upsets the cosmic bonk/oif
        balance, causing much trouble in the universe.  Some MUDs have
        implemented special commands for bonking and oifing.

        (1998-01-18)

Booch

        {(http://www.itr.ch/tt/case/BoochReferenz/)}

        [What is it?]

        (1995-01-18)

bookmark

        <World-Wide Web> A user's reference to a document on the
        {World-Wide Web} or other hypermedia system, usually in the
        form of a {URL} and a title or comment string.

        Most World-Wide Web and {Gopher} {browsers} can save and load
        a file of bookmarks to allow you to quickly locate documents
        to which you want to refer again.

        (1997-06-09)

Bookreader

        {DEC}'s {CD-ROM}-based on-line documentation browser.

book titles

        <publication> There is a tradition in hackerdom of informally
        tagging important textbooks and standards documents with the
        dominant colour of their covers or with some other conspicuous
        feature of the cover.  Many of these are described in {this
        dictionary} under their own entries.  See {Aluminum Book},
        {Blue Book}, {Cinderella Book}, {Devil Book}, {Dragon Book},
        {Green Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
        {Red Book}, {Silver Book}, {White Book}, {Wizard Book},
        {Yellow Book}, {bible}, {rainbow series}.

        (1996-12-03)

Bookviewer

        A hypertext documentation system from Oracle based on Oracle
        Toolkit.  It allows the user to create private links and
        bookmarks, and to make multimedia annotations.

bool

        {Boolean}

Boolean

        <mathematics, logic> 1. {Boolean algebra}.

        <programming> 2. (bool) The type of an expression with two
        possible values, "true" and "false".  Also, a variable of
        Boolean type or a function with Boolean arguments or result.
        The most common Boolean functions are {AND}, {OR} and {NOT}.

        (1997-12-01)

Boolean algebra

        <mathematics, logic> (After the logician {George Boole})

        1. Commonly, and especially in computer science and digital
        electronics, this term is used to mean {two-valued logic}.

        2. This is in stark contrast with the definition used by pure
        mathematicians who in the 1960s introduced "Boolean-valued
        {models}" into logic precisely because a "Boolean-valued
        model" is an interpretation of a {theory} that allows more
        than two possible truth values!

        Strangely, a Boolean algebra (in the mathematical sense) is
        not strictly an {algebra}, but is in fact a {lattice}.  A
        Boolean algebra is sometimes defined as a "complemented
        {distributive lattice}".

        Boole's work which inspired the mathematical definition
        concerned {algebras} of {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.

        (1997-02-27)

Boolean logic

        <mathematics> A {logic} based on {Boolean algebra}.

        (1995-03-25)

Boolean search

        <information science> (Or "Boolean query") A query using the
        {Boolean} operators, {AND}, {OR}, and {NOT}, and parentheses
        to construct a complex condition from simpler criteria.  A
        typical example is searching for combinatons of keywords on a
        {World-Wide Web} {search engine}.

        Examples:

                car or automobile

                "New York" and not "New York state"

        The term is sometimes stretched to include searches using
        other operators, e.g. "near".

        Not to be confused with {binary search}.

        See also: {weighted search}.

        (1999-10-23)

Boole, George

        {George Boole}

Booster

        A {data-parallel} language.

        "The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst
        voor Toegepaste Informatica TNO, Delft, 1989.

boot

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

        (1995-11-27)

boot block

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

        (1997-07-03)

boot disk

        <operating system> The {magnetic disk} (usually a {hard disk})
        from which an {operating system} {kernel} is loaded (or
        "bootstrapped").  This second phase in system start-up is
        performed by a simple bootstrap loader program held in {ROM},
        possibly configured by data stored in some form of writable
        {non-volatile storage}.

        {MS-DOS} and {Microsoft Windows} can be configured (in the
        {BIOS}) to try to boot off either {floppy disk} or {hard
        disk}, in either order.  By default they first check for the
        presence of a {floppy disk} in the drive at start-up and try
        to use that as a boot disk if present.  If no disk is in the
        drive they then try to boot off the hard disk.

        Some {operating systems}, notably {SunOS} and {Solaris}, can
        be configured to boot from a network rather than from disk.
        Such a system can thus run as a {diskless workstation}.

        (1997-06-09)

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

        (1995-02-16)

bootstrap

        1. <operating system> (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. <compiler> (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

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

        (1995-02-16)

Border Gateway Protocol

        (BGP) An {Exterior Gateway Protocol} defined in {RFC 1267} and
        {RFC 1268}.  Its design is based on experience gained with
        {Exterior Gateway Protocol} (EGP), as defined in {STD} 18,
        {RFC 904} and EGP usage in the {NSFNet} {backbone}, as
        described in RFCs 1092 and 1093.

        (1994-11-29)

borf

        <jargon> To uncerimoniously disconnect someone from a system
        without prior warning.  {BBS} {Sysops} routinely "borf" pest
        users by turning off the modem or by hitting the "auto-borf"
        key sequence.

        You can also be "borfed" by software dropping {carrier} due to
        a {bug}.

        The origin of the term is unknown but it has been in use since
        at least 1982.

        (1997-03-21)

Borland International, Inc.

        {Inprise Corporation}

BOS

        1. <operating system> {Basic Operating System}.

        2. <tool> A data management system written at {DESY} and used
        in some high energy physics programs.

        3. <programming> The {Basic Object System}.

        (1999-01-20)

Bose-Chaudhuri-Hocquenghem Code

        <data, communications> (BHC Code) An {error detection and
        correction} technique based on {Cyclic Redundancy Code}, used
        in telecommunications applications.

        (1995-01-16)

BOSS

        Bridgport Operating System Software.  A derivative of the {ISO
        1054} numerical machine control language for milling, etc.

bot

        <networking, chat, World-Wide Web> (From "{robot}") Any type
        of autonomous {software} that operates as an {agent} for a
        user or a {program} or simulates a human activity.  On the
        {Internet}, the most popular bots are programs (called
        {spiders} or crawlers) used for searching.  They access {web
        sites}, retrieve documents and follow all the {hyperlinks} in
        them; then they generate catalogs that are accessed by {search
        engines}.

        A {chatbot} converses with humans (or other bots).  A
        {shopbot} searches the Web to find the best price for a
        product.  Other bots (such as {OpenSesame}) observe a user's
        patterns in navigating a web site and customises the site for
        that user.

        {Knowbots} collect specific information from {web sites}.

        (1999-05-20)

botmaster

        <chat> The owner of a {bot}.

        (1997-04-07)

bottom

        <theory> The least defined element in a given {domain}.

        Often used to represent a non-terminating computation.

        (In {LaTeX}, bottom is written as {\perp}, sometimes with the
        domain as a subscript).

        (1997-01-07)

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

        <programming> The opposite of {top-down design}.  It is now
        received wisdom in most programming cultures that it is best
        to design from higher levels of abstraction down to lower,
        specifying sequences of action in increasing detail until you
        get to actual code.  Hackers often find (especially in
        exploratory designs that cannot be closely specified in
        advance) that it works best to *build* things in the opposite
        order, by writing and testing a clean set of primitive
        operations and then knitting them together.

        (1996-05-10)

bottom-up model

        <programming> A method for estimating the cost of a complete
        software project by combining estimates for each component.

        (1996-05-28)

bottom-up testing

        <programming> An integration testing technique that tests the
        low-level components first using test drivers for those
        components that have not yet been developed to call the
        low-level components for test.

        Compare {bottom-up implementation}.

        (1996-05-10)

botwar

        <chat> The epic struggle of {bots} vying for dominance.

        Botwars are generally (and quite inappropriately) carried out
        on {talk} systems, typically {IRC}, where botwar crossfire
        (such as {pingflood}ing) absorbs scarce server resources and
        obstructs human conversation.

        The wisdom of experience indicates that {Core Wars}, not
        {talk} systems, are the appropriate venue for aggressive bots
        and their {botmasters}.

        Compare {penis war}.

        (1997-04-08)

bounce

        1. (Perhaps by analogy to a bouncing check) An {electronic
        mail} message that is undeliverable and returns an error
        notification (a "{bounce message}") to the sender is said to
        "bounce".

        2. To play volleyball.  The now-demolished {D. C. Power Lab}
        building used by the {Stanford AI Lab} in the 1970s had a
        volleyball court on the front lawn.  From 5 PM to 7 PM was the
        scheduled maintenance time for the computer, so every
        afternoon at 5 would come over the intercom the cry: "Now hear
        this: bounce, bounce!", followed by Brian McCune loudly
        bouncing a volleyball on the floor outside the offices of
        known volleyballers.

        3. To engage in sexual intercourse; probably from the
        expression "bouncing the mattress", but influenced by Roo's
        psychosexually loaded "Try bouncing me, Tigger!" from the
        "Winnie-the-Pooh" books.

        Compare {boink}.

        4. To casually reboot a system in order to clear up a
        transient problem.  Reported primarily among {VMS} users.

        5. (VM/CMS programmers) Automatic warm-start of a computer
        after an error.  "I logged on this morning and found it had
        bounced 7 times during the night"

        6. (IBM) To {power cycle} a peripheral in order to reset it.

        (1994-11-29)

bounce message

        A notification message returned to the sender by a site unable
        to relay {e-mail} to the intended recipient or the next link
        in a {bang path}.  Reasons might include a nonexistent or
        misspelled user name or a {down} relay site.  Bounce messages
        can themselves fail, with occasionally ugly results; see
        {sorcerer's apprentice mode} and {software laser}.  The terms
        "bounce mail" and "barfmail" are also common.

        (1994-11-29)

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

        (1995-02-14)

boundary value analysis

        <programming> A test data selection technique in which values
        are chosen to lie along data extremes.  Boundary values
        include maximum, minimum, just inside/outside boundaries,
        typical values, and error values.  The hope is that, if a
        systems works correctly for these special values then it will
        work correctly for all values in between.

        (1996-05-10)

bounded

        <theory> In {domain theory}, a subset S of a {cpo} X is
        bounded if there exists x in X such that for all s in S, s <=
        x.  In other words, there is some element above all of S.  If
        every bounded subset of X has a least upper bound then X is
        boundedly {complete}.

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

        (1995-02-03)

boundedly complete

        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

        <hardware> (From the Greek "boustrophe-don": turning like oxen
        in plowing; from "bous": ox, cow; "strephein": to turn) An
        ancient method of writing using alternate left-to-right and
        right-to-left lines.  It used for an optimisation performed by
        some computer typesetting software and moving-head printers to
        reduce physical movement of the print head.  The adverbial
        form "boustrophedonically" is also found.

        (1994-11-29)

box

        <computer> 1. A computer; especially in the construction "foo
        box" where foo is some functional qualifier, like "graphics",
        or the name of an {operating system} (thus, "{Unix} box",
        "{MS-DOS} box", etc.)  "We preprocess the data on Unix boxes
        before handing it up to the {mainframe}."  The plural
        "{boxen}" is sometimes seen.

        2. Without qualification in an {IBM} {SNA} site, "box" refers
        specifically to an {IBM} {front-end processor}.

        (1994-11-29)

boxed comments

        <programming> {Comments} that occupy several lines by
        themselves; so called because in {assembler} and {C} code they
        are often surrounded by a box in a style similar to this:

         /*************************************************
         *
         * This is a boxed comment in C style
         *
         *************************************************/

        Common variants of this style omit the asterisks in column 2
        or add a matching row of asterisks closing the right side of
        the box.  The sparest variant omits all but the comment
        {delimiters} themselves; the "box" is implied.

        Opposite of {winged comments}.

        (1997-07-21)

boxen

        /bok'sn/ (By analogy with {VAXen}) A fanciful plural of {box}
        often encountered in the phrase "Unix boxen", used to describe
        commodity {Unix} hardware.  The connotation is that any two
        Unix boxen are interchangeable.

        (1994-11-29)

Boxer

        1. <language> A {visual language} by Hal Abelson and Andy
        diSessa of Berkeley which claims to be the successor to
        {Logo}.  Boxes are used to represent {scope}.

        2. <tool> An editor for {MS-DOS}.

        [What kind of editor?]

        {Home (www.boxersoftware.com/users/dhamel)}.

        (1998-04-27)

boxology

        <graphics> /bok-sol'*-jee/ {ASCII art}.

        This term implies a more restricted domain, that of
        box-and-arrow drawings.  "His report has a lot of boxology in
        it."

        Compare {macrology}.

        (1994-12-02)

Boycott Apple

        Some time before 1989, {Apple Computer, Inc.} started a
        lawsuit against {Hewlett-Packard} and {Microsoft}, claiming
        they had breeched Apple's {copyright} on the {look and feel}
        of the {Macintosh user interface}.  In December 1989, {Xerox}
        failed to sue {Apple Computer}, claiming that the software for
        Apple's {Lisa} computer and {Macintosh} {Finder}, both
        copyrighted in 1987, were derived from two {Xerox} programs:
        {Smalltalk}, developed in the mid-1970s and {Star},
        copyrighted in 1981.

        Apple wanted to stop people from writing any program that
        worked even vaguely like a {Macintosh}.  If such {look and
        feel} lawsuits succeed they could put an end to {free
        software} that could substitute for commercial software.

        In the weeks after the suit was filed, {Usenet} reverberated
        with condemnation for Apple.  {GNU} supporters {Richard
        Stallman}, John Gilmore, and Paul Rubin decided to take action
        against Apple.  Apple's reputation as a force for progress
        came from having made better computers; but The {League for
        Programming Freedom} believed that Apple wanted to make all
        non-Apple computers worse.  They therefore campaigned to
        discourage people from using Apple products or working for
        Apple or any other company threatening similar obstructionist
        tactics (e.g. {Lotus} and {Xerox}).

        Because of this boycott the {Free Software Foundation} for a
        long time didn't support {Macintosh} {Unix} in their software.
        In 1995, the LPF and the FSF decided to end the boycott.

        [Dates?  Other events?  Why did Xerox's case against Apple
        fail?]

        (1995-04-18)

bozotic

        <abuse> (From Bozo the Clown, a famous circus personality, via
        "bozo" - a clod, idiot or generally silly person) any form of
        clown-like or ludicrous behaviour.  The word also has echoes
        of "robotic", so bozotic behaviour is mindless, automaton-like
        stupidity.

        (1996-01-05)

BPI

        {bits per inch}

bpp

        {bits per pixel}

BPR

        {Business Process Re-engineering}

BPS

        1. <unit> {bits per second}.

        2. <operating system> {Basic Programming Support}

BQS

        {Berkeley Quality Software}

br

        <networking> The {country code} for Brazil.

        (1999-01-27)

brace

        <character> {left brace} or {right brace}.

bracket

        <character> (Or square bracket) A {left bracket} or {right
        bracket}.

        Often used losely for {parentheses}, {square brackets},
        {braces}, {angle brackets}, or any other kind of unequal
        paired {delimiters}.

        (1996-09-08)

bracket abstraction

        <compiler> An {algorithm} which turns a term into a function
        of some variable.  The result of using bracket abstraction on
        T with respect to variable v, written as [v]T, is a term
        containing no occurrences of v and denoting a function f such
        that f v = T.  This defines the function f = (\ v . T).  Using
        bracket abstraction and {currying} we can define a language
        without {bound variable}s in which the only operation is
        {monadic} function application.

        See {combinator}.

        (1995-03-07)

braille

        <human language> /breyl/ (Often capitalised) A class of
        {writing systems}, intended for use by blind and low-vision
        users, which express {glyphs} as raised dots.  Currently
        employed braille standards use eight dots per cell, where a
        cell is a glyph-space two dots across by four dots high; most
        glyphs use only the top six dots.

        Braille was developed by Louis Braille (pronounced /looy
        bray/) in France in the 1820s.  Braille systems for most
        languages can be fairly trivially converted to and from the
        usual script.

        Braille has several totally coincidental parallels with
        digital computing: it is {binary}, it is based on groups of
        eight bits/dots and its development began in the 1820s, at the
        same time {Charles Babbage} proposed the {Difference Engine}.

        Computers output Braille on {braille displays} and {braille
        printers} for hard copy.

        {British Royal National Institute for the Blind
        (http://www.rnib.org.uk/wesupply/fctsheet/braille.htm)}.

        (1998-10-19)

braille display

        <hardware> (Or "refreshable braille display", "refreshable
        display") An electromechanical device that renders {braille}
        with tiny, independently controlled pins used to represent the
        state of dots in braille cells.  Each pin, in its "on" state,
        raises above the top of its hole in the screen; in its "off"
        state, it drops below the top of its hole.  Older systems used
        tiny solenoids to control the state of the pins; modern
        systems are {piezoelectric}.

        Typical dimensions of a braille display are 1 line of 40
        cells, each cell of two-by-eight dots.

        (1998-10-19)

Braille embosser

        {Braille printer}

Braille printer

        <printer> (Or "(Braille) embosser") A {printer}, necessarily
        an {impact printer}, that renders text as {Braille}.  Blind
        users call other printers {ink printers}.

        (1999-02-26)

Brain Aid Prolog

        <language> (BAP) A parallel {Prolog} environment for
        {transputer} systems by Frank Bergmann
        <fraber@cs.tu-berlin.de>, Martin Ostermann
        <ost@xan.dfv.rwth-aachen.de>, and Guido von Walter
        <guido@parsytec.de> 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/)}.

        (1995-03-07)

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

        <jargon, humour> 1. The actual result of a {braino}, as
        opposed to the mental {glitch} that is the braino itself.
        E.g. typing "dir" on a {Unix box} after a session with
        {MS-DOS}.

        2. A biproduct of a bloated mind producing information
        effortlessly.  A burst of useful information. "I know you're
        busy on the Microsoft story, but can you give us a brain fart
        on the Mitnik bust?"

        (1997-04-29)

braino

        {thinko}

branch

        1. <mathematics> An {edge} in a {tree}.

        2. <programming> A {jump}.

        (1998-11-14)

Branch and Hang

        <humour> (BRH) Originally a mythical instruction for the {IBM
        1130} at {Indiana University}.

        Later some real examples were discovered.  The {Texas
        Instruments} {TI-980} allowed all {addressing modes} with all
        instructions, including Store Immediate Extended (stores the
        value into the extension word of the instruction) and Branch
        and Link Immediate (makes a subroutine call to the same
        instruction -- Branch and Hang).

        Compare {HCF}.

        (1997-02-12)

branch coverage testing

        <programming> A test method which aims to ensure that each
        possible branch from each decision point (e.g. "if" statement)
        is executed at least once, thus ensuring that all reachable
        code is executed.

        (1996-05-10)

branch delay slot

        {delayed control-transfer}

Branch on Chip Box Full

        <humour> (BCBF) A mythical {IBM 1130} instruction whose action
        depended on the contents of the {chip box}.  This was one of a
        long list of fake {assembly language} instructions that went
        around {Indiana University} in the 1970s.

        (1997-02-12)

branch prediction

        <processor, algorithm> A technique used in some processors
        with {instruction prefetch} to guess whether a {conditional
        branch} will be taken or not and prefetch code from the
        appropriate location.

        When a branch instruction is executed, its address and that of
        the next instruction executed (the chosen destination of the
        branch) are stored in the {Branch Target Buffer}.  This
        information is used to predict which way the instruction will
        branch the next time it is executed so that instruction
        prefetch can continue.  When the prediction is correct (and it
        is over 90% of the time), executing a branch does not cause a
        {pipeline break}.

        Some later {CPU}s simply prefetch both paths instead of trying
        to predict which way the branch will go.

        An extension of the idea of branch prediction is {speculative
        execution}.

        (1998-03-14)

Branch Target Buffer

        <processor> (BTB) A {register} used to store the predicted
        destination of a branch in a processor using {branch
        prediction}?

        [Is this correct?  Examples?]

        (1995-05-05)

branch to Fishkill

        (IBM: from the location of one of the corporation's
        facilities) Any unexpected jump in a program that produces
        catastrophic or just plain weird results.

        See {jump off into never-never land}, {hyperspace}.

Brazil

        An {operating system} from {Acorn Computers} used on an {ARM}
        card which could be fitted to an {IBM PC}.  There was also an
        {ARM} second processor for the {BBC Microcomputer} which used
        Brazil.  Never used on the {Archimedes}(?).

        (1994-12-05)

BRB

        <chat> (I will) be right back.

        (1998-01-18)

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

        <algorithm> A graph search {algorithm} which tries all
        one-step extensions of current paths before trying larger
        extensions.  This requires all current paths to be kept in
        memory simultaneously, or at least their end points.

        Opposite of {depth-first search}.  See also {best first
        search}.

        (1996-01-05)

break

        1. To cause to be {broken} (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}].

breakpoint

        <programming> A point in a {program} that, when reached,
        triggers some special behavior useful to the process of
        {debugging}; generally, breakpoints are used to either pause
        program {execution}, and/or {dump} the values of some or all
        of the program {variables}.  Breakpoints may be part of the
        program itself; or they may be set by the programmer as part
        of an {interactive} session with a debugging tool for
        scrutinizing the program's execution.

        (1999-06-07)

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.

        (1995-01-26)

breedle

        {feep}

BRH

        {Branch and Hang}

BRI

        {Basic Rate Interface}, {2B1D} {Integrated Services Digital
        Network}.

        Basic Rate ISDN?

Brian Reid

        <person> The person who cofounded {Usenet}'s anarchic alt.*
        {newsgroup} {hierarchy} with {John Gilmore}.

        (1997-04-12)

BRIDGE

        A component of {ICES} for civil engineers.

        [Sammet 1969, p. 616].

bridge

        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.

briefcase

        <tool> A {Win95}/{WinNT} utility for keeping files on two
        computers without permanent connection in sync.

        The scenario briefcase was designed for is the combination of
        an office computer and a {portable} one.  You connect the two
        before leaving your office, create a briefcase on the portable
        (if you don't already have one on it), then copy the files you
        want to work on while away into the briefcase.  You can at
        this point disconnect the two computers, take the portable
        with you and work on the files in the briefcase at home or on
        the road.  When you get back to your office the briefcase
        utility can automatically update the files you changed on the
        office computer.

        (1998-05-18)

brightness

        <graphics> (Or "tone", "luminance", "value", "luminosity",
        "lightness") The coordinate in the {HSB} {colour model} that
        determines the total amount of light in the colour.  Zero
        brightness is black and 100% is white, intermediate values are
        "light" or "dark" colours.

        The other coordinates are {hue} and {saturation}.

        (1999-07-05)

Brilliant

        One of five pedagogical languages based on {Markov}
        {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

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

        (1995-02-28)

British Library Method

        <algorithm> {Brute force} searching.

        According to legends circulating in the 1970s, in the British
        Library books are searched for by examining each book
        sequentially in the first shelf, then the next shelf,
        continuing until the book is found or the entire library has
        been searched.

        The term was referred to in a Dutch coursebook, "Inleiding In
        De Informatica" (Introduction to Informatics) from a course
        given by C.H.A. Koster and Th.A. Zoethout.  This was based on
        a course given at the TU Berlin.

        [Reference?]

        (1999-04-14)

British Standards Institute

        <body, standard> (BSI) The British member of {ISO}.

        (1996-06-12)

British Telecom

        <company> (BT) The largest telecommunications provider in the
        UK.

        Due to regulatory issues, BT had to sell off its interest in
        McCaw Cellular.  BT sold it to {AT&T} for something like 4B$.
        BT then invested that in {MCI}.  As a part of the deal, MCI
        was given BT North America, which was the old {Tymnet}.  MCI
        laid off about 40% of the Tymnet staff.

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

        (1995-05-09)

British Telecom Research Laboratories

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

        (1995-04-25)

brittle

        <jargon> Said of {software} that is functional but easily
        broken by changes in operating environment or configuration,
        or by any minor tweak to the software itself.  Also, any
        system that responds inappropriately and disastrously to
        abnormal but expected external stimuli; e.g. a {file system}
        that is usually totally scrambled by a power failure is said
        to be brittle.  This term is often used to describe the
        results of a research effort that were never intended to be
        robust, but it can be applied to commercially developed
        software, which displays the quality far more often than it
        ought to.

        Opposite of {robust}.

        (1995-05-09)

broadband

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

        (1995-05-09)

broadcast

        A transmission to multiple, unspecified recipients.  On
        Ethernet, a broadcast packet is a special type of multicast
        packet which all nodes on the network are always willing to
        receive.

broadcast quality video

        <communications, multimedia> Roughly, {video} with more than
        30 frames per second at a {resolution} of 800 x 640 {pixels}.

        The quality of moving pictures and sound is determined by the
        complete chain from camera to receiver.  Relevant factors are
        the colour temperature of the lighting, the balance of the
        red, green and blue vision pick-up tubes to produce the
        correct display colour temperature (which will be different)
        and the {gamma} pre-correction to cancel the non-linear
        characteristic of {cathode-ray tubes} in television receivers.
        The {resolution} of the camera tube and video coding system
        will determine the maximum number of {pixels} in the picture.

        Different colour coding systems have different defects.  The
        NTSC system (National Television Systems Committee) can
        produce {hue} errors.  The PAL system (Phase Alternation by
        Line) can produce {saturation} errors.

        Television modulation systems are specified by ITU CCIR Report
        624.  Low-resolution systems have {bandwidths} of 4.2 MHz with
        525 to 625 lines per frame as used in the Americas and Japan.
        Medium resolution of 5 to 6.5 MHz with 625 lines is used in
        Europe, Asia, Africa and Australasia.  {High-Definition
        Television} (HDTV) will require 8 MHz or more of bandwidth.

        A medium resolution (5.5 MHz in UK) picture can be represented
        by 572 lines of 402 pixels.  Note the ratio of pixels to lines
        is not the same as the {aspect ratio}.  A {VGA} display (480n
        lines of 640 pixels) could thus display 84% of the height of
        one picture frame.

        Most compression techniques reduce quality as they assume a
        restricted range of detail and motion and discard details to
        which the human eye is not sensitive.

        Broadcast quality implies something better than amateur or
        domestic video and therefore can't be retained on a domestic
        video recorder.  Broadcasts use quadriplex or U-matic
        recorders.

        The lowest frame rate used for commercial entertainment is the
        24Hz of the 35mm cinema camera.  When broadcast on a 50Hz
        television system, the pictures are screened at 25Hz reducing
        the running times by 4%.  On a 60Hz system every five movie
        frames are screened as six TV frames, still at the 4%
        increased rate.  The six frames are made by mixing adjacent
        frames, with some degradation of the picture.

        A computer system to meet international standard reproduction
        would at least VGA resolution, an interlaced frame rate of
        24Hz and 8 bits to represent the luminance (Y) component.  For
        a component display system using red, green and blue (RGB)
        electron guns and phosphor dots each will require 7 bits.
        Transmission and recording is different as various coding
        schemes need less bits if other representations are used
        instead of RGB.  Broadcasts use YUV and compression can reduce
        this to about 3.5 bits per pixel without perceptible
        degradation.  High-quality video and sound can be carried on a
        34 Mbaud channel after being compressed with {ADPCM} and
        {variable length coding}, potentially in real time.

        (1997-07-04)

broadcast storm

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

        (1995-02-07)

Broadway

        <standard, operating system> A standard which the {X
        Consortium} is currently (January 1997) developing and plans
        to release soon as an {open standard}.  A prime goal is to be
        more {bandwidth}-efficient and easier to develop for (and to
        {port}) than the {X Window System}, which has been widely
        described as over-sized, over-featured, over-engineered and
        incredibly over-complicated.

        {Home (http://www.x.org/consortium/broadway.html)}.

        (1997-05-15)

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

        <communications> The error code displayed on line 25 of a {IBM
        3270} {terminal} (or a {terminal emulator} emulating a 3270)
        for various kinds of {protocol} violations and "unexpected"
        error conditions (including connection to a {down} computer).
        On a PC, simulated with "->/_", with the two centre characters
        overstruck.

        "Broken arrow" is also military jargon for an accident
        involving nuclear weapons.

        (1995-02-07)

broket

        <character> /broh'k*t/ or /broh'ket/ (From broken bracket)
        Either of the characters "<" or ">" when used as paired
        enclosing {delimiters} ({angle brackets}).

        (1997-07-21)

Brooks's Law

        <programming> "Adding manpower to a late software project
        makes it later" - a result of the fact that the expected
        advantage from splitting work among N programmers is O(N)
        (that is, proportional to N), but the complexity and
        communications cost associated with coordinating and then
        merging their work is O(N^2) (that is, proportional to the
        square of N).

        The quote is from Fred Brooks, a manager of {IBM}'s {OS/360}
        project and author of "{The Mythical Man-Month}".

        The myth in question has been most tersely expressed as
        "Programmer time is fungible" and Brooks established
        conclusively that it is not.  Hackers have never forgotten his
        advice; too often, {management} still does.

        See also {creationism}, {second-system effect}, {optimism}.

        (1996-09-17)

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

        <hypertext> A program which allows a person to read
        {hypertext}.  The browser gives some means of viewing the
        contents of {nodes} (or "pages") and of {navigating} from one
        node to another.

        {Netscape Navigator}, {NCSA} {Mosaic}, {Lynx}, and {W3} are
        examples for browsers for the {World-Wide Web}.  They act as
        {clients} to remote {web servers}.

        (1996-05-31)

BRS

        {Big Red Switch}.  This abbreviation is fairly common on-line.

BRUIN

        Brown University Interactive Language.

        A simple interactive language with {PL/I}-like {syntax}, for
        {IBM 360}.

        ["Meeting the Computational Requirements of the University,
        Brown University Interactive Language", R.G. Munck, Proc 24th
        ACM Conf, 1969].

        (1995-02-14)

brute force

        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.

        (1995-02-14)

brute force and ignorance

        <jargon> (BFI) A popular design technique at many software
        houses - {brute force} coding unrelieved by any knowledge of
        how problems have been previously solved in elegant ways.
        Dogmatic adherence to design methods tends to encourage this
        sort of thing.  Characteristic of early {larval stage}
        programming; unfortunately, many never outgrow it.

        Also encountered in the variants BFMI - brute force and
        massive ignorance, and BFBI - brute force and bloody
        ignorance.

        "Gak, they used a {bubble sort}!  That's strictly BFI."

        Compare {bogosity}.

        (1996-06-12)

BS

        <character> Backspace, the {mnemonic} for {ASCII} 8.

        (1996-06-24)

bs

        <networking> The {country code} for the Bahamas.

        (1999-01-27)

BS2000

        <operating system> An {operating system} from {SNI} for
        {mainframes}.

        {Home (http://www.mch.sni.de.public/bs2000/server.htm)}.

        (1997-06-13)

BSA

        1. {Business Software Alliance}.

        2. {Bidouilleurs Sans Argent}.

        (1998-10-26)

BSD

        {Berkeley System Distribution}

BSD386

        {386BSD}

BSDI

        {Berkeley Software Design, Inc.}

BSD/OS

        <operating system> {BSDI}'s commercial version of {Berkeley
        Standard Distribution} {Unix}.  BSD/OS is a
        {POSIX}-compatible, {Unix}-like system for the {80386}, {486},
        and {Pentium}.  It is based on the {BSD} software from {UCB},
        a number of other sources, and components engineered by BSDI.
        The initial production release of BSD/OS shipped in March,
        1993.

        (1996-01-13)

BSD Unix

        {Berkeley System Distribution}

BSI

        {British Standards Institute}

BSL

        <language> A variant of {IBM}'s {PL/S} systems language.
        Versions: BSL1, BSL2.

        (1998-06-15)

BSOD

        {Blue Screen of Death}

BSOL

        {Blue Screen of Life}

BSOM

        {Beats the shit outa me}

BSP method

        <programming> A {CASE} method from {IBM}.

        (1998-02-24)

BSRAM

        {Burst Static Random Access Memory}

BSS

        {Block Started by Symbol}

bt

        <networking> The {country code} for Bhutan.

        (1999-01-27)

BTB

        {Branch Target Buffer}

btoa

        <tool, messaging, algorithm, file format> /B too A/ A {binary}
        to {ASCII} conversion utility.

        btoa is a {uuencode} or {base 64} equivalent which addresses
        some of the problems with the uuencode standard but not as
        many as the base 64 standard.  It avoids problems that some
        {hosts} have with spaces (e.g. conversion of groups of spaces
        to tabs) by not including them in its character set, but may
        still have problems on non-ASCII systems (e.g. {EBCDIC}).

        btoa is primarily used to transfer {binary files} between
        systems across connections which are not {eight-bit clean},
        e.g. {electronic mail}.

        btoa takes adjacent sets of four binary {octets} and encodes
        them as five ASCII {octets} using ASCII characters '!' through
        to 'u'.  Special characters are also used: 'x' marks the
        beginning or end of the archive; 'z' marks four consecutive
        zeros and 'y' (version 5.2) four consecutive spaces.

        Each group of four octets is processed as a 32-bit integer.
        Call this 'I'.  Let 'D' = 85^4.  Divide I by D.  Call this
        result 'R'.  Make I = I - (R * D) to avoid {overflow} on the
        next step.  Repeat, for values of D = 85^3, 85^2, 85 and 1.
        At each step, to convert R to the output character add decimal
        33 (output octet = R + ASCII value for '!').  Five output
        octets are produced.

        btoa provides some integrity checking in the form of a line
        {checksum}, and facilities for patching corrupted downloads.

        The {algorithm} used by btoa is more efficient than uuencode
        or base 64.  ASCII files are encoded to about 120% the size of
        their binary sources.  This compares with 135% for uuencode or
        base 64.

        {C source (ftp://hpux.csc.liv.ac.uk/hpux/Misc/btoa-5.2/)}
        (version 5.2 - ~1994).

        Pre-compiled {MS-DOS} versions are also available.

        (1997-08-08)

B-Toolkit

        <tool, programming, product> A set of software tools designed
        to support a rigorous or formal development of software
        systems using the {B-Method}.

        The Toolkit also provides a development environment automating
        the management of all associated files, ensuring that the
        entire development, including code and documentation, is
        always in a consistent state.

        The Toolkit includes: a specification, design and code
        configuration management system, including integrity and
        dependency management and source file editing facilities; a
        set of software specification and design analysis tools, which
        includes {syntax} checkers, type checkers and a specification
        animator; a set of verification tools, which includes a
        proof-obligation generator and automatic and interactive
        provers; a set of coding tools, which includes a translator,
        linker, rapid prototyping facilities and a reusable
        specification/code module library; a documentation tool for
        automatically producing fully cross-referenced and indexed
        type-set documents from source files; a re-making tool for
        automatically re-checking and re-generating specifications,
        designs, code and documentation after modifications to source
        files.

        A normal licence costs 25,000 pounds, academic 6,250 pounds.

        (1995-03-13)

BTOS

        {Convergent Technologies Operating System}

B-tree

        1. {binary tree}.

        2. {balanced tree}.

BTRIEVE

        1. <company> {BTRIEVE Technologies, Inc.}.

        2. <tool> A trademark of {BTRIEVE Technologies, Inc.} for
        their {ISAM} {index file} manager for {IBM PC}s.

        (1995-03-28)

BTRIEVE Technologies, Inc.

        <company, database> /bee-treev/ (BTI) A provider of
        {client-server} {database engines}.  BTI was founded by former
        {Novell, Inc.} employees, including the original developers of
        the Btrieve database engine.  BTI acquired the database
        product line from Novell in April, 1994.

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

        Address: Austin, Texas, USA.

        (1995-12-14)

BTRL

        <company> {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 <bayko@hercules.cs.uregina.ca>, Appendix C]

        (1995-02-03)

bubble sort

        A sorting technique in which pairs of adjacent values in the
        list to be sorted are compared and interchanged if they are
        out of order; thus, list entries "bubble upward" in the list
        until they bump into one with a lower sort value.  Because it
        is not very good relative to other methods and is the one
        typically stumbled on by {naive} and untutored programmers,
        hackers consider it the {canonical} example of a naive
        algorithm.  The canonical example of a really *bad* algorithm
        is {bogo-sort}.  A bubble sort might be used out of ignorance,
        but any use of bogo-sort could issue only from brain damage or
        willful perversity.

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

        <memory management> A variation of {write-through} where the
        {cache} uses a "write buffer" to hold data being written back
        to {main memory}.  This frees the cache to service read
        requests while the write is taking place.  There is usually
        only one stage of buffering so subsequent writes must wait
        until the first is complete.  Most accesses are reads so
        buffered write-through is only useful for very slow main
        memory.

        (1998-04-24)

buffer overflow

        <programming> What happens when you try to store more data in
        a {buffer} than it can handle.  This may be due to a mismatch
        in the processing rates of the producing and consuming
        processes (see {overrun} and {firehose syndrome}), or because
        the buffer is simply too small to hold all the data that must
        accumulate before a piece of it can be processed.  For
        example, in a text-processing tool that {crunch}es a line at a
        time, a short line buffer can result in {lossage} as input
        from a long line overflows the buffer and overwrites data
        beyond it.  Good defensive programming would check for
        overflow on each character and stop accepting data when the
        buffer is full.

        See also {spam}, {overrun screw}.

        (1996-05-13)

bug

        <programming> An unwanted and unintended property of a program
        or piece of hardware, especially one that causes it to
        malfunction.  Antonym of {feature}.  E.g. "There's a bug in
        the editor: it writes things out backwards."  The
        identification and removal of bugs in a program is called
        "{debugging}".

        Admiral {Grace Hopper} (an early computing pioneer better
        known for inventing {COBOL}) liked to tell a story in which a
        technician solved a {glitch} in the {Harvard Mark II machine}
        by pulling an actual insect out from between the contacts of
        one of its relays, and she subsequently promulgated {bug} in
        its hackish sense as a joke about the incident (though, as she
        was careful to admit, she was not there when it happened).
        For many years the logbook associated with the incident and
        the actual bug in question (a moth) sat in a display case at
        the Naval Surface Warfare Center (NSWC).  The entire story,
        with a picture of the logbook and the moth taped into it, is
        recorded in the "Annals of the History of Computing", Vol. 3,
        No. 3 (July 1981), pp. 285--286.

        The text of the log entry (from September 9, 1947), reads
        "1545 Relay #70 Panel F (moth) in relay.  First actual case of
        bug being found".  This wording establishes that the term was
        already in use at the time in its current specific sense - and
        Hopper herself reports that the term "bug" was regularly
        applied to problems in radar electronics during WWII.

        Indeed, the use of "bug" to mean an industrial defect was
        already established in Thomas Edison's time, and a more
        specific and rather modern use can be found in an electrical
        handbook from 1896 ("Hawkin's New Catechism of Electricity",
        Theo. Audel & Co.)  which says: "The term "bug" is used to a
        limited extent to designate any fault or trouble in the
        connections or working of electric apparatus."  It further
        notes that the term is "said to have originated in
        {quadruplex} telegraphy and have been transferred to all
        electric apparatus."

        The latter observation may explain a common folk etymology of
        the term; that it came from telephone company usage, in which
        "bugs in a telephone cable" were blamed for noisy lines.
        Though this derivation seems to be mistaken, it may well be a
        distorted memory of a joke first current among *telegraph*
        operators more than a century ago!

        Actually, use of "bug" in the general sense of a disruptive
        event goes back to Shakespeare!  In the first edition of
        Samuel Johnson's dictionary one meaning of "bug" is "A
        frightful object; a walking spectre"; this is traced to
        "bugbear", a Welsh term for a variety of mythological monster
        which (to complete the circle) has recently been reintroduced
        into the popular lexicon through fantasy {role-playing games}.

        In any case, in jargon the word almost never refers to
        insects.  Here is a plausible conversation that never actually
        happened:

        "There is a bug in this ant farm!"

        "What do you mean?  I don't see any ants in it."

        "That's the bug."

        [There has been a widespread myth that the original bug was
        moved to the Smithsonian, and an earlier version of this entry
        so asserted.  A correspondent who thought to check discovered
        that the bug was not there.  While investigating this in late
        1990, your editor discovered that the NSWC still had the bug,
        but had unsuccessfully tried to get the Smithsonian to accept
        it - and that the present curator of their History of
        American Technology Museum didn't know this and agreed that it
        would make a worthwhile exhibit.  It was moved to the
        Smithsonian in mid-1991, but due to space and money
        constraints has not yet been exhibited.  Thus, the process of
        investigating the original-computer-bug bug fixed it in an
        entirely unexpected way, by making the myth true!  - ESR]

        (1999-06-29)

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

        <programming> A change to a program or system intended to
        permanently cure a {bug}.  Often a fix for one bug
        inadvertantly introduces new bugs, hence the need for careful
        forethought and testing.

        Compare: {workaround}.

        (1998-06-25)

bug fix release

        <programming> A {release} which introduces no new {features},
        but which merely aims to fix bugs in previous releases.  All
        too commonly new bugs are introduced at the same time.

        (1996-08-04)

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

        <programming> A programming system for {pattern recognition}
        and preparing animated films, for {IBM 7094} and {IBM 360}.

        ["BUGSYS: A Programming System for Picture Processing - Not
        for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966)].

        (1995-02-14)

built-in

        (Or "primitive") A built-in function or operator is one
        provided by the lowest level of a language implementation.
        This usually means it is not possible (or efficient) to
        express it in the language itself.  Typical examples are the
        basic arithmetic and {Boolean} operators (in {C} syntax: +, -,
        *, /, %, !, &&, ||), bit manipulation operators (~, &, |, ^)
        and I/O primitives.  Other common functions may be provided in
        libraries but are not built-in if they are written in the
        language being implemented.

        (1995-02-14)

Built-in Self Test

        (BIST) The technique of designing circuits with additional
        logic which can be used to test proper operation of the
        primary (functional) logic.

        (1995-02-14)

Bull

        {Bull Information Systems}

bulletin board

        {bulletin board system}

bulletin board system

        <communications, application> (BBS, bboard /bee'bord/; 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 groups} similar to the {newsgroups} on {Usenet} (which
        is like a distributed BBS).  Any user may submit or read any
        message in these public areas.

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

        (1998-03-24)

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

Bull Information Systems

        <company> A multinational I.T. group based in Europe with
        21,000 people and operations in more than 85 countries.  In
        1997, Bull earned revenues of over $4 billion, including over
        65% outside of France, its country of origin.  The company is
        ranked as the third largest {systems integrator} in Europe.

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

        (1998-07-02)

bum

        1. To make highly efficient, either in time or space, often at
        the expense of clarity.  "I managed to bum three more
        instructions out of that code."  "I spent half the night
        bumming the interrupt code."  In {elder days}, {John McCarthy}
        (inventor of {Lisp}) used to compare some efficiency-obsessed
        hackers among his students to "ski bums"; thus, optimisation
        became "program bumming", and eventually just "bumming".

        2. To squeeze out excess; to remove something in order to
        improve whatever it was removed from (without changing
        function; this distinguishes the process from a
        {featurectomy}).

        3.  A small change to an algorithm, program, or hardware
        device to make it more efficient.  "This hardware bum makes
        the jump instruction faster."

        Usage: now uncommon, largely superseded by v. {tune} (and
        {tweak}, {hack}), though none of these exactly capture sense
        2.  All these uses are rare in Commonwealth hackish, because
        in the parent dialects of English "bum" is a rude synonym for
        "buttocks".

bump

        Increment.  E.g. {C}'s {++} operator.  It is used especially of
        counter variables, pointers and index dummies in "for",
        "while", and "do-while" loops.

        (1994-11-29)

burble

        [Lewis Carroll's "Jabberwocky"] Like {flame}, but connotes
        that the source is truly clueless and ineffectual (mere
        flamers can be competent).  A term of deep contempt.  "There's
        some guy on the phone burbling about how he got a DISK FULL
        error and it's all our comm software's fault."  This is
        mainstream slang in some parts of England.

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. <hardware> {screen saver}.

        2. <hardware, testing> {burn-in period}.

        (1997-11-23)

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

        (1994-11-22)

Burst EDO

        {Burst Extended Data Out DRAM}

Burst Extended Data Out DRAM

        <storage> (Burst EDO, BEDO) A variant on {EDO DRAM} in which
        read or write cycles are batched in bursts of four.  The
        bursts wrap around on a four byte boundary which means that
        only the two least significant bits of the {CAS} address are
        modified internally to produce each address of the burst
        sequence.  Consequently, burst EDO bus speeds will range from
        40MHz to 66MHz, well above the 33MHz bus speeds that can be
        accomplished using {Fast Page Mode} or EDO DRAM.

        Burst EDO was introduced sometime before May 1995.

        (1996-06-25)

burst page

        {banner}

Burst Static Random Access Memory

        <storage> (BSRAM) A kind of {SRAM} used primarily for external
        {Level 2 cache} memory.

        [How does it work?]

        (1998-02-24)

bus

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

        The term is almost certainly derived from the electrical
        engineering term "bus bar" - a substantial, rigid power supply
        conductor to which several connections are made.  This was
        once written "'bus bar" as it was a contraction of "omnibus
        bar" - a connection bar "for all", by analogy with the
        passenger omnibus - a conveyance "for all".

        {More on derivation
        (http://foldoc.doc.ic.ac.uk/pub/omnibus.html)}.

        (1999-02-01)

Business Process Re-engineering

        <business> (BPR) Any radical change in the way in which an
        organisation performs its business activities.  BPR involves a
        fundamental re-think of the business processes followed by a
        redesign of business activities to enhance all or most of its
        critical measures - costs, quality of service, staff dynamics,
        etc.

        (1999-09-27)

Business Software Alliance

        <company> The BSA was created by {Microsoft} in 1988 in an
        attempt to combat {software theft}.  The alliance includes the
        majority of leading software publishers including {Novell},
        {Symantec}, and {Autodesk} and is actively campaigning in over
        65 countries.

        The BSA operates a three-pronged approach: 1. Lobbying to
        strengthen copyright laws and co-operation with law
        enforcement agencies.  2. Educating the public through
        marketing, roadshows, etc.  3. Bringing legal actions against
        counterfeiters.  BSA's aims are the same as the {Federation
        Against Software Theft} but it is not limited to the UK.

        In December 1990 the BSA obtained the first legal order in the
        UK which allowed a surprise search on a company's offices for
        suspected copyright infringement.

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

        (1996-05-19)

bus master

        <architecture> The device in a computer which is driving the
        {address bus} and bus control signals at some point in time.
        In a simple architecture only the (single) {CPU} can be bus
        master but this means that all communications between
        ("slave") I/O devices must involve the CPU.  More
        sophisticated architectures allow other capable devices (or
        multiple CPUs) to take turns at controling the bus.  This
        allows, for example, a {network controller} card to access a
        {disk controller} directly while the CPU performs other tasks
        which do not require the bus, e.g. fetching code from its
        {cache}.

        Note that any device can drive data onto the {data bus} when
        the CPU reads from that device, but only the bus master drives
        the {address bus} and control signals.

        {Direct Memory Access} is a simple form of bus mastering where
        the I/O device is set up by the CPU to read from or write to
        one or more contiguous blocks of memory and then signal to the
        CPU when it has done so.  Full bus mastering (or "First Party
        DMA", "bus mastering DMA") implies that the I/O device is
        capable of performing more complex sequences of operations
        without CPU intervention (e.g. servicing a complete {NFS}
        request).  This will normally mean that the I/O device
        contains its own processor or {microcontroller}.

        See also {distributed kernel}.

        (1996-08-26)

bus mastering

        {bus master}

Busy Beaver

        <theory> (BB) One of a series of sets of {Turing Machine}
        programs.  The BBs in the Nth set are programs of N states
        that produce a larger finite number of ones on an initially
        blank tape than any other program of N states.  There is no
        program that, given input N, can deduce the productivity
        (number of ones output) of the BB of size N.

        The productivity of the BB of size 1 is 1.  Some work has been
        done to figure out productivities of bigger Busy Beavers - the
        7th is in the thousands.

        (1994-10-24)

busy-loop

        {tight loop}

busy-wait

        <programming> To wait for an {event} by {spinning} through a
        {tight loop} or timed-delay loop that {polls} for the event on
        each pass, as opposed to setting up an {interrupt handler} and
        continuing execution on another part of the task.  This is a
        wasteful technique, best avoided on {time-sharing} systems
        where a busy-waiting program may {hog} the processor.

        (1999-06-10)

Butterfly Common LISP

        A parallel version of {Common LISP} for the {BBN Butterfly}
        computer.

Butterfly Scheme

        A parallel version of {Scheme} for the {BBN Butterfly}
        computer.

button

        1. <electronics> {push-button}.

        2. <operating system> A graphical representation of an
        electrical {push-button} appearing as part of a {graphical
        user interface}.  Moving the {mouse pointer} over the
        graphical button and pressing one of the physical mouse
        buttons starts some software action such as closing a window
        or deleting a file.

        See also {radio button}.

        (1997-07-07)

buzz

        1. Of a program, to run with no indication of progress and
        perhaps without guarantee of ever finishing; especially said
        of programs thought to be executing a {tight loop} of code.  A
        program that is buzzing appears to be {catatonic}, but never
        gets out of catatonia, while a buzzing loop may eventually end
        of its own accord.  "The program buzzes for about 10 seconds
        trying to sort all the names into order."  See {spin}; see
        also {grovel}.

        2. [ETA Systems] To test a wire or printed circuit trace for
        continuity by applying an AC rather than DC signal.  Some wire
        faults will pass DC tests but fail a buzz test.

        3. To process an {array} or list in sequence, doing the same
        thing to each element.  "This loop buzzes through the tz array
        looking for a terminator type."

bv

        <networking> The {country code} for Bouvet Island.

        (1999-01-27)

bw

        <networking> The {country code} for Botswana.

        (1999-01-27)

bwBASIC

        Bywater BASIC interpreter.

        A {BASIC} {interpreter} by Ted A. Campbell <tcamp@delphi.com>
        which implements a large superset of the {ANSI Standard for
        Minimal BASIC} (X3.60-1978) in {ANSI C}, and offers a simple
        interactive environment including some {shell} program
        facilities as an extension of BASIC.  The interpreter source
        has been compiled successfully on a range of {ANSI C}
        {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.

        (1993-10-29)

BWQ

        [IBM] Buzz Word Quotient.  The percentage of buzzwords in a
        speech or documents.  Usually roughly proportional to
        {bogosity}.  See {TLA}.

by

        <networking> The {country code} for Belarus.

        (1999-01-27)

byacc

        <tool> Berkeley Yacc.

        Probably the best variant of the {Yacc} {parser generator}.
        Written by Robert Corbett <Robert.Corbett@eng.sun.com>.  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)}

        (1995-06-19)

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

        <publication> A popular computing magazine.

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

        (1997-03-27)

byte

        <unit> /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
        {bit-fields} of 1 to 36 (or 64) bits!  These usages are now
        obsolete, and even 9-bit bytes have become rare in the general
        trend toward power-of-2 word sizes.

        The term was coined by Werner Buchholz in 1956 during the
        early design phase for the {IBM} {Stretch} computer.  It was a
        mutation of the word "bite" intended to avoid confusion with
        "bit".  In 1962 he described it as "a group of bits used to
        encode a character, or the number of bits transmitted in
        parallel to and from input-output units".  The move to an
        8-bit byte happened in late 1956, and this size was later
        adopted and promulgated as a standard by the {System/360}
        {operating system} (announced April 1964).

        James S. Jones <jsjones@jsjones.graceland.edu> 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).

        Terry Carr <bear@mich.com> says:

        In the early days IBM taught that a series of bits transferred
        together (like so many yoked oxen) formed a Binary Yoked
        Transfer Element (BYTE).

        [True origin?  First 8-bit byte architecture?]

        See also {nibble}, {octet}.

        (1998-08-06)

byte-code

        <file format, software> A {binary} file containing an
        {executable} program, formed by a sequence of {op code}/data
        pairs.

        Byte-code op codes are most often fixed size binary patterns,
        but can be variable size.  The data portion consists of zero
        or more {bits}, the format of the data portion may be
        determined by the identifier.  The data is most often variable
        in size.

        In some cases, by clever design, (e.g. some {RISC}
        {instruction sets}) the identifier/data pair is a fixed size.
        This can provide performance benefits.

        A byte-code program is normally 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.  The byte-code may be compiled
        to machine code ("native code") for speed of execution but
        this usually requires significantly greater effort for each
        new taraget architecture than simply porting the interpreter.

        For example, {Java} is compiled to byte-code which runs on the
        {Java Virtual Machine}.

        (1998-08-30)

byte-code compiler

        <programming, tool> A {compiler} which outputs a program in
        some kind of {byte-code}.

        (1995-11-04)

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

        <jargon, architecture> A term describing any system that has
        so many labyrinthine internal interconnections that it would
        be impossible to simplify by separation into loosely coupled
        or linked components.

        The city of Byzantium, later renamed Constantinople and then
        Istanbul, and the Byzantine Empire were vitiated by a
        bureaucratic overelaboration bordering on lunacy: quadruple
        banked agencies, dozens or even scores of superfluous levels
        and officials with high flown titles unrelated to their actual
        function, if any.

        Access to the Emperor and his council was controlled by
        powerful and inscrutable eunuchs and by rival sports factions.

        [Edward Gibbon, "Decline and Fall of the Roman Empire"].

        (1999-01-15)

bz

        <networking> The {country code} for Belize.

        (1999-01-27)

bzzzt, wrong

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

        (1994-11-11)

C

        <language> A programming language designed by {Dennis Ritchie}
        at {AT&T} {Bell Labs} ca. 1972 for systems programming on the
        {PDP-11} and immediately used to reimplement {Unix}.

        It was called "C" because many features derived from an
        earlier compiler named "{B}".  In fact, C was briefly named
        "NB".  B was itself strongly influenced by {BCPL}.  Before
        {Bjarne Stroustrup} settled the question by designing {C++},
        there was a humorous debate over whether C's successor should
        be named "D" or "P" (following B and C in "BCPL").

        C is terse, low-level and permissive.  It has a {macro
        preprocessor}, {cpp}.

        Partly due to its distribution with {Unix}, C became immensely
        popular outside {Bell Labs} after about 1980 and is now the
        dominant language in systems and {microcomputer} applications
        programming.  It has grown popular due to its simplicity,
        efficiency, and flexibility.  C programs are often easily
        adapted to new environments.

        C is often described, with a mixture of fondness and disdain,
        as "a language that combines all the elegance and power of
        {assembly language} with all the readability and
        maintainability of assembly language".

        Ritchie's original C, known as {K&R C} after Kernighan and
        Ritchie's book, has been {standard}ised (and simultaneously
        modified) as {ANSI C}.

        See also {ACCU}, {ae}, {c68}, {c386}, {C-Interp}, {cxref},
        {dbx}, {dsp56k-gcc}, {dsp56165-gcc}, {gc}, {GCT}, {GNU C},
        {GNU superoptimiser}, {Harvest C}, {malloc}, {mpl},
        {Pthreads}, {ups}.

        (1996-06-01)

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

        (1995-02-03)

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: <customer-support@think.com>,
        <documentation-order@think.com>.

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

        <language> One of the most used {object-oriented} languages, a
        superset of {C} developed primarily by Bjarne Stroustrup
        <bs@alice.att.com> at {AT&T} {Bell Laboratories} in 1986.

        In C++ a {class} is a user-defined type, syntactically a
        struct with {member 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].

        (1996-06-06)

C+-

        <language> (C More or Less) A subject-oriented language (SOL).
        Each C+- {class} instance, known as a subject, holds hidden
        {members}, known as prejudices, agendas or undeclared
        preferences, which are impervious to outside messages; as well
        as public members, known as boasts or claims.

        The following {C} {operators} are overridden as shown:

         >    better than
         <    worse than
         >>   way better than
         <<   forget it
         !    not on your life
         ==   comparable, other things being equal
         !==  get a life, guy!

        C+- is {strongly typed}, based on stereotyping and
        self-righteous logic.  The {Boolean} {variables} TRUE and
        FALSE (known as constants in other, less realistic languages)
        are supplemented with CREDIBLE and DUBIOUS, which are fuzzier
        than Zadeh's traditional fuzzy categories.  All Booleans can
        be declared with the modifiers strong and weak.  Weak
        implication is said to "preserve deniability" and was added at
        the request of the DoD to ensure compatibility with future
        versions of {Ada}.  Well-formed falsehoods (WFFs) are
        {assignment}-compatible with all Booleans.  What-if and
        why-not interactions are aided by the special conditional
        EVENIFNOT X THEN Y.

        C+- supports {information hiding} and, among {friend classes}
        only, rumor sharing.  Borrowing from the {Eiffel} lexicon,
        non-friend classes can be killed by arranging contracts.  Note
        that friendships are {intransitive}, {volatile} and
        non-{Abelian}.

        {Operator precedence} rules can be suspended with the
        directive #pragma dwim, known as the "{Do what I mean}"
        {pragma}.

        {ANSIfication} will be firmly resisted. C+-'s slogan is "Be
        Your Own Standard."

        (1999-06-15)

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 <jimvan@iexist.att.com>.

        ["A Dynamic C-Based Object-Oriented System for Unix", S.
        Engelstad et al, IEEE Software 8(3):73-85 (May 1991)].

        ["The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct
        1993, pp.24-32].

        (1994-10-31)

        [What has "Unir Tech" got to do with it?]

C-10

        An improved version of {COLINGO}.

        [Sammet 1969, p.702].

        (1994-10-28)

C1 security

        {Orange Book}

c2man

        <tool> An automatic {documentation} extraction tool by Graham
        Stoney <greyham@research.canon.oz.au>.  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 (1995-10-25).

        {Washington FTP
        (ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}.
        {Stuttgart FTP
        (ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewe
d/)}.
        {Patches
        (ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}.

        Mailing list: <listserv@research.canon.oz.au> ("subscribe
        c2man <Your Name>" in the message body).

        Patches posted to {Usenet} newsgroups {news:comp.sources.bugs}
        and {news:comp.sources.reviewed}.

        (1994-02-21)

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. <theory, architecture> {cellular automaton}.

        2. <company> {Computer Associates}.

        3. <cryptography> {Certificate Authority}.

        (1996-09-28)

ca

        <networking> The {country code} for Canada.

        (1995-04-19)

cable modem

        <communications, hardware> A type of {modem} that allows
        people to access the Internet via their cable television
        service.  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,
        compared 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.

        (1997-06-29)

cache

        <memory management> /kash/ A small fast memory holding
        recently accessed data, designed to speed up subsequent access
        to the same data.  Most often applied to processor-memory
        access but also used for a local copy of data accessible over
        a network etc.

        When data is read from, or written to, {main memory} a copy is
        also saved in the cache, along with the associated main memory
        address.  The cache monitors addresses of subsequent reads to
        see if the required data is already in the cache.  If it is (a
        {cache hit}) then it is returned immediately and the main
        memory read is aborted (or not started).  If the data is not
        cached (a {cache miss}) then it is fetched from main memory
        and also saved in the cache.

        The cache is built from faster memory chips than main memory
        so a cache hit takes much less time to complete than a normal
        memory access.  The cache may be located on the same
        {integrated circuit} as the {CPU}, in order to further reduce
        the access time.  In this case it is often known as {primary
        cache} since there may be a larger, slower {secondary cache}
        outside the CPU chip.

        The most important characteristic of a cache is its {hit rate}
        - the fraction of all memory accesses which are satisfied from
        the cache.  This in turn depends on the cache design but
        mostly on its size relative to the main memory.  The size is
        limited by the cost of fast memory chips.

        The hit rate also depends on the access pattern of the
        particular program being run (the sequence of addresses being
        read and written).  Caches rely on two properties of the
        access patterns of most programs: temporal locality - if
        something is accessed once, it is likely to be accessed again
        soon, and spatial locality - if one memory location is
        accessed then nearby memory locations are also likely to be
        accessed.  In order to exploit spatial locality, caches often
        operate on several words at a time, a "{cache line}" or "cache
        block".  Main memory reads and writes are whole {cache lines}.

        When the processor wants to write to main memory, the data is
        first written to the cache on the assumption that the
        processor will probably read it again soon.  Various different
        policies are used.  In a {write-through} cache, data is
        written to main memory at the same time as it is cached.  In a
        {write-back} cache it is only written to main memory when it
        is forced out of the cache.

        If all accesses were writes then, with a write-through policy,
        every write to the cache would necessitate a main memory
        write, thus slowing the system down to main memory speed.
        However, statistically, most accesses are reads and most of
        these will be satisfied from the cache.  Write-through is
        simpler than write-back because an entry that is to be
        replaced can just be overwritten in the cache as it will
        already have been copied to main memory whereas write-back
        requires the cache to initiate a main memory write of the
        flushed entry followed (for a processor read) by a main memory
        read.  However, write-back is more efficient because an entry
        may be written many times in the cache without a main memory
        access.

        When the cache is full and it is desired to cache another line
        of data then a cache entry is selected to be written back to
        main memory or "flushed".  The new line is then put in its
        place.  Which entry is chosen to be flushed is determined by a
        "{replacement algorithm}".

        Some processors have separate instruction and data caches.
        Both can be active at the same time, allowing an instruction
        fetch to overlap with a data read or write.  This separation
        also avoids the possibility of bad {cache conflict} between
        say the instructions in a loop and some data in an array which
        is accessed by that loop.

        See also {direct mapped cache}, {fully associative cache},
        {sector mapping}, {set associative cache}.

        (1997-06-25)

cache block

        {cache line}

cache coherency

        <storage> (Or "cache consistency") /kash koh-heer'n-see/ The
        synchronisation of data in multiple {caches} such that reading
        a memory location via any cache will return the most recent
        data written to that location via any (other) cache.

        Some {parallel processors} do not cache accesses to {shared
        memory} to avoid the issue of cache coherency.  If caches are
        used with shared memory then some system is required to detect
        when data in one processor's cache should be discarded or
        replaced because another processor has updated that memory
        location.  Several such schemes have been devised.

        (1998-11-10)

cache conflict

        <storage> A sequence of accesses to memory repeatedly
        overwriting the same {cache} entry.  This can happen if two
        blocks of data, which are mapped to the same set of cache
        locations, are needed simultaneously.

        For example, in the case of a {direct mapped cache}, if
        {arrays} A, B, and C map to the same range of cache locations,
        thrashing will occur when the following loop is executed:

                for (i=1; i<n; i++)
                        C[i] = A[i] + B[i];

        Cache conflict can also occur between a program loop and the
        data it is accessing.

        See also {ping-pong}.

        (1997-01-21)

cache consistency

        {cache coherency}

cache hit

        <storage> A request to read from memory which can satisfied
        from the {cache} without using the {main memory}.

        Opposite: {cache miss}.

        (1997-01-21)

cache line

        <storage> (Or cache block) The smallest unit of memory than
        can be transferred between the {main memory} and the {cache}.

        Rather than reading a single word or byte from main memory at
        a time, each cache entry is usually holds a certain number of
        words, known as a "cache line" or "cache block" and a whole
        line is read and cached at once.  This takes advantage of the
        principle of locality of reference: if one location is read
        then nearby locations (particularly following locations) are
        likely to be read soon afterwards.  It can also take advantage
        of {page-mode} {DRAM} which allows faster access to
        consecutive locations.

        (1997-01-21)

cache memory

        {cache}

cache miss

        <storage> A request to read from memory which cannot be
        satisfied from the {cache}, for which the {main memory} has to
        be consulted.

        Opposite: {cache hit}.

        (1997-01-21)

Cache On A STick

        <architecture> (COAST) {Intel Corporation} attempt to's
        standardise the modular {L2 cache} subsystem in
        {Pentium}-based computers.

        A COAST module should be about 4.35" wide by 1.14" high.
        According to earlier specifications from {Motorola}, a module
        between 4.33" and 4.36" wide, and between 1.12" and 1.16" high
        is within the COAST standard.  Some module vendors, including
        some major motherboard suppliers, greatly violate the height
        specification.

        Another COAST specification violated by many suppliers
        concerns clock distribution in synchronous modules.  The
        specification requires that the clock tree to each synchronous
        chip be balanced, i.e. equal length from edge of the connector
        to individual chips.  An unbalanced clock tree increases
        reflections and noise.

        For a 256 {kilobyte} cache module the standard requires the
        same clock be used for both chips but some vendors use
        separate clocks to reduce loading on the clock driver and
        hence increase the clock speed.  However, this creates
        unbalanced loading in other motherboard configurations, such
        as motherboards with soldered caches in the system.

        (1996-06-10)

caching

        {cache}

CACI

        A company developing and marketing {SIMSCRIPT}, {MODSIM} and
        other {simulation} software products.

        Telephone: +1 (619) 457-9681.

        (1994-09-22)

CACM

        {Communications of the ACM}

CAD

        {Computer Aided Design}

CAD/CAM

        {Computer Aided Design}/Computer Aided Manufacturing.

CADD

        Computer Aided Detector Design: a project to develop standards
        and methods to allow cooperation between HEP detector
        designers working in different institutes.

Cadence Design Systems

        <company> A company that sells {electronic design automation}
        software and services.

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

        See also {Verilog}.

        (1999-04-16)

CADET

        Computer Aided Design Experimental Translator.

        [Sammet 1969, p. 683].

        (1994-11-29)

CADRE

        <company> The US {software engineering} vendor which merged
        with {Bachman Information Systems} to form {Cayenne Software}
        in July 1996.

        (1998-02-08)

CAE

        1. <operating system> {Common Applications Environment}.

        2. <application> {Computer Aided Engineering}.

        (1999-09-17)

CAF

        {constant applicative form}

CAFE

        ["Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc
        BCS Symp on Job Control Languages--Past Present and Future,
        NCC, Manchester, England 1974].

        (1994-10-28)

CAGE

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

CAI

        {Computer-Aided Instruction}

Cairo

        {Windows NT 4}

CAIS

        {Common APSE Interface Specification}

CAIS-A

        Common APSE Interface Set A

        DoD-STD-1838A.

CAiSE

        Conference on Advanced Information Systems Engineering.

CAJOLE

        <language> (Chris And John's Own LanguagE) A {dataflow}
        language developed by Chris Hankin <clh@doc.ic.ac.uk> and John
        Sharp at {Westfield College}.

        ["The Data Flow Programming Language CAJOLE: An Informal
        Introduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44
        (Jul 1981)].

        (1994-11-08)

CAL

        1. {Computer Assisted Learning}.

        2. {Course Author Language}.

        (1997-03-21)

Calc

        An extensible, advanced desk calculator and mathematical tool
        written in {Emacs Lisp} by Dave Gillespie
        <daveg@cs.caltech.edu>.  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}.

        (1994-11-08)

calculator

        (Cambridge) {bitty box}.

        (1995-02-22)

Calculus of Communicating Systems

        (CCS) A mathematical model (a formal language) for describing
        processes, mostly used in the study of {parallelism}.  A CCS
        program, written in {behaviour expressions syntax} denotes a
        process behaviour.  Programs can be compared using the notion
        of {observational equivalence}.

        ["A Calculus of Communicating Systems", LNCS 92, Springer
        1980].

        ["Communication and Concurrency", R. Milner, P-H 1989].

        (1994-11-29)

Calendar API

        {Calendar Application Programming Interface}

Calendar Application Programming Interface

        (CAPI, Calendar API) An {API} for calendar {software}.

        {Microsoft} has defined a CAPI for their {Schedule+}
        application.

        (1995-01-11)

Caliban

        A {declarative} annotation language for controlling the
        partitioning and placement of the evaluation of expressions in
        a distributed {functional language}.  Designed by Paul Kelly
        <phjk@doc.ic.ac.uk>, {Imperial College}.

        ["Functional Programming for Loosely-coupled Multiprocessors",
        P. Kelly, Pitman/MIT Press, 1989].

        (1995-01-11)

Calico

        {C+@}

California State University San Marcos

        (CSUSM)

        {Home (http://coyote.csusm.edu/)}

        (1994-12-21)

callback

        1. <programming> A scheme used in {event-driven} programs
        where the program registers a {subroutine} (a "callback
        handler") to handle a certain {event}.  The program does not
        call the handler directly but when the event occurs, the
        {run-time system} calls the handler, usually passing it
        arguments to describe the event.

        2. <security> A {user authentication} scheme used by some
        computers running {dial-up} services.  The user dials in to
        the computer and gives his {user name} and {password}.  The
        computer then hangs up the connection and uses an {auto-dial}
        {modem} to call back to the user's registered telephone
        number.  Thus, if an unauthorised person discovers a user's
        password, the callback will go, not to him, but to the owner
        of that login who will then know that his account is under
        attack.

        However, some {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.

        (1999-01-06)

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.

        (1994-11-29)

call-by-need

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

        (1995-05-27)

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

        <programming> The arrangement of {arguments} for a procedure
        or function call.  Different programming languages may require
        arguments to be pushed onto a {stack} or entered in
        {registers} in left-to-right or right-to left order, and
        either the caller or the callee can be responsible for
        removing the arguments.  The calling convention also
        determines if a variable number of arguments is allowed.

        (1995-11-11)

Call-Level Interface

        <database, standard> (SQL/CLI) A programming interface
        designed to support {SQL} access to {databases} from
        shrink-wrapped {application programs}.

        CLI was originally created by a subcommittee of the {SQL
        Access Group} (SAG).  The SAG/CLI specification was published
        as the {Microsoft} {Open DataBase Connectivity} (ODBC)
        specification in 1992.  In 1993, SAG submitted the CLI to the
        {ANSI} and {ISO} SQL committees.

        SQL/CLI provides an international standard
        implementation-independent CLI to access SQL databases.
        {Client-server} tools can easily access databases through
        {dynamic link libraries}.  It supports and encourages a rich
        set of client-server tools.

        SQL/CLI is an addendum to 1992 SQL standard (SQL-92).  It was
        completed as ISO standard ISO/IEC 9075-3:1995 Information
        technology -- Database languages -- SQL -- Part 3: Call-Level
        Interface (SQL/CLI).  The current SQL/CLI effort is adding
        support for {SQL3}.

        {(http://www.jcc.com/sql_cli.html)}.

        (1996-10-27)

Call Unix

        <communications, tool> (cu) The original {Unix} {virtual
        terminal} utility.  cu allows a user on one computer to log in
        to another connected via {Ethernet}, direct {serial line} or
        {modem}.  It shares some configuration files with {UUCP} in
        order to be able to use the same connections without conflict.

        {Unix manual page}: cu(1).

        (1997-12-01)

Callware

        <company> The developers of {Phonetastic}.

        (1996-12-08)

Call-with-current-continuation

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

        (1994-11-29)

CALS

        Computer-Aided Acquisition and Logistics Support: a DoD
        standard for electronic exchange of data with commercial
        suppliers.

CAM

        1. <storage, architecture> {content addressable memory}.

        2. <application> {computer aided manufacturing}.

        (1999-09-17)

CAM-6

        Software for running {cellular automata}.  CAM-6 has been
        implemented in hardware as {CAM-PC}.

        (1995-04-21)

CAMAL

        <tool> CAMbridge ALgebra system.

        A {symbolic mathematics} system used in Celestial Mechanics
        and General Relativity.  CAMAL was implemented in {BCPL} on
        {Titan}.

        ["CAMAL User's Manual", John P. Fitch, Cambridge U, England
        (1975)].

        ["The Design of the Cambridge Algebra System", S.R. Bourne et
        al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971].

        (1995-02-16)

Cambridge Lisp

        A flavour of Lisp using BCPL.  Sources owned by Fitznorman
        partners.

Camelot Library

        <library>

        ["The Camelot Library", J. Bloch, in "Guide to the Camelot
        Distributed Transaction Facility: Release I", A.Z. Spector et
        al eds, CMU 1988, pp. 29-62].

        [What is it?]

        (1995-04-19)

camera ready

        <publication> A final 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.

        (1996-11-15)

CAMIL

        Computer Assisted/Managed Instructional Language.

        A language used for {CAI} at Lowry AFB, CO.

        ["The CAMIL Programming Language", David Pflasterer, SIGPLAN
        Notices 13(11):43 (Nov 1978)].

        (1994-11-09)

CAML

        1. A language for preparation of animated movies.  1976.

        (1994-11-09)

        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 <Pierre.Weis@inria.fr>,
        <caml@margaux.inria.fr> (bugs).

        Mailing list: <caml-list-request@margaux.inria.fr>.

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

        ["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,
        1989].

        (1991-10-20)

Caml Light

        A small portable implementation of a version of {CAML} by
        Xavier Leroy <Xavier.Leroy@inria.fr> and Damien Doligez of
        {INRIA}.  Caml Light uses a {bytecode interpreter} written in
        {C}.  It adds a {Modula-2}-like {module} system, {separate
        compilation}, {lazy 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: <caml-light@margaux.inria.fr>.

        Mailing list: <caml-list@margaux.inria.fr>.

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

        (1993-10-06)

CAM-PC

        <hardware> A {cellular automata} circuit board which is a
        hardware implementation from {Automatrix} of the {MIT} {CAM-6}
        machine.  It comes with dozens of experiments and
        applications.

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

        (1995-04-21)

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.

        (1994-11-09)

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

        (1995-04-06)

Cancel

        <character> (CAN, Control-X) {ASCII} character 24.

        (1996-06-28)

Cancelbunny

        {Cancelpoodle}

Cancelm00se

        {Cancelmoose}

Cancelmoose

        <messaging> A semi-mythical being that cancels {Usenet}
        {articles} posted by others.  (In general, an article can only
        be cancelled by its original author.)

        The Cancelmoose's usual target is {spam} or extremely
        excessive {cross-post}ing.

        Some believe that the Cancelmoose exists only in the same
        mythic sense that {B1FF}, the {NSA line eater} and {Shub
        Internet} exist; others consider Cancelmoose's historicity to
        be closer to that of {Kibo}.  The latter group assume that the
        real Cancelmoose is not one person (or moose), but instead is
        a cabal of {NNTP} wonks.  However, the Cancelmoose is probably
        real, seeing as how it has its own {web site}.

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

        (1999-01-14)

Cancelpoodle

        <messaging> (Or Cancelbunny) A manifestation of the
        {Cancelmoose} in the form of a more selective (and probably
        not automated) way to cancel {Usenet} articles.

        The term became common during the alt.religion.scientology
        wars of the mid-90s, during which Cancelpoodles were used.
        The "poodle" part is an allusion to one of the parties
        obliquely involved in the fray, who an earlier well-known
        witticism had compared to "a psychotic poodle".

        (1999-01-14)

candidate key

        <database> One of several possible attributes or combinations
        of attributes which can be used to uniquely identify a body of
        information (a "{record}").

        (1997-04-26)

Candle

        Part of the {Scorpion} environment development system.

        (1994-11-09)

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. <mathematics> A standard way of writing a formula.  Two
        formulas such as 9 + x and x + 9 are said to be equivalent
        because they mean the same thing, but the second one is in
        "canonical form" because it is written in the usual way, with
        the highest power of x first.  Usually there are fixed rules
        you can use to decide whether something is in canonical form.
        Things in canonical form are easier to compare.

        2. <jargon> The usual or standard state or manner of
        something.  The term acquired this meaning in computer-science
        culture largely through its prominence in {Alonzo Church}'s
        work in computation theory and {mathematical logic} (see
        {Knights of the Lambda-Calculus}).

        Compare {vanilla}.

        This word has an interesting history.  Non-technical academics
        do not use the adjective "canonical" in any of the senses
        defined above with any regularity; they do however use the
        nouns "canon" and "canonicity" (not "canonicalness"* or
        "canonicality"*). The "canon" of a given author is the
        complete body of authentic works by that author (this usage is
        familiar to Sherlock Holmes fans as well as to literary
        scholars).  "The canon" is the body of works in a given field
        (e.g. works of literature, or of art, or of music) deemed
        worthwhile for students to study and for scholars to
        investigate.

        The word "canon" derives ultimately from the Greek "kanon"
        (akin to the English "cane") referring to a reed.  Reeds were
        used for measurement, and in Latin and later Greek the word
        "canon" meant a rule or a standard.  The establishment of a
        canon of scriptures within Christianity was meant to define a
        standard or a rule for the religion.  The above non-technical
        academic usages stem from this instance of a defined and
        accepted body of work.  Alongside this usage was the
        promulgation of "canons" ("rules") for the government of the
        Catholic Church.  The usages relating to religious law derive
        from this use of the Latin "canon".

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

        (1994-12-22)

Canonical Encoding Rules

        <protocol, standard> (CER) A restricted variant of {BER} for
        producing unequivocal {transfer syntax} for data structures
        described by {ASN.1}.

        Whereas {BER} gives choices as to how data values may be
        encoded, CER and {DER} select just one encoding from those
        allowed by the basic encoding rules, eliminating all of the
        options.  They are useful when the encodings must be
        preserved, e.g. in security exchanges.

        CER and {DER} differ in the set of restrictions that they
        place on the encoder.  The basic difference between CER and
        {DER} is that {DER} uses definitive length form and CER uses
        indefinite length form.

        Documents: {ITU-T} X.690, {ISO} 8825-1.

        See also {PER}.

        (1998-05-19)

canonical name

        (CNAME) A host's official name as opposed to an alias.  The
        official name is the first hostname listed for its {Internet
        address} in the hostname database, {/etc/hosts} or the
        {Network Information Service} (NIS) map hosts.byaddr ("hosts"
        for short).  A host with multiple network interfaces may have
        more than one Internet address, each with its own canonical
        name (and zero or more aliases).

        You can find a host's canonical name using {nslookup} if you
        say

                set querytype=CNAME

        and then type a hostname.

        (1994-11-29)

canonicity

        <theory, jargon> The extent to which something is {canonical}.

        (1995-03-03)

C (ANSI)

        {ANSI C}

can't happen

        <programming> The traditional program comment for code
        executed under a condition that should never be true, for
        example a file size computed as negative.  Often, such a
        condition being true indicates data corruption or a faulty
        {algorithm}; it is almost always handled by emitting a fatal
        error message and terminating or crashing, since there is
        little else that can be done.

        Some case variant of "can't happen" is also often the text
        emitted if the "impossible" error actually happens.  Although
        "can't happen" events are genuinely infrequent in production
        code, programmers wise enough to check for them habitually are
        often surprised at how frequently they are triggered during
        development and how many headaches checking for them turns out
        to head off.

        See also {firewall code}, {professional programming}.

        (1996-05-10)

Cantor

        1. <person, mathematics> A mathematician.

        Cantor devised the diagonal proof of the uncountability of the
        {real numbers}:

        Given a function, f, from the {natural numbers} to the {real
        numbers}, consider the real number r whose binary expansion is
        given as follows: for each natural number i, r's i-th digit is
        the complement of the i-th digit of f(i).

        Thus, since r and f(i) differ in their i-th digits, r differs
        from any value taken by f.  Therefore, f is not {surjective}
        (there are values of its result type which it cannot return).

        Consequently, no function from the natural numbers to the
        reals is surjective.  A further theorem dependent on the
        {axiom of choice} turns this result into the statement that
        the reals are uncountable.

        This is just a special case of a diagonal proof that a
        function from a set to its {power set} cannot be surjective:

        Let f be a function from a set S to its power set, P(S) and
        let U = { x in S: x not in f(x) }.  Now, observe that any x in
        U is not in f(x), so U != f(x); and any x not in U is in f(x),
        so U != f(x): whence U is not in { f(x) : x in S }.  But U is
        in P(S).  Therefore, no function from a set to its power-set
        can be surjective.

        2. <language> An {object-oriented language} with fine-grained
        {concurrency}.

        [Athas, Caltech 1987.  "Multicomputers: Message Passing
        Concurrent Computers", W. Athas et al, Computer 21(8):9-24
        (Aug 1988)].

        (1997-03-14)

CAP

        1. <networking> {Columbia AppleTalk Package}.

        2. <communications> {Carrierless Amplitude/Phase Modulation}.

        3. <networking> {Competitive Access Provider}

Capabilities Maturity Model

        <software> (CMM) The {Software Engineering Institute}'s model
        of {software engineering} that specifies five levels of
        maturity of the processes of a software organisation.  CMM
        offers a framework for evolutionary process improvement.
        Originally applied to software development (SE-CMM), it has
        been expanded to cover other areas including Human Resources
        and Software Acquitition.

        [What are the levels?  Reference?]

        (1999-09-13)

capability

        <operating system, security> An {operating system} security or
        access control model where specific types of access to a
        specific object are granted by giving a process this data
        structure or {token}.

        The token may be unforgeable (typically by using {encryption}
        or hardware "tagged" memory).  Capabilities are used in OSes
        such as {Hydra}, {KeyKOS}, {EROS}, {Chorus}/{Mix}, and the
        {Stanford V system}.  Similar to {Kerberos}, but in an OS
        context.

        Compare {access control list}.

        (1998-03-08)

capacitor

        <electronics> An electronic device that can store electrical
        charge.  The charge stored Q in Coulombs is related to the
        capacitance C in Farads and the voltage V across the capacitor
        in Volts by Q = CV.

        The basis of a {dynamic RAM} cell is a capacitor.  They are
        also used for power-supply smoothing (or "decoupling").  This
        is especially important in digital circuits where a digital
        device switching between states causes a sudden demand for
        current.  Without sufficient local power supply decoupling,
        this current "spike" cannot be supplied directly from the
        power supply due to the inductance of the connectors and so
        will cause a sharp drop in the power supply voltage near the
        switching device.  This can cause other devices to malfunction
        resulting in hard to trace {glitch}es.

        (1995-04-12)

CAPI

        1. {Calendar Application Programming Interface}.

        2. <cryptography> {Cryptographic Application Programming
        Interface}.

        3. <networking> {Common ISDN Application Programming
        Interface}.

        (1998-09-07)

Cap'n Crunch

        {Captain Crunch}

Captain Abstraction

        The champion of the principles of {abstraction} and
        modularity, who protects unwary students on {MIT}'s course
        {6.001} from the nefarious designs of Sergeant Spaghetticode
        and his vile {concrete} programming practices.

        See also {spaghetti code}.

        (1994-11-22)

Captain Crunch

        1. <person> ("Cap'n Crunch") An early 1970s
        {hacker}/{phreaker}/{phacker} who used a free whistle included
        with "Cap'n Crunch" breakfast cereal to fake pay phone system
        tones and make large quantities of free phone calls.  Also
        alludes to "{crunch}".

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

        (1998-08-25)

card

        1. A circuit board.

        2. A {punched card}.

        3. <hypertext> An alternative term for a {node} in a system
        (e.g. {HyperCard}, {Notecards}) in which the node size is
        limited.

Cardbox for Windows

        <database> A database handling program, especially useful for
        scholars and librarians.

        [Details?  Features?  Developer?  URL?]

        (1997-05-14)

Cardbus

        <hardware> The 32-bit version of the {PCMCIA} (PC Card) {bus}.

        [Spec?]

        (1996-08-20)

cardinality

        <mathematics> The number of elements in a set.  If two sets
        have the same number of elements (i.e. there is a {bijection}
        between them) then they have the same cardinality.  A
        cardinality is thus an {isomorphism class} in the {category}
        of sets.

        {aleph 0} is defined as the cardinality of the first
        {infinite} {ordinal}, {omega} (the number of {natural
        number}s).

        (1995-03-29)

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

        (1994-12-16)

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

        (1994-12-16)

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

        <company> The company which sells {QTRADER}.

        Director of Marketing: Norm Larsen <wwcoinc@winternet.com>.

        (1995-11-05)

Carl Friedrich Gauss

        <person> A German mathematician (1777 - 1855), one of all time
        greatest.  Gauss discovered the {method of least squares} and
        {Gaussian elimination}.

        Gauss was something of a child prodigy; the most commonly told
        story relates that when he was 10 his teacher, wanting a rest,
        told his class to add up all the numbers from 1 to 100.  Gauss
        did it in seconds, having noticed that 1+...+100 = 100+...+1 =
        (101+...+101)/2.

        He did important work in almost every area of mathematics.
        Such eclecticism is probably impossible today, since further
        progress in most areas of mathematics requires much hard
        background study.

        Some idea of the range of his work can be obtained by noting
        the many mathematical terms with "Gauss" in their names.  E.g.
        {Gaussian elimination} ({linear algebra}); {Gaussian primes}
        (number theory); {Gaussian distribution} (statistics); {Gauss}
        [unit] (electromagnetism); {Gaussian curvature} (differential
        geometry); {Gaussian quadrature} (numerical analysis);
        {Gauss-Bonnet formula} (differential geometry); {Gauss's
        identity} ({hypergeometric functions}); {Gauss sums} ({number
        theory}).

        His favourite area of mathematics was {number theory}.  He
        conjectured the {Prime Number Theorem}, pioneered the {theory
        of quadratic forms}, proved the {quadratic reciprocity
        theorem}, and much more.

        He was "the first mathematician to use {complex numbers} in a
        really confident and scientific way" (Hardy & Wright, chapter
        12).

        He nearly went into architecture rather than mathematics; what
        decided him on mathematics was his proof, at age 18, of the
        startling theorem that a regular N-sided polygon can be
        constructed with ruler and compasses if and only if N is a
        power of 2 times a product of distinct {Fermat primes}.

        (1995-04-10)

Carnegie Mellon University

        <body, education> (CMU) A university in Pittsburgh,
        Pennsylvania.  {School of Computer Science
        (http://www.cs.cmu.edu/Web/FrontDoor.html)}.

        (1997-06-23)

carpal tunnel syndrome

        {overuse strain injury}

Carriage Return

        <character> (CR, Control-M, {ASCII} 13) The character which
        causes the {cursor} to move to the left margin, often used
        with {line feed} to start a new line of output.

        Encoded in {C} and {Unix} as "\r".

        (1996-06-24)

Carrierless Amplitude/Phase Modulation

        <communications> (CAP) A design of {Asymmetric Digital
        Subscriber Line} {transceiver} developed by {Bell Labs}.  CAP
        was the first ADSL design to be commercially deployed and, as
        of August 1996, was installed on more lines than any other.

        CAP is a variation of {Quadrature Amplitude Modulation}, the
        modulation used by most existing {modems} in 1997.  With CAP,
        the three channels ({POTS}, downstream data and upstream data)
        are supported by splitting the frequency spectrum.  Voice
        occupies the standard 0-4 Khz frequency band, followed by the
        upstream channel and the high-speed downstream channel.

        (1997-10-08)

carrier scanner

        <security> (Or "wardialer") A program which uses a {modem} to
        dial a series of phone numbers (say, from 770-0000 to
        770-9999), and keeps a log of what phone numbers answer with a
        modem {carrier}.  The results of such a search were generally
        used by people looking to engage in {random} mischief in
        {random} machines.

        Since the 1980s, wardialers have generally fallen into disuse,
        partly because of easily available "{caller ID}" technology,
        partly because fax machines are now in wide use and would
        often be logged as a {carrier} by a wardialer, and partly
        because there are so many new and more interesting venues for
        computerised mischief these days.

        (1997-03-16)

carrier signal

        <communications> A continuous signal of a single frequency
        capable of being modulated by a second, data-carrying signal.
        In radio communication, the two common kinds of modulation are
        {amplitude modulation} and {frequency modulation}.

        (1995-03-01)

Cartesian coordinates

        <mathematics, graphics> (After Renee Descartes, French
        philosopher and mathematician) A pair of numbers, (x, y),
        defining the position of a point in a two-dimensional space by
        its perpendicular projection onto two axes which are at right
        angles to each other.  x and y are also known as the
        {abscissa} and {ordinate}.

        The idea can be generalised to any number of independent axes.

        Compare {polar coordinates}.

        (1997-07-08)

Cartesian product

        <mathematics> (After Renee Descartes, French philosper and
        mathematician) The Cartesian product of two sets A and B is
        the set

                A x B = {(a, b) | a in A, b in B}.

        I.e. the product set contains all possible combinations of one
        element from each set.  The idea can be extended to products
        of any number of sets.

        If we consider the elements in sets A and B as points along
        perpendicular axes in a two-dimensional space then the
        elements of the product are the "{Cartesian coordinates}" of
        points in that space.

        See also {tuple}.

        (1995-03-01)

CAS

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

        (1995-01-26)

cascade

        1. <compiler> A huge volume of spurious error-messages output
        by a {compiler} with poor {error recovery}.  Too frequently,
        one trivial {syntax} error (such as a missing ")" or "}")
        throws the {parser} out of synch so that much of the remaining
        program text, whether correct or not, is interpreted as
        garbaged or ill-formed.

        2. <messaging> A chain of {Usenet} followups, each adding some
        trivial variation or riposte to the text of the previous one,
        all of which is reproduced in the new message; an {include
        war} in which the object is to create a sort of communal
        graffito.

        3. <networking> A collection of interconneced networking
        devices, typically {hub}s, that allows those devices to act
        together as a {logical} {repeater}.

        (1997-07-17)

Cascading Style Sheets

        <World-Wide Web> (CSS) An extension to {HTML} to allow styles,
        e.g. colour, font, size to be specified for certain elements
        of a hypertext document.  Style information can be included
        in-line in the HTML file or in a separate CSS file (which can
        then be easily shared by multiple HTML files).  Multiple
        levels of CSS can be used to allow selective overriding of
        styles.

        [Reference?]

        (1998-04-28)

CASE

        1. {Computer Aided Software Engineering}.

        2. {Common Application Service Element}.

case

        1. <programming> {switch statement}.

        2. <character> Whether a character is a capital letter ("upper
        case" - ABC..Z) or a small letter ("lower case" - abc..z).

        The term case comes from the printing trade when the use of
        moving type was invented in the early Middle Ages (Caxton or
        Gutenberg?) and the letters for each {font} were stored in a
        box with two sections (or "cases"), the upper case was for the
        capital letters and the lower case was for the small letters.
        The Oxford Universal Dictionary of Historical Principles (Feb
        1993, reprinted 1952) indicates that this usage of "case" (as
        the box or frame used by a compositor in the printing trade)
        was first used in 1588.

        (1996-03-01)

case and paste

        <programming> (From "{cut and paste}") The addition of a new
        {feature} to an existing system by selecting the code from an
        existing feature and pasting it in with minor changes.  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.

        (1996-03-01)

case based reasoning

        <artificial intelligence> (CBR) A technique for problem
        solving which looks for previous examples which are similar to
        the current problem.  This is useful where {heuristic}
        {knowledge} is not available.

        There are many situations where experts are not happy to be
        questioned about their knowledge by people who want to write
        the knowledge in rules, for use in {expert systems}.  In most
        of these situations, the natural way for an expert to describe
        his or her knowledge is through examples, stories or cases
        (which are all basically the same thing).  Such an expert will
        teach trainees about the expertise by apprenticeship, i.e. by
        giving examples and by asking the trainees to remember them,
        copy them and adapt them in solving new problems if they
        describe situations that are similar to the new problems.  CBR
        aims to exploit such knowledge.

        Some key research areas are efficient indexing, how to define
        "similarity" between cases and how to use temporal
        information.

        (1996-05-28)

CASE Data Interchange Format

        (CDIF) An emerging standard for interchange of data between
        {CASE} tools.

        (1994-11-03)

CASE framework

        A set of products and conventions that allow CASE tools to be
        integrated into a coherent environment.

case insensitive

        {case sensitivity}

Case Integration Services

        <standard, programming> (CIS) A committee formed to discuss
        {CASE} tool integration standards related to {ATIS}.

        (1994-10-25)

CASE*Method

        An analysis and design method from {Oracle} targeted at
        information management applications.

        (1994-10-28)

case sensitive

        {case sensitivity}

case sensitivity

        <text> Whether a text matching operation distinguishes
        upper-{case} (capital) letters from lower case (is "case
        sensitive") or not ("case insensitive").

        Case in file names should be preserved (for readability) but
        ignored when matching (so the user doesn't have to get it
        right).  {MS-DOS} does not preserve case in file names, {Unix}
        preserves case and matches are case sensitive.

        Any decent {text editor} will allow the user to specify
        whether or not text searches should be {case sensitive}.

        Case sensitivity is also relevant in programming (most
        programming languages distiguish between case in the names of
        {identifiers}), and addressing ({Internet} {domain names} are
        case insensitive but {RFC 822} local {mailbox} names are case
        sensitive).

        Case insensitive operations are sometimes said to "fold case",
        from the idea of folding the character code table so that
        upper and lower case letters coincide.  The alternative "smash
        case" is more likely to be used by someone who considers this
        behaviour a {misfeature} or in cases where one case is
        actually permanently converted to the other.

        "{MS-DOS} will automatically smash case in the names of all
        the files you create".

        (1997-07-09)

CASE SOAP III

        Version of SOAP assembly language for IBM 650.  Listed in
        CACM 2(5):16 (May 1959).

case statement

        {switch statement}

CASE tools

        Software tools to help in the application of CASE methods to a
        software project.

cashe

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

        (1996-12-13)

CAST

        {Computer Aided Software Testing}

cast

        {explicit type conversion}

casters-up mode

        [IBM, probably from slang belly up] Yet another synonym for
        "broken" or "down".  Usually connotes a major failure.  A
        system (hardware or software) which is "down" may be already
        being restarted before the failure is noticed, whereas one
        which is "casters up" is usually a good excuse to take the
        rest of the day off (as long as you're not responsible for
        fixing it).

casting the runes

        <jargon> What a {guru} does when you ask him or her to run a
        particular program because it never works for anyone else;
        especially used when nobody can ever see what the guru is
        doing different from what J. Random Luser does.

        Compare {incantation}, {runes}, {examining the entrails}; also
        see the {AI koan} about Tom Knight.

        (1997-12-26)

CAT

        Common Abstract Tree Language.  R. Voeller & Uwe Schmidt, U
        Kiel, Germany 1983.  Universal intermediate language, used by
        Norsk Data in their family of compilers.  "A Multi-Language
        Compiler System with Automatically Generated Codegenerators,
        U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984).

cat

        <tool> (From "catenate") {Unix}'s command which copies one or
        more entire files to the screen or some other output sink
        without pause.

        See also {dd}, {BLT}.

        Among {Unix} fans, cat is considered an excellent example of
        user-interface design, because it delivers the file contents
        without such verbosity as spacing or headers between the files
        (the {pr} command can be used to do this), and because it does
        not require the files to consist of lines of text, but works
        with any sort of data.

        Among Unix haters, cat is considered the {canonical} example
        of *bad* user-interface design, because of its woefully
        unobvious name.  It is far more often used to {blast} a file
        to standard output than to concatenate files.  The name "cat"
        for the former operation is just as unintuitive as, say,
        LISP's {cdr}.

        Of such oppositions are {holy wars} made.

        (1994-11-29)

Cat 3

        {Category 3}

Cat 5

        {Category 5}

catatonic

        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

        <theory> A category K is a collection of objects, obj(K), and
        a collection of {morphisms} (or "{arrows}"), mor(K) such that

        1. Each morphism f has a "typing" on a pair of objects A, B
        written f:A->B.  This is read 'f is a morphism from A to B'.
        A is the "source" or "{domain}" of f and B is its "target" or
        "{co-domain}".

        2. There is a {partial function} on morphisms called
        {composition} and denoted by an {infix} ring symbol, o.  We
        may form the "composite" g o f : A -> C if we have g:B->C and
        f:A->B.

        3. This composition is associative: h o (g o f) = (h o g) o f.

        4. Each object A has an identity morphism id_A:A->A associated
        with it.  This is the identity under composition, shown by the
        equations id_B o f = f = f o id_A.

        In general, the morphisms between two objects need not form a
        {set} (to avoid problems with {Russell's paradox}).  An
        example of a category is the collection of sets where the
        objects are sets and the morphisms are functions.

        Sometimes the composition ring is omitted.  The use of
        capitals for objects and lower case letters for morphisms is
        widespread but not universal.  Variables which refer to
        categories themselves are usually written in a script font.

        (1997-10-06)

Category 3

        <hardware> (Cat 3, or "voice grade") An American Standards
        Institute standard for cables.  Used, e.g., for {100BaseVG}
        network cabling.

        (1998-06-30)

Category 5

        <hardware> (Cat 5) An American Standards Institute standard
        for cables.  Used, e.g., for {100BaseTX} cabling.

        (1998-06-30)

cathode ray tube

        <hardware> (CRT) An electrical device for displaying images by
        exciting phosphor dots with a scanned electron beam.  CRTs are
        found in computer {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.

        (1994-11-17)

CATIA

        <tool> A {CAD}/CAM system produced by Dassault Systemes and
        sold by {IBM}.  CATIA is used heavily in the car and aerospace
        industries.  It runs on various {Unix} platforms and {Windows
        NT}.

        {Home (http://www.catia.ibm.com/catmain.html)}.

        (1999-09-18)

cationic cocktail

        <hardware> (Or "Downy cocktail") Diluted fabric softener
        sprayed on computer room carpets to prevent static electricity
        from being built up by feet shuffling on carpet.

        The {canonical} cationic cocktail is one part unscented liquid
        fabric softener (in the US, usually "Downy" brand) to five
        parts water.

        "Cationic" is the chemical term for the most common active
        ingredient in fabric softeners.  The use of the term
        "cocktail" may be influenced by its use in other jargons,
        especially pharmacological and chemical, to denote a mixture
        which, like cationic cocktail, typically contains no alcohol
        and would be unwise to drink.

        (1998-04-04)

C/ATLAS

        <language> A DoD test language.  It is a variant of {ATLAS}.

        (1995-05-01)

CATNIP

        {Common Architecture for Next Generation Internet Protocol}

CATO

        FORTRAN-like CAI language for PLATO system on CDC 1604.  "CSL
        PLATO System Manual", L.A. Fillman, U Illinois, June 1966.

cause-effect graphing

        <programming> A testing technique that aids in selecting, in a
        systematic way, a high-yield set of test cases that logically
        relates causes to effects to produce test cases.  It has a
        beneficial side effect in pointing out incompleteness and
        ambiguities in specifications.

        (1996-05-10)

CAV

        {Constant Angular Velocity}

Cayenne Software

        <company> The company formed when {CADRE} merged with {Bachman
        Information Systems} in July 1996.

        {Home (www.cayennesoft.com)}.

        [Details?]

        (1998-02-06)

CAYLEY

        <mathematics, tool> 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: <cayley@maths.su.oz.au>.

        (1995-04-12)

cb

        {C Beautifier}

CBASIC

        A {BASIC} compiler by Gordon Eubanks, now at {Symantec}.  It
        evolved from/into {EBASIC}.

        (1994-11-29)

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} 1993-04-10.

        (1993-08-23)

CBD

        {component based development}

C Beautifier

        (cb) A {Unix} tool for reformatting {C} {source} code.

        {Unix manual page}: cb(1).

CBIR

        <image> {content-based information retrieval}.

        (1995-11-23)

CBN

        {call-by-name}

CBR

        {case based reasoning}

CBT

        {Computer-Based Training}

CBV

        {call-by-value}

cbw

        {Crypt Breakers Workbench}

cc

        <networking> The {country code} for the Cocos (Keeling)
        Islands.

        (1999-01-27)

CC++

        {Compositional C++}

C/C++

        1. {Borland C/C++}.

        2. {Watcom C/C++}.

        3. Either {C} or {C++}.

        (1996-04-06)

CCalc

        A {symbolic mathematics} system for {MS-DOS}, available from
        {Simtel}.

        (1995-04-12)

CCD

        {Charge-Coupled Device}

CCIRN

        Coordinating Committee for Intercontinental Research Networks.

CCITT

        Commite' Consultatif International de Telegraphique et
        Telephonique.  (International consultative committee on
        telecommunications and Telegraphy).

        CCITT changed its name to {ITU-T} on 1 March 1993.

        (1994-11-03)

CCITT HIgh-Level Language

        <language> (CHILL) A {real-time} language widely used in
        telecommunications.  CHILL was developed in the 1970s and
        improved in 1984, 1988, 1992, and 1996.  It is used in several
        countries including Germany, Norway, Brasil, and South Korea.

        {Cygnus} are developing a compiler based on {gcc}.

        {(http://www1.informatik.uni-jena.de/languages/chill/chill.htm)}.

        ["An Analytical Description of CHILL, the CCITT High Level
        Language", P. Branquart, LNCS 128, Springer 1982].

        ["CHILL User's Manual", ITU, 1986, ISBN 92-61-02601-X.
        ISO-9496 (1988?)].

        (1997-01-20)

CCL

        1. Coral Common LISP.

        2. Computer Control Language.  English-like query language
        based on COLINGO, for IBM 1401 and IBM 1410.

CCLU

        Cambridge CLU.  {CLU} extended to support {concurrency},
        distributed programming and {remote procedure call}, by
        G. Hamilton et al at {CUCL}.

        E-mail: Jean Bacon <jmb@cl.cam.ac.uk>.

        (1994-10-13)

ccmail

        It's written {cc:mail}.

cc:mail

        <tool, product> Commercial {electronic mail} software by
        {Lotus Corporation} for {Microsoft Windows}.

        (1995-03-14)

CCP

        {Concurrent Constraint Programming}

        Not a language, but a general approach.

CCR

        1. {condition code register}.

        2. (Database) {concurrency control and recovery}.

CCS

        1. <networking> {Common Communication Services}.

        2. <language, parallel> {Calculus of Communicating Systems}.

        3. <history> {Computer Conservation Society}.

        4. <storage, standard> {Common Command Set}.

        5. <communications> {Centi-Call Second}.

        (1997-10-22)

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: <info@open.gov.uk>.

        Address: Norwich, UK.

        (1995-01-18)

CD

        {Compact Disc}

cd

        1. <operating system> {change directory}.

        2. <networking> The {country code} for the Democratic Republic
        of the Congo (formerly Zaire, {zr}).

        (1999-01-27)

CDA

        1. <file format> {Compound Document Architecture}.

        2. <legal> {Communications Decency Act}.

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

        (1996-07-11)

CDF

        Common Data Format.  A library and toolkit for
        multi-dimensional data sets.

CD-i

        {Compact Disc interactive}

CDIF

        {CASE Data Interchange Format}

CDL

        1. Computer Definition [Design?] Language.  A hardware
        description language.  "Computer Organisation and
        Microprogramming", Yaohan Chu, P-H 1970.

        2. Command Definition Language.  Portion of ICES used to
        implement commands.  Sammet 1969, p.618-620.

        3. Compiler Description Language.  C.H.A. Koster, 1969.
        Intended for implementation of the rules of an affix grammar
        by recursive procedures.  A procedure may be a set of
        tree-structured alternatives, each alternative is executed
        until one successfully exits.  Used in a portable COBOL-74
        compiler from MPB, mprolog system from SzKI, and the Mephisto
        chess computer.  "CDL: A Compiler Implementation Language", in
        Methods of Algorithmic Language Implementation, C.H.A. Koster,
        LNCS 47, Springer 1977, pp.341-351.  "Using the CDL Compiler
        Compiler", C.H.A. Koster, 1974.  Versions: CDL2, CDLM used at
        Manchester.

        4. Common Design Language.  "Common Design Language", IBM,
        Software Engineering Inst, Sept 1983.

        5. Control Definition Language.  Ideas which contributed to
        Smalltalk.

        ["Control Structures for Programming Languges", David
        A. Fisher, PhD Thesis, CMU 1970].

CDM

        1. {Content Data Model}

        2. {Code Division Multiplexing}

CDMA

        {Code Division Multiple Access}

CDP1802

        {RCA 1802}

CDPD

        {Cellular Digital Packet Data}

cdr

        /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-Read-Write

        {Compact Disc Rewritable}

CD-Rewritable

        {Compact Disc Rewritable}

CD-ROM

        {Compact Disc Read-Only Memory}

CD-ROM drive

        {Compact Disc Read-Only Memory}

CD-RW

        {Compact Disc Rewritable}

CDS

        {Concrete Data Structure}

cd tilde

        /C-D til-d*/ To go home.  From the {Unix} {C shell} and
        Korn-shell command "cd ~", which takes one to one's "$HOME"
        directory.  "cd" with no arguments does the same thing.

        (1994-10-28)

CE

        {IBM Customer Engineer}

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

        (1994-10-28)

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

        (1995-01-26)

CEEMAC+

        Graphics language for DOS 3.3 on {Apple II}.

CEI-PACT

        Central European Initiative on Parallel Computation.

Celeron

        <processor> {Intel Corporation}'s trade name for its family of
        {Pentium II} {microprocessors} meant for use in low-end
        computers.

        The Celeron is constructed on the 0.25 micron Deschutes base.
        {Clock rates} of 266, 300 and 333 {MHz} are supported.  It is
        built on the same {daughterboard} as the Pentium II without
        the black plastic case and {heat sink}.  Four Celeron models
        are in production as of October 1998.  The 266 and 300 MHz
        models are essentially Pentium II {CPU}s without the Level 2
        {cache} {RAM}.  The 300A and 333 MHz Celerons include 128k of
        Level 2 cache.

        A special mounting bracket on the motherboard is used to
        secure the Celeron in place in its standard 242-pin Slot 1
        socket.  Intel calls the caseless design SEPP (Single Edge
        Processor Package) to differentiate it from the Pentium II SEC
        (Single Edge Cartridge).  Some believe that the real purpose
        for the different mounting configurations is to prevent users
        from placing lower cost processors onto Pentium II
        motherboards.

        A Celeron is about one third the cost of a similar speed
        Pentium II.  Hardware {hackers} claim that the Celeron 300
        without Level 2 cache could be {overclocked} to perform as
        well as a Pentium II at a fraction of the price.

        {Home (http://www.intel.com/Celeron/)}.

        {Tom's Hardware (http://www2.tomshardware.com/cpuslot1.html)}.

        (1998-10-06)

CELIP

        A cellular language for {image processing}.

        ["CELIP: A cellular Language for Image Processing",
        W. Hasselbring <willi@informatik.uni-essen.de>, Parallel
        Computing 14:99-109 (1990)].

        (1994-12-05)

cell

        <networking> {ATM}'s term for a {packet}.

        (1996-08-21)

Cellang

        See {Cellular}.

CELLAS

        CELLular ASsemblies.

        A {concurrent} {block-structured} language.

        [Mentioned in "Attribute Grammars", LNCS 323, p.97].

        (1994-12-05)

Cello

        {World-Wide Web} {browser} {client} for {IBM 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)].

        (1994-12-05)

Cellular

        A system for {cellular automata} programming by J Dana Eckart
        <dana@rucs.faculty.cs.runet.edu> Version 2.0 includes a
        {byte-code compiler}, {run-time system} and a viewer.

        Posted to comp.sources.Unix, volume 26.

        See also {Cellang}.

        (1993-04-03)

cellular automata

        {cellular automaton}

cellular automaton

        <algorithm, parallel> (CA, plural "- automata") A regular
        spatial lattice of "cells", each of which can have any one of
        a finite number of states.  The state of all cells in the
        lattice are updated simultaneously and the state of the entire
        lattice advances in discrete time steps.  The state of each
        cell in the lattice is updated according to a local rule which
        may depend on the state of the cell and its neighbors at the
        previous time step.

        Each cell in a cellular automaton could be considered to be a
        {finite state machine} which takes its neighbours' states as
        input and outputs its own state.

        The best known example is J.H. Conway's game of {Life}.

        {FAQ
        (http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html)}.

        {Usenet} newsgroups: {news:comp.theory.cell-automata},
        {news:comp.theory.self-org-sys}.

        (1995-03-03)

Cellular Digital Packet Data

        <communications, protocol> (CDPD) A wireless standard
        providing two-way, 19.2 kbps {packet} data transmission over
        exisiting {cellular telephone} channels.

        [Reference?]

        (1994-12-05)

cellular multiprocessing

        <architecture, parallel> (CMP) The partitioning of
        {processors} into separate computing environments running
        different {operating systems}.

        The term cellular multiprocessing appears to have been coined
        by {Unisys}, who are developing a system where computers
        communicate as clustered machines through a high speed {bus},
        rather than through communication {protocols} such as
        {TCP/IP}.

        The Unisys system is based on {Intel} processors, initially
        the {Pentium II Xeon} and moving on to the 64-bit {Merced}
        processors later in 1999.  It will be scalable from four up to
        32 processors, which can be clustered or partitioned in
        various ways.  For example a sixteen processor system could be
        configured as four {Windows NT} systems (each functioning as a
        four-processor {symmetric multiprocessing} system), or an
        8-way NT and 8-way {Unix} system.

        Supported operating systems will be {Windows NT}, {SCO}'s
        {Unixware} 7.0, Unisys' {SVR4} {Unix} and possibly the OS2200
        and MCP-AS {mainframe} operating systems (with the assistance
        of Unisys' own dedicated {chipset}).

        {Home (http://www.marketplace.unisys.com/ent/cmp.html)}.

        (1998-09-09)

Cellular Neural Network

        <architecture> (CNN) The CNN Universal Machine is a low cost,
        low power, extremely high speed {supercomputer} on a chip.  It
        is at least 1000 times faster than equivalent {DSP} solutions
        of many complex {image processing} tasks.  It is a stored
        program supercomputer where a complex sequence of image
        processing {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].

        (1995-04-27)

CELP

        <language> Computationally Extended Logic
        Programming.

        ["Computationally Extended Logic Programming", M.C. Rubenstein
        et al, Comp Langs 12(1):1-7 (1987)].

        (1995-04-27)

CEN

        Conseil Europen pour la Normalisation.

        A body coordinating {standard}isation activities in the EEC
        and EFTA countries.

        (1994-12-14)

CENELEC

        <body, standard> The European Committee for Electrotechnical
        Standardization.  A body developing electrotechnical standards
        for the Single European Market / European Economic Area in
        order to reduce internal frontiers and trade barriers for
        electrotechnical products, systems and services.  CENELEC's 19
        member countries and 11 affiliate countries aim to adopt and
        implement the required standards, which are mostly identical
        to the {International Electrotechnical Commission} (IEC)
        standards.  CENELEC works in co-operation with {Comit
        Europen de Normalisation} (CEN) and {European
        Telecommunications Standards Institute} (ETSI).

        (1999-09-28)

Centi-Call Second

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

        (1997-10-22)

central office

        <communications> The place where telephone companies terminate
        customer lines and locate switching equipment to interconnect
        those lines with other networks.

        (1995-03-20)

central processing unit

        <architecture, processor> (CPU, processor) The part of a
        computer which controls all the other parts.  Designs vary
        widely but, in general, the CPU consists of the {control
        unit}, the {arithmetic and logic unit} (ALU) and memory
        ({registers}, {cache}, {RAM} and {ROM}) as well as various
        temporary buffers and other logic.

        The control unit fetches instructions from memory and decodes
        them to produce signals which control the other part of the
        computer.  This may cause it to transfer data between memory
        and ALU 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 term "processor" has to some extent replaced "CPU", though
        RAM and ROM are not normally considered as part of a
        processor.  This is particularly true of common modern
        {microprocessors} though there have been microprocessors which
        include RAM and/or ROM on the same {integrated circuit}.

        The {CPU Info Center} lists many kinds of CPU.

        (1998-10-21)

Centronics

        <hardware, printer> (Named after the company who first used
        it(?)) A {parallel interface} for printers, found on many
        {microcomputers}.

        [Pin-out?  Origin?]

        (1998-03-15)

Centrum voor Wiskunde en Informatica

        (CWI, Centre for Mathematics and Computer Science) An
        independent research institute active in the fields of
        mathematics and computer science.  CWI also aims to transfer
        new knowledge in these fields to society, trade and industry

        CWI is funded for 70 percent by NWO, the National Organisation
        for Scientific Research.  The remaining 30 percent is obtained
        through national and international programmes and contract
        research commissioned by industry.

        Address: Kruislaan 413, 1098 SJ Amsterdam, The Netherlands;
        P.O.Box 94079, 1090 GB Amsterdam, The Netherlands.

        Telephone: +31 (20) 5929 333.

        {Home (http://www.cwi.nl/)}

        {(ftp://ftp.cwi.nl/pub/)}.

century meltdown

        {Year 2000}

cepstra

        {cepstrum}

cepstrum

        <mathematics> (Coined in a 1963 paper by Bogert, Healey, and
        Tukey) The {Fourier transform} of the log-magnitude spectrum:

                fFt(ln( | fFt(window . signal) | ))

        This function is used in {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?]

        (1997-01-07)

CEPT

        {Comite Europeen des Postes et Telecommunications}

CER

        {Canonical Encoding Rules}

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

        (1994-12-14)

Cerf, Vint

        {Vint Cerf}

CERN

        The European Laboratory for Particle Physics.

CERNLIB

        The CERN Program Library.

CERT

        {Computer Emergency Response Team}

Certificate Authority

        <cryptography, body> (CA or "Trusted Third Party") An entity
        (typically a company) that issues {digital certificates} to
        other entities (organisations or individuals) to allow them to
        prove their identity to others.  A Certificate Authority might
        be an external company such as {VeriSign} that offers digital
        certificate services or they might be an internal organisation
        such as a corporate {MIS} department.  The Certificate
        Authority's chief function is to verify the identity of
        entities and issue digital certificates attesting to that
        identity.

        The process uses {public key cryptography} to create a
        "network of trust".  If I want to prove my identity to you, I
        ask a CA (who you trust to have verified my identity) to
        encrypt a {hash} of my signed key with their {private key}.
        Then you can use the CA's {public key} to decrypt the hash and
        compare it with a hash you calculate yourself.  Hashes are
        used to decrease the amount of data that needs to be
        transmitted.  The hash function must be {cryptographically
        strong}, e.g. {MD5}.

        {(http://home.netscape.com/comprod/server_central/support/faq/certifica
te_faq.html#11)}.

        (1998-03-30)

CESP

        {Common ESP}

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

        (1994-12-14)

cextract

        <programming, tool> A {C} {prototype} extractor by Adam Bryant
        <adb@cs.bu.edu>.  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.

        (1992-11-03)

cf

        <networking> The {country code} for the Central African
        Republic.

        (1999-01-27)

CFD

        Computational Fluid Dynamics.

        A {FORTRAN}-based parallel language for the {Illiac IV}.

        (1994-11-29)

CFML

        {ColdFusion Markup Language}

cforth

        A {Forth} {interpreter}.

        Posted to comp.sources.unix volume 1.

        (1994-11-29)

cfortran.h

        A transparent, machine independent interface between {C} and
        {FORTRAN} routines and global data by Burkhard Burow
        <burow@vxdesy.cern.ch>. 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.

        (1992-04-12)

CFP

        1. {Constraint Functional Programming}.

        2. {Communicating Functional Processes}.

        3. Call For Papers (for a conference).

CFP92

        {SPEC CFP92}

cg

        <networking> The {country code} for Congo.

        (1999-01-27)

CGA

        {Color Graphics Adapter}

CGGL

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

        (1994-10-24)

CGI

        1. <World-Wide Web> {Common Gateway Interface}.

        2. <graphics> {computer-generated imagery}.

        3. <company> A French {software engineering} vendor in the US.

        4. <company> {Computer Generation Incorporated}.

        (1997-02-11)

cgi-bin

        {Common Gateway Interface}

CGI Joe

        <job, abuse> (From "GI Joe") A hard-core {CGI} script
        programmer with all the social skills and charisma of a
        plastic action figure.

        (1997-03-30)

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 <napi@cs.indiana.edu>.  A program
        (f-f-d.s) extracts the FIRST/FOLLOW/DIRECTOR sets.

        {(ftp://primost.cs.wisc.edu/pub/comp.compilers/cgram-ll1.Z)}

ch

        <networking> The {country code} for Switzerland.

        (1999-01-27)

chad

        <jargon, printer> /chad/ (Or "selvage" /sel'v*j/ (sewing and
        weaving), "{perf}", "perfory", "snaf").  1. The perforated
        edge strips on paper for {sprocket feed} printers, after they
        have been separated from the printed portion.

        The term {perf} may also refer to the perforations themselves,
        rather than the chad they produce when torn.

        [ Why "snaf"?]

        2. (Or "chaff", "computer confetti", "keypunch droppings") The
        confetti-like bits punched out of {punched cards} or {paper
        tape} which collected in the {chad box}.

        One correspondent believes "chad" derives from the {Chadless
        keypunch}.

        (1997-07-18)

chad box

        <hardware> ({IBM} called this a "chip box") A metal box about
        the size of a lunchbox (or in some models a large
        wastebasket), for collecting the {chad} that accumulated in
        {Iron Age} {card punches}.  You had to open the covers of the
        card punch periodically and empty the chad box.

        The {bit bucket} was notionally the equivalent device in the
        {CPU} enclosure, which was typically across the room in
        another great grey-and-blue box.

        (1996-11-20)

Chadless keypunch

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

        (1997-02-12)

chain

        1. <operating system> (From {BASIC}'s "CHAIN" statement) To
        pass control to a child or successor without going through the
        {operating system} {command interpreter} that invoked you.
        The state of the parent program is lost and there is no
        returning to it.  Though this facility used to be common on
        memory-limited {microcomputers} and is still widely supported
        for {backward compatibility}, the jargon usage is
        semi-obsolescent; in particular, {Unix} calls this {exec}.

        Compare with the more modern "{subshell}".

        2. <programming> A series of linked data areas within an
        {operating system} or {application program}.  "Chain rattling"
        is the process of repeatedly running through the linked data
        areas searching for one which is of interest.  The implication
        is that there are many links in the chain.

        3. <theory> A possibly infinite, non-decreasing sequence of
        elements of some {total ordering}, S

                x0 <= x1 <= x2 ...

        A chain satisfies:

                for all x,y in S, x <= y \/ y <= x.

        I.e. any two elements of a chain are related.

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

        (1995-02-03)

Challenge-Handshake Authentication Protocol

        <networking, security, standard, protocol> (CHAP) An
        {authentication} scheme used by {PPP} servers to validate the
        identity of the originator of the connection upon connection
        or any time later.

        CHAP applies a three-way {handshaking} procedure.  After the
        link is established, the server sends a "challenge" message to
        the originator.  The originator responds with a value
        calculated using a {one-way hash function}.  The server checks
        the response against its own calculation of the expected hash
        value.  If the values match, the authentication is
        acknowledged; otherwise the connection is usually terminated.

        CHAP provides protection against {playback} attack through the
        use of an incrementally changing identifier and a variable
        challenge value.  The authentication can be repeated any time
        while the connection is open limiting the time of exposure to
        any single attack, and the server is in control of the
        frequency and timing of the challenges.  As a result, CHAP
        provides grater security then {PAP}.

        CHAP is defined in {RFC} 1334.

        (1996-03-05)

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

        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 Gteborg, SWEDEN.

        Telephone: +46 (31) 772 10 00.  Fax: +46 (31) 772 38 72.

        (1995-02-16)

change management

        A set of techniques that aid in evolution, composition and
        policy management of the design and implementation of an
        object or system.

        (1995-02-16)

channel

        <chat> (Or "chat room", "room", depending on the system in
        question) The basic unit of group discussion in {chat} systems
        like {IRC}.  Once one joins a channel, everything one types is
        read by others on that channel.  Channels can either be named
        with numbers or with strings that begin with a "#" sign and
        can have topic descriptions (which are generally irrelevant to
        the actual subject of discussion).

        Some notable channels are "#initgame", "#hottub" and
        "#report".  At times of international crisis, "#report" has
        hundreds of members, some of whom take turns listening to
        various news services and typing in summaries of the news, or
        in some cases, giving first-hand accounts of the action
        (e.g. Scud missile attacks in Tel Aviv during the Gulf War in
        1991).

        (1998-01-25)

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

        (1994-11-29)

channel op

        <messaging> /chan'l op/ (Or "{op}", "chan op", "chop") Someone
        who is endowed with privileges on a particular {IRC}
        {channel}.  These privileges include the right to {kick}
        users, to change various status bits and to make others into
        CHOPs.

        The full form, "channel operator", is almost never used.

        (1998-01-08)

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.

        (1995-01-30)

channel service unit/data service unit

        <communications, hardware> (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.

        (1995-02-28)

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
        <rgholt@voyager.jpl.nasa.gov> and D. Lynn Holt
        <lholt@seraph1.sewanee.edu>.
        {(ftp://mrcnext.cso.uiuc.edu/pub/etext/ippe/preprints/Phil_of_Science/H
olt_and_Holt.On_Defining_Chaos)}]

        Fixed precision {floating-point} arithmetic, as used by most
        computers, may actually introduce chaotic dependence on
        initial conditions due to the accumulation of rounding errors
        (which constitutes a non-linear system).

        (1995-02-07)

CHAP

        {Challenge-Handshake Authentication Protocol}

char

        <programming> /keir/ or /char/; rarely, /kar/ character.
        Especially used by {C} programmers, as "char" is {C}'s
        typename for character data.

        (1994-11-29)

character

        <character> An {atom} in a {character repertoire}.

        Compare with {glyph}.

        (1998-10-18)

character encoding

        <character> (Or "character encoding scheme") A mapping of
        {binary} values to {code positions} and back; generally a 1:1
        ({bijective}) mapping.

        In the case of {ASCII}, this is generally a f(x)=x mapping:
        code point 65 maps to the byte value 65, and vice versa.  This
        is possible because ASCII uses only code positions
        representable as single bytes, i.e., values between 0 and 255,
        at most.  ({US-ASCII} only uses values 0 to 127, in fact.)

        {Unicode} and many {CJK} {coded character sets} use many more
        than 255 positions, requiring more complex mappings: sometimes
        the characters are mapped onto pairs of bytes (see {DBCS}).
        In many cases, this breaks programs that assume a one-to-one
        mapping of bytes to characters, and so, for example, treat any
        occurrance of the byte value 13 as a {carriage return}.  To
        avoid this problem, character encodings such as {UTF-8} were
        devised.

        (1998-10-18)

character encoding scheme

        {character encoding}

character graphics

        {ASCII art}

characteristic function

        <mathematics> The characteristic function of set returns True
        if its argument is an element of the set and False otherwise.

        (1995-04-13)

character repertoire

        <character> The set of all {characters} onto which a {coded
        character set} maps {integers} ({code positions}).

        For example, consider these two simple coded character sets:

         Coded Character Set One:
          integer 0  ->  the character "A"
          integer 1  ->  the character "B"

         Coded Character Set Two:
          integer 0  ->  the character "B"
          integer 1  ->  the character "A"

        Both of these coded character sets map to the characters "A"
        and "B", so they have the same character repertoire.  But
        since the mapping is different (and obviously incompatible),
        these are different coded character sets.

        (1998-12-17)

character set

        <character> 1. A particular mapping between {characters} and
        {byte strings}, i.e. the combination of a particular
        {character encoding} (which maps between byte strings and
        {integers}) and a particular {coded character set} (which maps
        between integers and characters).

        For example: {ASCII} (the ASCII coded character set, encoded
        directly as single-byte values), or {UTF-8} (the Unicode coded
        character set, encoded with an 8-bit transformation method).

        2. Occasionally: a {character repertoire}; or a {coded
        character set}.

        (1998-12-17)

character set identifier

        <character> (CSID) (IBM) A number that identifies a {character
        set}.

        (1995-03-21)

Charge-Coupled Device

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

        (1995-01-04)

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
        <fukushim@cpsc.ucalgary.ca>.

        ["About Charity", J.R.B. Cockett <cockett@cpcs.ucalgary.ca> et
        al].

        (1994-11-29)

charityware

        /cha'rit-ee-weir`/  Synonym {careware}.

Charles Babbage

        <person> The british inventor known to some as the "Father of
        Computing" for his contributions to the basic design of the
        computer through his {Analytical Engine}.  His previous
        {Difference Engine} was a special purpose device intended for
        the production of mathematical tables.

        Babbage was born on December 26, 1791 in Teignmouth,
        Devonshire UK.  He entered Trinity College, Cambridge in 1814
        and graduated from Peterhouse.  In 1817 he received an MA from
        Cambridge and in 1823 started work on the Difference Engine
        through funding from the British Government.  In 1827 he
        published a table of {logarithms} from 1 to 108000.  In 1828
        he was appointed to the Lucasian Chair of Mathematics at
        Cambridge (though he never presented a lecture).  In 1831 he
        founded the British Association for the Advancement of Science
        and in 1832 he published "Economy of Manufactures and
        Machinery".  In 1833 he began work on the Analytical
        Engine. In 1834 he founded the Statistical Society of London.
        He died in 1871 in London.

        Babbage also invented the cowcatcher, the dynamometer,
        standard railroad gauge, uniform postal rates, occulting
        lights for lighthouses, Greenwich time signals, and the
        heliograph opthalmoscope.  He also had an interest in cyphers
        and lock-picking.

        [Adapted from the text by J. A. N. Lee, Copyright September
        1994].

        Babbage, as (necessarily) the first person to work with
        machines that can attack problems at arbitrary levels of
        {abstraction}, fell into a trap familiar to {toolsmiths}
        since, as described here by the English ethicist, Lord
        Moulton:

        "One of the sad memories of my life is a visit to the
        celebrated mathematician and inventor, Mr Babbage.  He was far
        advanced in age, but his mind was still as vigorous as ever.
        He took me through his work-rooms.  In the first room I saw
        parts of the original Calculating Machine, which had been
        shown in an incomplete state many years before and had even
        been put to some use.  I asked him about its present form.  'I
        have not finished it because in working at it I came on the
        idea of my {Analytical Machine}, which would do all that it
        was capable of doing and much more.  Indeed, the idea was so
        much simpler that it would have taken more work to complete
        the Calculating Machine than to design and construct the other
        in its entirety, so I turned my attention to the Analytical
        Machine.'"

        "After a few minutes' talk, we went into the next work-room,
        where he showed and explained to me the working of the
        elements of the Analytical Machine.  I asked if I could see
        it.  'I have never completed it,' he said, 'because I hit upon
        an idea of doing the same thing by a different and far more
        effective method, and this rendered it useless to proceed on
        the old lines.'  Then we went into the third room.  There lay
        scattered bits of mechanism, but I saw no trace of any working
        machine.  Very cautiously I approached the subject, and
        received the dreaded answer, 'It is not constructed yet, but I
        am working on it, and it will take less time to construct it
        altogether than it would have token to complete the Analytical
        Machine from the stage in which I left it.'  I took leave of
        the old man with a heavy heart."

        "When he died a few years later, not only had he constructed
        no machine, but the verdict of a jury of kind and sympathetic
        scientific men who were deputed to pronounce upon what he had
        left behind him, either in papers or in mechanism, was that
        everything was too incomplete of be capable of being put to
        any useful purpose."

        [Lord Moulton, "The invention of algorithms, its genesis, and
        growth", in G. C. Knott, ed., "Napier tercentenary memorial
        volume" (London, 1915), p.  1-24; quoted in Charles Babbage
        "Passage from the Life of a Philosopher", Martin
        Campbell-Kelly, ed. (Rutgers U. Press and IEEE Press, 1994),
        p. 34].

        Compare: {uninteresting}, {Ninety-Ninety Rule}.

        (1996-02-22)

Charles Simonyi

        <person> {Microsoft} {programmer}, most famously responsible
        for {Hungarian Notation}.

        Simonyi was born in Budapest in 1948, and for more than a
        decade was senior {programmer} at {Microsoft} in Redmond.

        (1999-05-25)

CHARM

        An explicitly parallel programming language based on {C}, for
        both shared and nonshared {MIMD} computers.

        {(ftp://a.cs.uiuc.edu/pub/CHARM)}

        Mailing list: <charm@cs.uiuc.edu>.

        ["The CHARM(3.2) Programming Language Manual", UIUC (Dec
        1992)].

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 <sanjeev@cs.uiuc.edu>.

        [TR 1796, UIUC].

        (1994-11-29)

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: <cras@bull.fr>.

        ["Charme Reference Manual", AI Development Centre, Bull,
        France 1990].

        (1994-11-15)

CHARYBDIS

        A {Lisp} program to display mathematical expressions.  It is
        related to {MATHLAB}.

        [Sammet 1969, p. 522].

        (1994-11-15)

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

        (1995-05-11)

CHASM

        CHeap ASseMbler.

        A {shareware} {assembler} for {MS-DOS}.

        (1994-11-15)

chat

        <chat, tool, networking, messaging> 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}, {<g>}, {<gr&d>}, {BBL}, {HHOK}, {NHOH}, {ROTFL}, {AFK},
        {b4}, {TTFN}, {TTYL}, {OIC}, {re}.

        Much of the chat style is identical to (and probably derived
        from) {Morse code} jargon used by ham-radio amateurs since the
        1920s, and there is, not surprisingly, some overlap with {TDD}
        jargon.  Most of the 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/)}.

        (1998-01-25)

chatbot

        <chat> (Or "chatterbot") A {bot} meant to be able to interact
        conversationally with humans.  A chatbot is either an exercise
        in {AI} or merely as an interface, as in an {infobot}.

        One of the first and most famous chatterbots (prior to the
        Web) was {Eliza}.

        (1999-06-19)

chat room

        {channel}

chatterbot

        {chatbot}

cheapernet

        <networking> (Or "thinnet") A colloquial term for thin-wire
        {Ethernet} ({10base2}) that uses {RG58} {coaxial cable}
        instead of the full-spec "Yellow Cable".

        (1995-03-28)

checkdigit

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

        (1994-11-14)

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.

        (1995-02-07)

checksum

        <storage, communications> A computed value which depends on
        the contents of a block of data and which is transmitted or
        stored along with the data in order to detect corruption of
        the data.  The receiving system recomputes the checksum based
        upon the received data and compares this value with the one
        sent with the data.  If the two values are the same, the
        receiver has some confidence that the data was received
        correctly.

        The checksum may be 8 bits (modulo 256 sum), 16, 32, or some
        other size.  It is computed by summing the bytes or words of
        the data block ignoring {overflow}.  The checksum may be
        negated so that the total of the data words plus the checksum
        is zero.

        {Internet} {packets} use a 32-bit checksum.

        See also {digital signature}, {cyclic redundancy check}.

        (1996-03-01)

chemist

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

        (1995-02-07)

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

        <games> A two-player {game} with {perfect information}.

        {Usenet} newsgroup: {news:rec.games.chess}.

        See also {Internet Chess Server}.

        (1995-03-25)

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

        <spelling> It's spelled "{chiclet keyboard}".

        (1997-05-16)

chiclet keyboard

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

        (1997-05-16)

child

        {daughter}

child process

        <operating system> A {process} created by another process (the
        {parent process}).  Each process may create many child
        processes but will have only one parent process, except for
        the very first process which has no parent.  The first
        process, called {init} in {Unix}, is started by the {kernel}
        at {boot time} and never terminates.  A child process inherits
        most of its attributes, such as open files, from its parent.
        In fact in Unix, a child process is created (using {fork}) as
        a copy of the parent.  The chid process can then overlay
        itself with a different program (using {exec}) as required.

        (1997-11-22)

child record

        <database> A {record} lower in the hierarchical tree than a
        parent record; it is also directly liked to the parent and
        hierarchical {database}s.

        (1995-04-13)

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.

        (1994-11-08)

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.

        (1994-12-02)

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

        (1994-11-15)

        2. {Constraint Handling In Prolog}.

chip

        {integrated circuit}

CHIP-48

        A reimplementation of {CHIP-8} for the {HP-48} calculator by
        Andreas Gustafson <gson@niksula.hut.fi>.

        Posted to {news:comp.sys.handhelds} in Sep 1990.

        {(ftp://vega.hut.fi/pub/misc/hp48sx/asap)}

        (1994-12-02)

CHIP-8

        <games, language>

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

        (1994-12-02)

chip box

        {chad box}

Chip Jewelry

        <jargon> A euphamism for old computers destined to be scrapped
        or turned into decorative ornaments.  "I paid three grand for
        that {Mac SE}, and now it's nothing but chip jewelry."

        (1997-03-30)

Chip Scale Packaging

        <hardware> (CSP) Surface Mount International attendees debated
        chip scale technologies as system manufacturers seek new
        levels of package miniaturisation 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?]

        (1996-07-09)

chip set

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

        (1995-03-27)

Chips & Technologies

        <company> An {integrated circuit} design company.  They
        produce {IBM PC} {chipset}s, among other things.

        Address: Silicon Valley, California, USA.

        (1995-04-08)

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

        <file system> ("Change mode") The {Unix} command and {system
        call} to change the access {permissions} of a named file.
        Each file (directory, device, etc.) has nine kinds of access
        which can be allowed or denied.  Different permissions apply
        to the owner of the file, the members of the group the file
        belongs to, and all users.  Each of these classes of user
        (owner, group and other) can have permission to read, write or
        execute the file.  Chmod can also set various other mode bits
        for a file or directory such as the {sticky bit} and the {set
        user id} bit.

        Unix {man} page: chmod

        (1995-01-31)

CHOCS

        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

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

        (1996-06-01)

CHOP

        {channel op}

Chop

        A {code generator} by Alan L. Wendt <wendt@CS.ColoState.EDU>
        for the {lcc} {C} compiler {front end}.  Version 0.6 is
        interfaced with Fraser and Hanson's {lcc} {front end}.  The
        result is a {C} compiler with good code selection but no
        {global optimisation}.  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].

        (1993-04-28)

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

Christopher Strachey

        <person> Professor of Computation at Oxford, England, born
        1916, died May 1975.  He invented the term "{currying}".

        See also: {General Purpose Macro-generator}.

        (1998-06-29)

chrome

        <jargon> (From automotive slang via wargaming) Showy
        {features} added to attract users but contributing little or
        nothing to the power of a system.

        "The 3D icons in {Motif} are just chrome, but they certainly
        are *pretty* chrome!"

        Chrome is distinguished from {bells and whistles} by the fact
        that the latter are usually added to gratify developers' own
        desires for featurefulness.  Often used as a term of contempt
        and sometimes used in conjunction with 'fluff', "all the fluff
        and chrome that comes with Motif".

        (1997-09-19)

chroot

        <operating system> The {UNIX} command to make the {root
        directory} (/) become something other than its default for the
        lifetime of the current process.  It can only be run by
        privileged users and is used to give a process (commonly a
        network server such as {FTP} or {HTTP}) access to a restricted
        portion of the {file system}.

        The new root contains copies of all the essential files and
        directories, e.g. /lib, /dev/tty, /tmp.

        (1996-12-08)

CHRP

        {PowerPC Platform}

chug

        <jargon> To run slowly; to {grind} or {grovel}.  "The disk is
        chugging like crazy."

        (1995-03-25)

chunker

        <programming> A program like {Unix}'s "split" which breaks an
        input file into parts, usually of a pre-set size, e.g. the
        maximum size that can fit on a {floppy}.  The parts can then
        be assembled with a {dechunker}, which is usually just the
        chunker in a different mode.

        (1998-12-15)

Church, Alonzo

        {Alonzo Church}

Church integer

        A representation of integers as functions invented by {Alonzo
        Church}, inventor of {lambda-calculus}.  The integer N is
        represented as a {higher-order function} which applies a given
        function N times to a given expression.  In the {pure
        lambda-calculus} there are no constants but numbers can be
        represented by Church integers.

        A {Haskell} function to return a given Church integer could be
        written:

                church n = c
                           where
                           c f x = if n == 0 then x else c' f (f x)
                                   where
                                   c' = church (n-1)

        A function to turn a Church integer into an ordinary integer:

                unchurch c = c (+1) 0

        See also {von Neumann integer}.

        (1994-11-29)

Church of the SubGenius

        <body, humour> A mutant offshoot of {Discordianism} launched
        in 1981 as a spoof of fundamentalist Christianity by the
        "Reverend" Ivan Stang, a brilliant satirist with a gift for
        promotion.  Popular among hackers as a rich source of bizarre
        imagery and references such as "Bob" the divine
        drilling-equipment salesman, the Benevolent Space Xists, and
        the Stark Fist of Removal.  Much SubGenius theory is concerned
        with the acquisition of the mystical substance or quality of
        {slack}.

        {Home (http://sunsite.unc.edu/subgenius/slack.html)}

        (1996-01-02)

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.

        (1995-01-25)

ci

        <networking> The {country code} for Cote d'Ivoire (the Ivory
        Coast).

        (1999-01-27)

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.

        (1995-01-25)

CICERO

        Control Information system Concepts based on Encapsulated
        Real-time Objects.

        A {CERN} {DRDC} proposal.

        (1995-01-25)

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

        (1995-01-25)

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

        (1995-01-25)

CIFS

        {Common Internet File System}

Cigale

        <language, tool> A {parser generator} language with extensible
        {syntax}.

        ["CIGALE: A Tool for Interactive Grammar Construction and
        Expression Parsing", F. Voisin, Sci Comp Prog 7:61-86, 1986].

        (1999-01-14)

CIL

        1. <project> {Component Integration Laboratories}.

        2. <language> {Common Intermediate Language}.

        (1999-01-14)

CIM

        {Computer Integrated Manufacturing}

CIMS PL/I

        <language> A {PL/I} subset from the Courant Institute of
        Mathematical Sciences.

        ["CIMS PL/I", P.W. Abrahams, Courant Inst].

        (1997-12-15)

Cinderella Book

        <publication> "Introduction to Automata Theory, Languages, and
        Computation", by John Hopcroft and Jeffrey Ullman,
        (Addison-Wesley, 1979).  So called because the cover depicts a
        girl (putatively Cinderella) sitting in front of a Rube
        Goldberg device and holding a rope coming out of it.  On the
        back cover, the device is in shambles after she has
        (inevitably) pulled on the rope.

        See also {book titles}.

        (1996-12-03)

CINT92

        {SPEC CINT92}

C-Interp

        An {interpreter} for a small subset of {C}, originally part of
        a communications package.

        {(ftp://oac2.hsc.uth.tmc.edu/Mac/Misc/C_Interp.sit)}.  E-mail:
        Chuck Shotton <cshotton@oac.hsc.uth.tmc.edu>.

        (1993-05-14)

ciphertext

        <cryptography> Text which has been encrypted by some
        {encryption} system.

        Opposite: {plaintext}.

        (1994-10-27)

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

        1. <communications> A communications path in a {circuit
        switching} network.

        2. <electronics> A complete path through which an electric
        current can flow.

        (1999-03-17)

circuit switched

        {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

        <company> A manufacturer of {integrated circuits} including
        the {Advanced RISC Machine} and display interface processors
        and cards for use as {Windows accelerators} (requiring
        dedicated driver software).

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

        [Other products?]

        (1996-10-13)

CIS

        1. <standard, programming> {Case Integration Services}.

        2. <networking> {Cooperative Information System}.

        3. <business> {Customer Interaction Software},
        {Customer Information Systems}.

        (1999-10-04)

CISC

        {Complex Instruction Set Computer}

Cisco Systems, Inc.

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

        (1995-04-19)

CISI

        A French software house.

CITRAN

        {Caltech}'s answer to {MIT}'s {JOSS}.

        [Sammet 1969, p.217].

CityScape

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

        E-Mail: <sales@cityscape.co.uk>.

        Address: CityScape Internet Services, 59 Wycliffe Rd.,
        Cambridge, CB1 3JE, England.  Telephone: +44 (1223) 566 950.

        (1994-11-08)

CIX

        1. <networking> {Commercial Internet Exchange}.

        2. <messaging> {Compulink Information eXchange}.

        (1997-07-16)

CJK

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

        (1997-07-16)

CJKV

        <character> {CJK} plus Vietnamese, which, like the other three
        Asian languages, requires 16-bit {character encodings}.
        Vietnamese, however, does not use {Han characters}.

        (1997-07-16)

ck

        <networking> The {country code} for the Cook Islands.

        (1999-01-27)

CL

        Control Language.

        The batch language for {IBM RPG}/38, used in conjunction with
        {RPG III}.

        See also {OCL}.

        (1994-11-08)

cl

        <networking> The {country code} for Chile.

        (1999-01-27)

CLAM

        <mathematics, tool> A system for {symbolic mathematics},
        especially General Relativity.  It was first implemented in
        {ATLAS} {assembly language} and later {Lisp}.

        See also {ALAM}.

        ["CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark,
        King's College London, 1971].

        (1994-11-08)

C Language Integrated Production System

        <language> (CLIPS) A language produced by Gary Riley of NASA
        {JSC} in Houston, Texas, for developing {expert 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
        <info@acw.com> (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: <service@cossack.cosmic.uga.edu>.

        Telnet: cosmic.uga.edu, user: cosline.

        {U. Michigan
        (ftp://earth.rs.itd.umich.edu/mac.bin/etc/compsci/Clips/)},
        {ENSMP, France (ftp://ftp.ensmp.fr/pub/clips/)}.

        ["Expert Systems: Principles and Programming", Joseph
        Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6].

        (1994-12-16)

Clarion

        <language> A {fourth generation language} for {MS-DOS}.

        [Details?]

        (1994-11-09)

Claris

        <company> A subsidiary company of {Apple Computer, Inc.}.  In
        January 1998, Apple restructured Claris to concentrate on
        their {FileMaker} line of {database} {software} and changed
        the company's name to {FileMaker, Inc.}.

        (1998-02-18)

CLASP

        Computer Language for AeronauticS and Programming.

        A {real-time} language from NASA focussing on {fixed-point}
        mathematics.  CLASP is a near subset of {SPL}, with some ideas
        from {PL/I}.

        ["Flight Computer and Language Processor Study", Raymond
        J. Rubey, Management Information Services, Detroit, 1971].

        (1994-10-13)

class

        1. <programming> The prototype for an {object} in an
        {object-oriented language}; analogous to a {derived type} in a
        {procedural language}.  A class may also be considered to be a
        set of objects which share a common structure and behaviour.
        The structure of a class is determined by the {class
        variables} which represent the {state} of an object of that
        class and the behaviour is given by a set of {method}s
        associated with the class.

        Classes are related in a {class hierarchy}.  One class may be
        a specialisation (a "{subclass}") of another (one of its
        "{superclasses}") or it may be composed of other classes or it
        may use other classes in a {client-server} relationship.  A
        class may be an {abstract class} or a {concrete class}.

        See also {signature}.

        2. <programming> See {type class}.

        3. <networking> One of three types of {Internet addresses}
        distinguished by their most significant bits.

        3. <language> A language developed by the {Andrew Project}.
        It was one of the first attempts to add {object-oriented}
        features to {C}.

        (1995-05-01)

class hierarchy

        <programming> A set of {classes} and their interrelationships.

        One class may be a specialisation (a "{subclass}" or "{derived
        class}") of another which is one of its "{superclasses}" or
        "{base classes}".

        When a {method} is invoked on an {object} it is first looked
        for in the object's class, then the superclass of that class,
        and so on up the hierarchy until it is found.  Thus a class
        need only define those methods which are specific to it, and
        inherits methods from all its superclasses.

        See also: {multiple inheritance}.

        (1997-08-06)

classic

        <jargon> An adjective used before or after a noun to describe
        the original version of something.  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.

        (1996-10-27)

Classic-Ada

        An {object-oriented} extension to {Ada}, said to be like
        {Smalltalk}.  It is implemented as an {Ada} {preprocessor}.

        (1994-12-05)

classical logic

        <logic> Non-{intuitionist logic}.

        (1995-04-13)

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

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

        (1997-03-06)

class library

        A library of reusable {class}es for use with an
        {object-oriented programming} system.

        (1994-12-05)

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

        (1994-11-30)

Class-Relation Method

        A design technique based on the concepts of {object-oriented
        programming} and the {Entity-Relationship model} from the
        French company {Softeam}.

        (1994-12-05)

Clean

        <language> A {lazy} {higher-order} {purely functional
        language} from the {University of Nijmegen}.  Clean was
        originally a subset of {Lean}, designed to be an experimental
        {intermediate language} and used to study the {graph
        rewriting} model.  To help focus on the essential
        implementation issues it deliberately lacked all {syntactic
        sugar}, even {infix} expressions or {complex lists},

        As it was used more and more to construct all kinds of
        applications it was eventually turned into a general purpose
        functional programming language, first released in May 1995.
        The new language is {strongly typed} (Milner/Mycroft type
        system), provides {modules} and {functional I/O} (including a
        {WIMP} interface), and supports {parallel processing} and
        {distributed processing} on {loosely coupled} parallel
        architectures.  Parallel execution was originally based on the
        {PABC} {abstract machine}.

        It is one of the fastest implementations of functional
        languages available, partly aided by programmer {annotations}
        to influence evaluation order.

        Although the two variants of Clean are rather different, the
        name Clean can be used to denote either of them.  To
        distinguish, the old version can be referred to as Clean 0.8,
        and the new as Clean 1.0 or Concurrent Clean.

        The current release of Clean (1.0) includes a compiler,
        producing code for the {ABC} {abstract machine}, a {code
        generator}, compiling the ABC code into either {object-code}
        or {assembly language} (depending on the {platform}), I/O
        libraries, a {development environment} (not all platforms),
        and {documentation}.  It is supported (or will soon be
        supported) under {Mac OS}, {Linux}, {OS/2}, {Windows 95},
        {SunOS}, and {Solaris}.

        {Home (http://www.cs.kun.nl/~clean/)}.  E-mail:
        <clean@cs.kun.nl>.  Mailing list: <clean-request@cs.kun.nl>.

        ["Clean - A Language for Functional Graph Rewriting", T. Brus
        et al, IR 95, U Nijmegen, Feb 1987].

        ["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U
        Nijmegen, Netherlands, 1989].

        (1995-11-08)

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

        (1994-12-12)

Cleanroom

        A software development approach aimed at producing software
        with the minimum number of errors.

        (1994-12-12)

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].

        (1994-11-03)

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.

        (1994-11-03)

CLHEP

        A {C++} {class library} for high energy physics
        {application}s.

        (1994-12-12)

CLI

        1. <operating system> {Command Line Interface}.

        2. <database, standard> {Call-Level Interface}.

        (1997-03-04)

CLiCC

        A {Common Lisp} to {C} compiler by Heinz Knutzen
        <hk@informatik.uni-kiel.de>, Ulrich Hoffman
        <uho@informatik.uni-kiel.de> and Wolfgang Goerigk
        <wg@informatik.uni-kiel.de>.  CLiCC is meant to be used as a
        supplement to existing {CLISP} systems for generating portable
        applications.  Target {C} code must be linked with CLiCC
        {run-time library} to produce an executable.

        Version 0.6.2 conforms to a subset of {Common Lisp} and {CLOS}
        called CL_0 or CommonLisp_0 and based on {CLtL1}.  It runs
        with {Lucid Lisp}, {AKCL} or {CLISP}.  Work on {CLtL2} and
        {ANSI-CL} conformance is in progress.

        {(ftp://ftp.informatik.uni-kiel.de/pub/kiel/apply/)}

        (1994-01-04)

click

        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}.

        (1995-03-14)

client

        <programming> A computer system or process that requests a
        service of another computer system or process (a "{server}")
        using some kind of {protocol} and accepts the server's
        responses.  A client is part of a {client-server} software
        architecture.

        For example, a {workstation} requesting the contents of a file
        from a {file server} is a client of the file server.

        (1997-10-27)

client-server

        <programming> A common form of {distributed system} in which
        software is split between {server} tasks and {client} tasks.
        A client sends requests to a server, according to some
        {protocol}, asking for information or action, and the server
        responds.

        This is analogous to a customer (client) who sends an order
        (request) on an order form to a supplier (server) who
        despatches the goods and an invoice (response).  The order
        form and invoice are part of the "protocol" used to
        communicate in this case.

        There may be either one centralised server or several
        distributed ones.  This model allows clients and servers to be
        placed independently on {nodes} in a {network}, possibly on
        different {hardware} and {operating systems} appropriate to
        their function, e.g. fast server/cheap client.

        Examples are the name-server/name-resolver relationship in
        {DNS}, the file-server/file-client relationship in {NFS} and
        the screen server/client application split in the {X Window
        System}.

        {Usenet} newsgroup: {news:comp.client-server}.

        ["The Essential Client/Server Survival Guide", 2nd edition,
        1996].

        (1998-01-25)

client/server

        {client-server}

client-server model

        {client-server}

Client To Client Protocol

        <networking> (CTCP) A type of {protocol} created to allow
        structured data such as {font} information to be exchanged
        between users on {IRC}.  It is also used to send a query to a
        user.  The available CTCP commands include VERSION, FINGER,
        DCC CHAT, DCC SEND, TIME, PING, ECHO, CLIENTINFO.  Some
        commands are not available on some IRC {client} software.

        (1995-04-12)

C++Linda

        ["The AUC C++Linda System", C. Callsen et al, U Aalborg, in
        Linda-Like Systems and Their Implementation, G. Wilson ed, U
        Edinburgh TR 91-13, 1991].

        (1994-12-12)

C-Linda

        The most widely used variant of {Linda}, with {C} as the base
        language.  It is available from Sci Comp Assocs
        <linda@sca.com>.

        (1994-12-12)

CLIP

        1. {Compiler Language for Information Processing}.

        2. {Common LISP in Parallel}.

CLiP

        A documentation extractor by Eric W. van Ammers
        <ammers@rcl.wau.nl>.  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/)}

        (1993-11-18)

clipboard

        <operating system> A temporary memory area, used to transfer
        information within a document being edited or between
        documents or between programs.  The fundamental operations are
        "cut" which moves data from a document to the clipboard,
        "copy" which copies it to the clipboard, and "paste" which
        inserts the clipboard contents into the current document in
        place of the current selection.

        Different {Graphical User Interfaces} vary in how they handle
        the different types of data which a user might want to
        transfer via the clipboard, some (e.g. the {X Window System})
        support only plain text, others (e.g. {NEXTSTEP}) support
        arbitrarily typed data.

        (1996-08-23)

Clipper

        1. <hardware, cryptography> An {integrated circuit} which
        implements the {SkipJack} {algorithm}.  The Clipper is
        manufactured by the US government to encrypt telephone data.
        It has the added feature that it can be decrypted by the US
        government, which has tried to make the chip compulsory in the
        United States.  Phil Zimmerman (inventor of {PGP}) remarked,
        "This doesn't even pass the sniff test" (i.e. it stinks).

        {(http://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.

        (1995-03-25)

CLIPS

        <language> {C Language Integrated Production System}.

clique

        <mathematics> A {maximal} {totally connected} {subgraph}.
        Given a {graph} with {nodes} N, a clique C is a {subset} of N
        where every node in C is directly connected to every other
        node in C (i.e. C is totally connected), and C contains all
        such nodes (C is maximal).  In other words, a clique contains
        all, and only, those nodes which are directly connected to all
        other nodes in the clique.

        [Is this correct?]

        (1996-09-22)

CLISP

        1. {Conversational LISP}.

        2. A {Common Lisp} implementation by Bruno Haible
        <haible@ma2s2.mathematik.uni-karlsruhe.de> of {Karlsruhe
        University} and Michael Stoll <michael@rhein.iam.uni-bonn.de>
        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://ftp2.cons.org/pub/lisp/clisp/)}.

        Mailing list: <listproc@clisp.cons.org>
        (send "subscribe clisp-list").

        (1998-11-21)

Clive Sinclair

        <person> Sir Clive Sinclair (1939- ) The British inventor who
        pioneered the home {microcomputer} market in the early 1980s,
        with the introduction of low-cost, easy to use {8-bit}
        computers produced by his company, {Sinclair Research}.

        Sir Clive also invented and produced a variety of electronic
        devices from the 1960s to 1990s, including pocket calculators
        (he marketed the first pocket calculator in the world),
        radios, and televisions.  Perhaps he is most famous (or some
        might say notorious) for his range electric vehicles,
        especially the Sinclair C5, introduced in 1985.  He has been a
        member of MENSA, the high IQ society, since 1962.

        {Planet Sinclair (http://www.nvg.ntnu.no/sinclair/)}.

        ["The Sinclair Story", Rodney Dale, pub. Duckworth 1985]

        (1998-11-09)

CLIX

        ["Overview of a Parallel Object-Oriented Language CLIX",
        J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987,
        pp.265-273].

        (1994-12-16)

CLM

        {Career Limiting Move}

CLNP

        {ConnectionLess Network Protocol}

clobber

        To overwrite, usually unintentionally: "I walked off the end
        of the array and clobbered the stack."

        Compare {mung}, {scribble}, {trash}, and {smash the stack}.

        (1994-12-16)

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}.

        (1994-12-16)

clock rate

        <processor, benchmark> 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.

        (1995-01-12)

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.  <chat> A {clonebot}.

        (1994-12-16)

clone-and-hack coding

        A {DEC}ism for {case and paste}.

        (1994-12-16)

clonebot

        <chat> (Or "clone") A {bot} meant to replicate itself en masse
        on a {talk} network (generally {IRC}).  A bot appears on the
        network as several {agents}, and then carries out some task,
        typically that of {flood}ing another user.

        Compare {ghost}.

        (1997-04-07)

CLOS

        {Common LISP Object System}

closed-box testing

        {functional testing}

closed set

        <mathematics> A set S is closed under an operator * if x*y is
        in S for all x, y in S.

        (1994-12-16)

closed term

        <theory> A term with no {free variable}s.

        (1994-12-16)

Clos network

        A {network} topology.

        [What topology?]

        (1994-12-16)

closure

        1. <programming> In a {reduction system}, a closure is a data
        structure that holds an expression and an environment of
        variable bindings in which that expression is to be evaluated.
        The variables may be local or global.  Closures are used to
        represent unevaluated expressions when implementing
        {functional programming languages} with {lazy evaluation}.  In
        a real implementation, both expression and environment are
        represented by pointers.

        A {suspension} is a closure which includes a flag to say
        whether or not it has been evaluated.  The term "{thunk}" has
        come to be synonymous with "closure" but originated outside
        {functional programming}.

        2. <theory> In {domain theory}, given a {partially ordered
        set}, D and a subset, X of D, the upward closure of X in D is
        the union over all x in X of the sets of all d in D such that
        x <= d.  Thus the upward closure of X in D contains the
        elements of X and any greater element of D.  A set is "upward
        closed" if it is the same as its upward closure, i.e. any d
        greater than an element is also an element.  The downward
        closure (or "left closure") is similar but with d <= x.  A
        downward closed set is one for which any d less than an
        element is also an element.

        ("<=" is written in {LaTeX} as {\subseteq} and the upward
        closure of X in D is written \uparrow_{D} X).

        (1994-12-16)

closure conversion

        The transformation of {continuation passing style} code so
        that the only {free variables} of functions are names of other
        functions.

        See also Lambda lifting.

        (1994-12-16)

Clover

        <communications, protocol> A {protocoll} similar to {packet
        radio} or {AMTOR}.

        (1995-03-03)

clover key

        The {Macintosh} {feature key}.

        (1994-12-16)

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].

        (1994-11-01)

CLP(R)

        Constraint Logic Programming (Real).

        A {constraint logic programming} language with {real}
        arithmetic {constraint}s developed by Joxan Jaffar
        <joxan@watson.ibm.com> of {IBM} {TJWRC} and S. Michaylov of
        {Monash University} in 1986.

        The implementation contains a {byte-code compiler} and a
        built-in constraint solver which deals with linear arithmetic
        and contains a mechanism for delaying {nonlinear} constraints
        until they become linear.  Since CLP(R) is a 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 <roland@bruce.cs.monash.edu.au>.

        ["The CLP(R) Language and System", J. Jaffar et al, IBM RR
        RC16292 (#72336) (Nov 1990)].

        (1992-10-14)

CLP(sigma*)

        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].

        (1994-12-16)

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].

        (1994-12-16)

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 <prj@pm-prj.lcs.mit.edu>.

        {Versions for Sun and VAX/VMS
        (ftp://pion.lcs.mit.edu/pub/clu/)}.  {Portable version
        (ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}.

        (1994-12-16)

clu2c

        A {CLU} to {C} compiler.

        {(ftp://ftp.is.titech.ac.jp:/pub/clu2c/)}

        E-mail: <clu2c-report@is.titech.ac.jp>.

        (1994-12-16)

cluster

        <file system> An elementary unit of allocation of a disk made
        up of one or more physical {blocks}.

        A {file} is made up of a whole number of possibly
        non-contiguous clusters.  The cluster size is a tradeoff
        between space efficiency (the bigger is the cluster, the
        bigger is on the average the wasted space at the end of each
        file) and the length of the {FAT}.

        (1996-11-04)

Cluster 86

        A distributed {object-oriented} language by L. Shang
        <lshang@inf.ethz.ch> of {Nanjing University}, ca. 1986.  A
        cluster is a metatype.  There are versions for {MS-DOS} and
        {Unix}.

        ["Cluster: An Informal Report", L. Shang, SIGPLAN Notices
        26(1):57-76 (Jan 1991)].

        (1994-12-21)

clustergeeking

        <jargon> /kluh'st*r-gee"king/ ({CMU}) Spending more time at a
        computer cluster doing CS homework than most people spend
        breathing.

        (1994-12-21)

clustering

        {cluster}

CLUT

        {colour palette}

CLV

        {Constant Linear Velocity}

CLX

        <library, graphics> 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-clx@expo.lcs.mit.edu> (bug reports).

        (1992-08-26)

CM

        {Configuration Management}

cm

        <networking> The {country code} for Cameroon.

        (1999-01-27)

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].

        (1994-12-21)

CMC

        1. <messaging> {Computer Mediated Communication}.

        2. <hardware> {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}.

        (1994-12-21)

CMM

        {Capabilities Maturity Model}.

CMOS

        {Complementary Metal Oxide Semiconductor}

CMP

        {cellular multiprocessing}

CMS

        A {code management} system from {DEC}.

        (1994-12-21)

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)].

        (1994-12-21)

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: <slisp@cs.cmu.edu>.

        (1993-11-18)

CMVC

        {Configuration Management Version Control} from {IBM}.

CMYK

        <graphics> cyan, magenta, yellow, key.

        A {colour model} that describes each {colour} in terms of the
        quantity of each secondary colour (cyan, magenta, yellow), and
        "key" (black) it contains.  The CMYK system is used for
        printing.  For mixing of pigments, it is better to use the
        secondary colours, since they mix subtractively instead of
        additively.  The secondary colours of light are cyan, magenta
        and yellow, which correspond to the primary colours of pigment
        (blue, red and yellow). In addition, although black could be
        obtained by mixing these three in equal proportions, in
        four-colour printing it always has its own ink.  This gives
        the CMYK model.  The K stands for "Key' or 'blacK,' so as not
        to cause confusion with the B in {RGB}.

        Alternative colour models are {RGB} and {HSB}.

        (1994-12-22)

CMZ

        A portable interactive {code management} system from {CodeME}
        S.A.R.L in use in the high-energy physics community.

        (1994-12-22)

cn

        <networking> The {country code} for China.

        (1999-01-27)

CNAME

        The {canonical name} query type for {Domain Name System}.
        This query asks a DNS {server} for a {host}'s official
        {hostname}.

        (1994-12-22)

CNC

        {Collaborative Networked Communication}

CNET

        Centre national d'Etudes des Telecommunications.  The French
        national telecommunications research centre at Lannion.

        (1994-12-22)

CNI

        {Coalition for Networked Information}

CNN

        <architecture> {Cellular Neural Network}.

CNRI

        Corporation for National Research Initiatives.

        A US research and development organisation in information
        processing technology.

        Address: Reston, VA, USA.

        (1994-12-22)

co

        <networking> The {country code} for Colombia.

        (1999-01-27)

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].

        (1994-12-22)

Coad/Yourdon

        <programming> An {object-oriented analysis} and design
        {methodology}, developed by {edward Yourdon} and Peter Coad.

        (1995-04-07)

COALA

        ["COALA: The Object Code of the Compiler Producing System", S.
        Kruszewski et al, MERA, Warsaw 1974].

        (1994-12-22)

coalesced sum

        <theory> (Or "smash sum") In {domain theory}, the coalesced
        sum of {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.

        (1994-12-22)

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.

        (1994-12-22)

coarse grain

        {granularity}

COAST

        {Cache On A STick}

coax

        {coaxial cable}

coaxial cable

        <hardware> A kind of cable with a solid central conductor
        surrounded by insulator, in turn surrounded by a cylindrical
        shield woven from fine wires.  It is used to carry high
        frequency signals such as video or radio.  The shield is
        usually connected to electrical ground to reduce electrical
        interference.

        (1995-03-28)

COBOL

        {COmmon Business Oriented Language}

COBOL-1961 Extended

        A short-lived separation of {COBOL} specifications.

        [Sammet 1969, p. 339].

        (1994-10-28)

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.

        (1994-12-22)

COBRA

        Do you mean {CORBA}?  Or is there a COBRA?

        (1996-05-10)

cobweb site

        <jargon, World-Wide Web> A {World-Wide Web} site that hasn't
        been updated for a long time.  A dead {web page}.

        (1997-04-29)

Cocktail

        {GMD Toolbox for Compiler Construction}

CoCo

        <computer> The {Tandy} Color Computer with a Motorola
        {MC6809E} {CPU}.  The {Dragon} is a CoCo clone.  The CoCo was
        as powerful as the {IBM XT} at the time it was made, and could
        run {OS-9}.

        (1997-02-12)

Cocol

        {Coco Language}

Coco Language

        <language> (Cocol) A language for writing left-attributed {LL1
        grammars}, used as the input language for the {Coco} LL1
        {parser generator}, which produces {Modula-2 table-driven
        parsers} as output.

        Cocol-2 is a version for the Coco-2 generator.  {Cocol/R} is
        an improvement over the original Cocol and Cocol-2.

        {(ftp://neptune.inf.ethz.ch/)}

        ["A Compiler Generator for Microcomputers", P. Rechenberg et
        al, P-H 1989].

        (1997-12-09)

Cocol/R

        <language> (Coco Language) A language for writing
        left-attributed {LL1 grammars}, used as the input language for
        the {Coco/R} LL1 {parser generators}, which produce {C++},
        {Pascal}, {Modula-2}, {Java} or {Oberon} {recursive-descent
        parsers} and associated {scanners} as output.

        Cocol/R is an improvement over the original {Cocol} and
        Cocol-2.

        [Moessenboeck, H., "A Generator for Fast Compiler Front-Ends",
        Report 127, Dept. Informatik, ETH Zurich, 1990].

        (1997-12-09)

COCOMO

        {Constructive Cost Model}

Coco/R

        <tool> A program by Hanspeter Moessenboeck
        <moessenboeck@ssw.uni-linz.ac.at> which generates {recursive
        descent parsers} and their associated {scanners} from
        {attributed grammars} (LL1).  Coco/R can {bootstrap} itself to
        generate its own driver, parser, scanner and semantic
        evaluator from an attributed grammar included in the
        distribution.

        Versions exist for generating {Oberon}, {Modula-2}, {Pascal},
        {C} and {C++} source, 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 (1994-10-13)

        Coco/R was ported to {Modula-2} by Marc Brandis, Christof
        Brass and Pat Terry.

        {(ftp://ftp.ssw.uni-linz.ac.at/pub/Coco)}.

        Mail server: <server@ftp.psg.com> (Subject: send
        pub/modula-2/coco/).

        E-mail: Pat Terry <cspt@cs.ru.ac.za> (Modula/Pascal versions),
        Hanspeter Moessenboeck <moessenboeck@ssw.uni-linz.ac.at>
        (Oberon, Java versions), Frankie Arzu <farzu@uvg.edu.gt> (C,
        C++ versions).

        ["A compiler generator for microcomputers", by Rechenberg and
        Mossenbock, Prentice Hall, 1989, 0-13-155136-1].

        [Moessenboeck, H., "A Generator for Fast Compiler Front-Ends",
        Report 127, Dept. Informatik, ETH Zurich, 1990].

        [Terry, P.D., "Compilers and Compiler Generators: An
        Introduction with C++", ITCP: ISBN 1-85032-298-8].

        (1997-12-09)

CODASYL

        {Conference On DAta SYstems Languages}

Codd's First Normal Form

        {database normalisation}

Codd's reduction algorithm

        <database> An {algorithm} to convert an arbitrary expression
        of the {relational calculus} to an equivalent expression of
        the {relational algebra}.  This can be used as the basis of an
        implementation of the relational calculus.

        (1998-10-05)

code

        {software}

Code 2.0

        <language> 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 <emery@cs.utexas.edu>.

        ["The CODE 2.0 Parallel Programming Language", P. Newton et
        al, Proc ACM Intl Conf on Supercomput, Jul 1992].

        (1996-01-13)

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.

        (1994-12-23)

coded character set

        <character, standard> A mapping from a set of {integers} to a
        set of {characters}.  This mapping is generally 1:1 (i.e.,
        {bijective}), for example, the code position 65 in {ASCII}
        maps only to "A", and it's the only position that maps to "A".

        There are several standard coded character sets, the most
        widely used is {ASCII}, generally in its {Latin-1} dialect,
        with {Unicode} becoming slowly more common; while {EBCDIC} and
        {Baudot} are extinct except in {legacy systems}.

        A coded character set may include letters, digits,
        punctuation, {control codes}, various mathematical and
        typographic symbols, and other characters.  Each character in
        the set is represented by a unique character code (or "{code
        position}").

        (1998-10-18)

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.

        (1995-02-15)

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}.

        (1994-11-11)

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.

        (1994-12-23)

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.

        (1994-12-08)

code position

        <character> An {integer} which a {character encoding} maps to
        a {character}.

        (1998-10-18)

coder/decoder

        <communications> (CODEC) An {integrated circuit} or other
        electronic device combining the circuits needed to convert
        digital signals to and from analog ({Pulse Code Modulation})
        form.

        (1997-07-22)

codes

        1. <jargon> Programs.  This usage is common among scientific
        computing people who use {supercumputer}s for heavy-duty
        {number crunching}.

        2. <cryptography> Something to do with {cryptography}.

        (1994-10-28)

C-odeScript

        <language> A {Liana} interpreter, embeddable in {C} and {C++}
        programs.

        (1995-03-09)

code segment

        <processor, operating system> ({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}.

        (1996-12-21)

code walk

        <programming> Stepping through {source code} as part of a
        review.

        (1997-04-02)

codewalker

        <programming, tool> 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."

        (1994-12-23)

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)].

        (1994-12-23)

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.

        (1994-12-23)

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".

        (1994-11-29)

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].

        (1994-12-23)

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 <amziod@world.std.com>.

Cognitech

        A French software house specialising in {artificial
        intelligence}.

        (1995-01-04)

cognitive architecture

        <architecture> A computer architecure involving
        {non-deterministic}, multiple {inference} processes, as found
        in {neural networks}.  Cognitive architectures model the human
        brain and contrast with single processor computers.

        The term might also refer to software architectures,
        e.g. {fuzzy logic}.

        [Origin?  Better definition?  Reference?]

        (1995-11-29)

COGO

        A subsystem of {ICES} aimed at coordinate geometry problems
        in Civil Engineering.

        ["Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug
        1967)].

        (1995-01-04)

Coherent Parallel C

        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].

        (1995-01-04)

COHESION

        {DEC}'s {CASE} environment.

        [Details?].

        (1995-01-04)

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)].

        (1995-01-04)

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}.

        (1995-01-04)

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].

        (1995-01-04)

COLD

        1. <language> A {sugar}ed version of {COLD-K}.

        2. <storage> {Computer Output to Laser Disc}.

        (1995-01-04)

cold boot

        <operating system> A {boot} from {power off}.

        Contrast {warm boot}.

        (1995-11-27)

ColdFusion

        <world-wide web, database, tool> {Allaire Corporation}'s
        commercial {database} application development tool that allows
        {databases} to have a {World-Wide Web} {interface}, so a
        database can be queried and updated using a {web browser}.

        The ColdFusion Server application runs on the {web server} and
        has access to a {database}.  ColdFusion files on the web
        server are {HTML} pages with additional ColdFusion commands to
        {query} or {update} the database, written in {CFML}.  When the
        page is requested by the user, the {web server} passes the
        page to the Cold Fusion application, which executes the {CFML}
        commands, places the results of the {CFML} commands in the
        {HTML} file, and returns the page to the {web server}.  The
        page returned to the {web server} is now an ordinary {HTML}
        file, and it is sent to the user.

        Examples of ColdFusion applications include order entry, event
        registration, catalogue search, directories, calendars, and
        interactive training.  ColdFusion applications are robust
        because all database interactions are encapsulated in a single
        industrial-strength {CGI} script.  The formatting and
        presentation can be modified and revised at any time (as
        opposed to having to edit and recompile {source code}).

        ColdFusion Server can connect with any database that supports
        {ODBC} or {OLE DB} or one that has a native database driver.
        Native database drivers are available for {Oracle} and
        {Sybase} databases.

        The current version is version 4, available for {Windows},
        {Solaris} and {HP-UX}.  A {development environment} for
        creating ColdFusion files, called ColdFusion Studio, is also
        available for {Windows}.

        The {filename extension} for ColdFusion files is .cfm

        {Home (http://www.coldfusion.com/)}.

        (1999-08-01)

ColdFusion Markup Language

        <language, world-wide web> (CFML) A {tag} based {markup}
        language used to create {ColdFusion} applications by embedding
        ColdFusion commands in {HTML} files.

        (1999-08-01)

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].

        (1995-01-04)

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].

        (1995-01-04)

collision

        1. <networking> When two {hosts} transmit on a {network} at
        once causing their {packets} to collide and corrupt each
        other.

        See {collision detection}.

        2. <programming> {hash collision}.

        (1995-01-06)

collision detection

        <networking> A class of methods for sharing a data
        transmission medium in which hosts transmit as soon as they
        have data to send and then check to see whether their
        transmission has suffered a {collision} with another host's.

        If a collision is detected then the data must be resent.  The
        resending algorithm should try to minimise the chance that two
        hosts's data will repeatedly collide.  For example, the
        {CSMA/CD} protocol used on {Ethernet} specifies that they
        should then wait for a random time before re-transmitting.

        See also {backoff}.

        This contrasts with {slotted protocols} and {token passing}.

        (1997-03-18)

colocation

        <networking> /koh'loh-kay`sh*n/ or /koh`loh-kay'sh*n/ (Or
        "co-location") Providing network connections such as
        {Internet} {leased lines} to several {servers} housed together
        in a {server room}.  This is typically provided as a
        commercial service.

        This term is often confused with "collocation"
        (/ko`loh-kay'sh*n/, not /koh'-/), an obscure non-jargon term
        for "placement" or "arrangement".  This confusion exists
        almost exclusively because certain {spellcheckers} reject
        "colocation" and people accept the suggested but incorrect
        replacement, "collocation" .

        The verbal form is "to colocate" or "co-locate" (commonly
        /koh'loh`kayt/, also (US) /koh`loh'kayt/).

        (1998-07-07)

colon

        <character> ":".  {ASCII} character 58.  Common names:
        {ITU-T}: colon.  Rare: dots; {INTERCAL}: two-spot.

        (1995-09-25)

color

        <spelling> American spelling of {colour}.

        (1996-12-13)

Color Graphics Adapter

        <hardware, graphics> (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.

        (1995-11-11)

color model

        {colour model}

Colossus

        (A huge and ancient statue on the Greek island of Rhodes).

        1. <computer> 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 its guidance.  Forbin and the other scientists
        form a technological resistance to Colossus which must operate
        underground.

        {The Internet Movie Database
        (http://www.msstate.edu/M/title-exact?Colossus:%20The%20Forbin%20Projec
t)}.

        [Date?]

        (1996-03-24)

colour

        <graphics> (US "color") Colours are usually represented as
        {RGB} triples in a {digital} {image} because this corresponds
        most closely to the electronic signals needed to drive a
        {CRT}.  Several equivalent systems ("{colour models}") exist,
        e.g. {HSB}.  A colour {image} may be stored as three separate
        images, one for each of red, green, and blue, or each {pixel}
        may encode the colour using separate {bit-fields} for each
        colour component, or each pixel may store a logical colour
        number which is looked up in a hardware {colour palette} to
        find the colour to display.

        Printers may use the {CMYK} or {Pantone} representations of
        colours as well as RGB.

        (1999-08-02)

colour depth

        {bits per pixel}

colour look-up table

        {colour palette}

colour model

        <graphics> Any system for representing {colours} as {ordered
        sets} of numbers.  The most common colour models are {RGB},
        {CMYK}, and {HSB}.  There are several others, e.g. {CMY}, and
        the "Lab" system(?).

        See also: {Pantone}.

        (1999-10-21)

colour palette

        <graphics, hardware> (colour look-up table, CLUT) A device
        which converts the {logical} colour numbers stored in each
        {pixel} of {video} memory into {physical} colours, normally
        represented as {RGB} triplets, that can be displayed on the
        {monitor}.  The palette is simply a block of fast {RAM} which
        is addressed by the logical colour and whose output is split
        into the red, green and blue levels which drive the actual
        display (e.g. {CRT}).

        The number of entries (logical colours) in the palette is the
        total number of colours which can appear on screen
        simultaneously.  The width of each entry determines the number
        of colours which the palette can be set to produce.

        A common example would be a palette of 256 colours
        (i.e. addressed by eight-bit pixel values) where each colour
        can be chosen from a total of 16.7 million colours (i.e. eight
        bits output for each of red, green and blue).

        Changes to the palette affect the whole screen at once and can
        be used to produce special effects which would be much slower
        to produce by updating pixels.

        (1997-06-03)

Columbia AppleTalk Package

        (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.

        (1995-01-10)

Column Address Strobe

        <hardware> (CAS) A signal sent from a processor (or {memory
        controller}) to a {dynamic random access memory} (DRAM) (qv)
        circuit to indicate that the column {address lines} are valid.

        (1996-10-17)

COM

        1. <programming> {Component Object Model}.

        2. <storage> {Computer Output on Microfilm}.

        (1999-06-12)

com

        <networking> ("commercial") The {top-level domain} typically
        for American companies, although it sees heavy use for
        international companies and {vanity domains} of all types,
        whether in the US or not.

        (1999-01-26)

COMAL

        {COMmon Algorithmic Language}

combination

        1. <mathematics> A {set} containing a certain number of
        objects selected from another set.

        The number of combinations of r objects chosen from a set of n
        is

                n C r = n! / ((n-r)! r!)

        where "n C r" is normally with n and r as subscripts or as n
        above r in parentheses.

        See also {permutation}.

        2. <reduction> In the theory of {combinator}s, a combination
        denotes an expression in which {function application} is the
        only operation.

        (1995-04-10)

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.

        (1994-12-06)

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}.

        (1995-01-05)

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.

        (1995-01-11)

COME FROM

        <programming> A semi-mythical language construct dual to the
        "go to"; "COME FROM" <label> would cause the referenced label
        to act as a sort of {trapdoor}, so that if the program ever
        reached it, control would quietly and {automagically} be
        transferred to the statement following the "COME FROM".

        "COME FROM" was first proposed in R.L. Clark's "A Linguistic
        Contribution to GOTO-less programming", which appeared in a
        1973 {Datamation} issue (and was reprinted in the April 1984
        issue of "{Communications of the ACM}").  This parodied the
        then-raging "{structured programming}" {holy wars} (see
        {considered harmful}).

        Mythically, some variants are the "assigned COME FROM" and the
        "computed COME FROM" (parodying some nasty control constructs
        in {FORTRAN} and some extended {BASIC}s).  Of course,
        {multitasking} (or {nondeterminism}) could be implemented by
        having more than one "COME FROM" statement coming from the
        same label.

        In some ways the {FORTRAN} "DO" looks like a "COME FROM"
        statement.  After the terminating statement number/"CONTINUE"
        is reached, control continues at the statement following the
        DO.  Some generous FORTRANs would allow arbitrary statements
        (other than "CONTINUE") for the statement, leading to examples
        like:

              DO 10 I=1,LIMIT
         C imagine many lines of code here, leaving the
         C original DO statement lost in the spaghetti...
              WRITE(6,10) I,FROB(I)
         10   FORMAT(1X,I5,G10.4)

        in which the trapdoor is just after the statement labelled 10.
        (This is particularly surprising because the label doesn't
        appear to have anything to do with the flow of control at
        all!)

        While sufficiently astonishing to the unsuspecting reader,
        this form of "COME FROM" statement isn't completely general.
        After all, control will eventually pass to the following
        statement.  The implementation of the general form was left to
        {Univac FORTRAN}, ca. 1975 (though a roughly similar feature
        existed on the {IBM 7040} ten years earlier).  The statement
        "AT 100" would perform a "COME FROM 100".  It was intended
        strictly as a debugging aid, with dire consequences promised
        to anyone so deranged as to use it in production code.  More
        horrible things had already been perpetrated in production
        languages, however; doubters need only contemplate the
        "{ALTER}" verb in {COBOL}.

        {SCL} on {VME} {mainframes} has a similar language construct
        called "whenever", used like this:

                 whenever x=123345 then S;

        Meaning whenever variable x reached the value 123345 then
        execute statement S.

        "COME FROM" was supported under its own name for the first
        time 15 years later, in {C-INTERCAL} (see {INTERCAL},
        {retrocomputing}); knowledgeable observers are still reeling
        from the shock.

        (1998-04-19)

COMIS

        A COMpilation and Interpretation System.

        A {FORTRAN} {interpreter} use by the {PAW} system.

        (1994-11-30)

COMIT

        The first string-handling and {pattern-matching} language,
        designed in 1957-8 for applications in {natural language}
        translation.  The user has a workspace organised into shelves.
        Strings are made of constituents (words), accessed by
        {subscript}.  A program is a set of rules, each of which has a
        pattern, a replacement and goto another rule.

        ["COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press
        1961].

        [Sammet 1969, pp. 416-436].

        (1994-11-30)

Comite Europeen des Postes et Telecommunications

        <body> (CEPT, European Conference of Post and
        Telecommunications) The committee that defined the CEPT speech
        {compression} scheme.

        [Details of compression scheme?]

        (1998-03-16)

COMIT II

        ["Computer Programming with COMIT II", Victor H. Yngve, MIT
        Press, 1963].

        (1995-01-11)

Comma

        COMputable MAthematics.

        An {ESPRIT} project at KU {Nijmegen}.

        (1994-11-30)

comma

        <character> "," {ASCII} character 44.  Common names: {ITU-T}:
        comma.  Rare: {ITU-T}: cedilla; {INTERCAL}: tail.

        In the {C} programming language, "," is an operator which
        evaluates its first argument (which presumably has
        {side-effect}s) and then returns the value of its second
        argument.  This is useful in "for" statements and {macro}s.

        (1995-03-10)

command

        <operating system> A character string which tells a program to
        perform a specific action.  Most commands take {arguments}
        which either modify the action performed or supply it with
        input.  Commands may be typed by the user or read from a file
        by a {command interpreter}.  It is also common to refer to
        menu items as commands.

        (1997-06-21)

command interpreter

        <operating system> A program which reads textual commands from
        the user or from a file and executes them.  Some commands may
        be executed directly within the interpreter itself
        (e.g. setting variables or control constructs), others may
        cause it to load and execute other files.

        {Unix}'s command interpreters are known as {shell}s.

        When an {IBM PC} is {boot}ed {BIOS} loads and runs the
        {MS-DOS} command interpreter into memory from file COMMAND.COM
        found on a {floppy disk} or {hard disk} drive.  The commands
        that COMMAND.COM recognizes (e.g. COPY, DIR, PRN) are called
        internal commands, in contrast to external commands which are
        executable files.

        (1995-03-16)

command key

        {feature key}

command line interface

        <operating system> A means of communication between a
        {program} and its {user}, based solely on textual input and
        output.  Commands are input with the help of a {keyboard} or
        similar device and are interpreted and executed by the
        program.  Results are output as text or graphics to the
        {terminal}.

        Command line interfaces usually provide greater flexibility
        than {graphical user interfaces}, at the cost of being harder
        for the novice to use.  Consequently, some {hackers} look down
        on GUIs as designed {For The Rest Of Them}.

        (1996-01-12)

command line interpreter

        {command interpreter}

command line option

        <software> (Or "option", "flag", "switch", "option switch") An
        argument to a command that modifies its function rather than
        providing data.  Options generally start with "-" in {Unix} or
        "/" in {MS-DOS}.  This is usually followed by a single letter
        or occasionally a digit.

        Some commands require each option to be a separate argument,
        introduced by a new "-" or "/", others allow multiple option
        letters to be concatenated into a single argument with a
        single "-" or "/", e.g. "ls -al".  A few Unix commands
        (e.g. {ar}, {tar}) allow the "-" to be omitted.  Some options
        may or must be followed by a value, e.g. "cc prog.c -o prog",
        sometimes with and sometimes without an intervening space.

        {getopt} and {getopts} are commands for parsing command line
        options.  There is also a {C} library routine called getopt
        for the same purpose.

        (1996-12-11)

comma separated values

        <file format> (CSV) A {file format} used as a portable
        representation of a {database}.  Each line is one entry or
        record and the fields in a record are separated by {comma}s.
        Commas may be followed by arbitrary space and/or tab
        characters which are ignored.  If field includes a comma, the
        whole field must be surrounded with {double quote}s.

        (1995-05-06)

COMMEN

        [L.J. Cohen.  Proc SJCC 30:671-676, AFIPS (Spring 1967)].

        (1994-11-30)

comment

        <programming> (Or "remark") Explanatory text embedded in
        program {source} (or less often data) intended to help human
        readers understand it.

        Code completely without comments is often hard to read, but
        too heavily commented code isn't much better, especially if
        the comments are not kept up-to-date with changes to the code.
        Too much commenting may mean that the code is
        over-complicated.  A good rule is to comment everything that
        needs it but write code that doesn't need much of it.

        A particularly irksome form of over-commenting explains
        exactly what each statement does, even when it is obvious to
        any reasonably competant programmer, e.g.

                /* Open the input file */
                infd = open(input_file, O_RDONLY);

        (1998-04-28)

comment out

        <programming> To surround a section of code with {comment}
        {delimiters} or to prefix every line in the section with a
        comment marker.  This prevents it from being compiled or
        interpreted.  It is often done to temporarily disable the
        code, e.g. during {debugging} or when the code is redundant or
        obsolete, but is being left in the source to make the intent
        of the active code clearer.

        The word "comment" is sometimes replaced with whatever
        {syntax} is used to mark comments in the language in question,
        e.g. "hash out" ({shell script}, {Perl}), "REM out" ({BASIC}),
        etc.

        Compare {condition out}.

        (1998-04-28)

commercial at

        <character> "@".  {ASCII} code 64.  Common names: at sign; at;
        strudel.  Rare: each; vortex; whorl; {INTERCAL}: whirlpool;
        cyclone; snail; ape; cat; rose; cabbage; {ITU-T}: commercial
        at.

        The @ sign is used in an {electronic mail address} to separate
        the local part from the {hostname}.

        In Dutch this is called "apestaartje" (little ape-tail) and
        most Dutch people call it that rather than "te" (at).  The
        French name is "arobase" and in Spanish it is "arroba"(?).

        See {@-party}.

        (1998-04-27)

Commercial Internet eXchange

        (CIX) The CIX is a non-profit, 501(c)6, trade association
        coordinating {Internet} services.  Its member organisations
        provide {TCP/IP} or {OSI} data {internetwork} services to the
        general public.  The CIX gives them unrestricted access to
        other worldwide networks.  It also takes an interest in the
        development and future direction of the {Internet}.

        The CIX provides a neutral forum to exchange ideas,
        information, and experimental projects among suppliers of
        internetworking services.  The CIX broadens the base of
        national and international cooperation and coordination among
        member networks.  Together, the membership may develop
        consensus positions on legislative and policy issues of mutual
        interest.

        The CIX encourages technical research and development for the
        mutual benefit of suppliers and customers of data
        communications internetworking services.  It assists its
        member networks in the establishment of, and adherence to,
        operational, technical, and administrative policies and
        standards necessary to ensure fair, open, and competitive
        operations and communication among member networks.  CIX
        policies are formulated by a member-elected board of
        directors.

        {Home (http://cix.org/)}

        (1995-01-13)

Commercial Translator

        An English-like pre-{COBOL} language for business {data
        processing}.

        [Sammet 1969, p. 378].

        (1994-11-08)

comm mode

        <chat> /kom mohd/ (Or "com mode") An {ITS} feature supporting
        interactive on-line {chat}.

        (1998-01-18)

Commodore 1010

        <storage> A 3.5-inch floppy {disk drive} for the {Amiga}.

        (1998-12-23)

Commodore 128

        <computer> (C128) An expanded {Commodore 64}.  The C128 was
        {Commodore Business Machines}' last commercially released
        8-bit computer.  However, they did prototype the {Commodore
        65} and {Commodore SX64}.

        (1996-06-05)

Commodore 1541

        <storage> The best know {floppy disk} drive for the {Commodore
        64}.  The 1541 was a single sided 160K drive but you could
        flip the disks over for another 160K if you punched a notch to
        enable writing to the other side (the "flip side") and entered
        obscure disk commands.  The disk drive used {Group Code
        Recording} and contained a {6502} processor as a {disk
        controller}.  Some people wrote code for it to vibrate the
        head at different frequencies to play tunes.

        The transfer rate was about 300 bytes per second.  The 1541
        used a {bit-serial} version of the {IEEE 488} parallel
        protocol.  Some third-party speed-ups could transfer about 4
        kilobytes per second over the interface, and some "fast
        loaders" managed up to 10 kbps.

        The {Commodore 1570} was an upgraded 1541 for use with the
        {Commodore 128}.

        (1996-06-05)

Commodore 1570

        <storage> {Commodore Business Machines}'s allegedly "advanced"
        disk drive for use with the {C128}.  It is basically a {1541}
        with the capability to use "burst loading" (like the
        {Commodore 1571}), and lots of new {bug}s.

        The {Commodore 1571} was a double-sided version of the 1570.

        (1996-04-07)

Commodore 1571

        <storage> {Commodore Business Machines}'s "advanced" {disk
        drive} for the {C128}.  It was the double-sided version of the
        {Commodore 1570} disk drive but, unlike the 1570, worked quite
        well.

        The 1571 supported "{burst mode}" loading when used on a C128
        in native mode, which increased the transfer speed from 1541
        speed to about three kilobytes per second (about a 10-fold
        increase).  The 1571 could be told to emulate a {1541} for use
        with a {C64} or 1541 disks.

        Bugs in early releases of the 1571 {ROM} affected access to
        the second side of the disk.

        (1996-04-07)

Commodore 1581

        <storage> {Commodore Business Machines}'s 3.5 inch {disk
        drive} for the {Commodore 64} and {Commodore 128}.  The drive
        stores 800 {kilobytes} using an {MFM} format which is
        different from both {messy-dos} 720 kb, and the {Amiga} 880 kb
        formats.

        The 1581 supports a poor imitation of {directories} which are
        really just {partitions} and largely unused.  It also supports
        burst loading like the {Commodore 1571}, but is actually
        faster as it is better designed.  It has 3160 {blocks} free
        when formatted.

        The 1581 is the highest density C64 serial bus drive made by
        Commodore.  However Creative Micro Designs (CMD) make the
        {FD2000} (1.6MB) and (until recently) the {FD4000} (3.2MB)
        3.5" disk drives.  {GEOS} users like 1581s as they are very
        fast when used with GEOS.

        See also {Commodore 1541}, {Commodore 1571}.

        (1998-12-23)

Commodore 64

        <computer> (C64) An 8-bit {Commodore Business Machines}
        {personal computer} released around September 1981.
        Prototypes were (apparently) made before Christmas 1980 (and
        shown at some computer fair).

        The {CPU} was a {MOS Technolgies}(?) {6510}.  The C64 had 64
        {kilobytes} of {RAM} as standard and a 40-column text, 320x200
        {pixel} display generating {composite video}, usually
        connected to a television.

        {DMA}-based memory expanders for the C64 (and C128) allowed
        128, 256, and 512 kb of RAM.  Several third party
        manufacturers produce accelerators and RAM expanders for the
        C64 and C128.  (Some, risking a {holy war}, compare this to
        putting a brick on roller-skates).  Such accelerators come in
        speeds up to 20MHz (20 times the original) and RAM expanders
        to 16MB.

        The C64's {1541} 5.25 {floppy disk} drive had a {6502}
        processor as a {disk controller}.

        See also {Commodore 65}.

        ["Assembly language programming with the Commodore 64", Marvin
        L. De Jong].

        (1996-06-05)

Commodore 64DX

        {Commodore 65}

Commodore 65

        <computer> (Or Commodore 64DX, C65, C64DX) The last 8-bit
        computer designed by {Commodore Business Machines}, about
        1989-1991.  The C65 boasts an {ugly} collection of {custom}
        {integrated circuits} which makes even the {Amiga} hardware
        look standard.

        The core of the C65 {chipset} is the {CSG 4510} and {CSG
        4569}.  The 4510 is a {65CE02} with two {6526} {CIA}s.  The
        4569 is equivalent to a combination of the {6569} VIC-II and
        the {MMU} of the {Commodore 64}.  The C65 also has a {DMA
        controller} (Commodore's purpose built {DMAgic}) which also
        functions as a simple {blitter}, and a {floppy controller} for
        the internal {Commodore 1581}-like disk drive.  The floppy
        controller, known as the {F011}, supports seven drives (though
        the {DOS} only supports 2).  The {4510} supports all the {C64}
        {video modes}, plus an 80 column text mode, and {bitplane}
        modes.  The bitplane modes can use up to eight bitplanes, and
        {resolutions} of up to 1280 x 400.  The {palette} is 12-bit
        like the {Amiga 500}.  It also has two SID's (MOS 8580/6581)
        for stereo audio.

        The C65 has two busses, D and E, with 64 {kilobytes} of {RAM}
        on each.  The VIC-III can access the D-bus while the CPU
        accesses the E-bus, and then they can swap around.  This
        effectively makes the whole 8MB {address space} both {chip
        ram} and {fast ram}.  {RAM} expansion is accomplished through
        a {trap door} slot in the bottom which uses a {grock} of a
        connector.  The C65 has a {C128}-like native mode, where all
        of the new features are enabled, and the CPU runs at 3.5
        megahertz with its {pipeline} enabled.  It also has a C64
        {incompatibility mode} which offers approx 50-80%
        compatibility with C64 software by turning off all its {bells
        and whistles}.  The {bells and whistles} can still be accessed
        from the C64 mode, which is dissimilar to the C128's
        inescapable C64 mode.

        Production of the C65 was dropped only a few weeks before it
        moved from the Alpha stage, possibly due to Commodore's cash
        shortage.  Commodore estimate that "between 50 and 10000"
        exist.  There are at least three in Australia, about 30 in
        Germany and "some" in the USA and Canada.

        (1996-04-07)

Commodore Business Machines

        <company> (CBM) Makers of the {PET}, {Commodore 64},
        {Commodore 16}, {Commodore 128}, and {Amiga} {personal
        computers}.  Their logo is a {chicken head}.

        On 29 April 1994, Commodore International announced that it
        had been unable to renegotiate terms of outstanding loans and
        was closing down the business.  Commodore US was expected to
        go into liquidation.  Commodore US, France, Spain, and Belgium
        were liquidated for various reasons.  The names Commodore and
        Amiga were maintained after the liquidation.

        On 1995-04-21 CBM was bought by {Escom AG}, a German company
        and production of the Amiga resumed.  Production of the 8-bit
        range alledgedly never stopped during the time in liquidation
        because a Chinese company were producing the {C64} in large
        numbers for the local market there.

        (1996-07-22)

Commodore SX64

        <computer> A "portable" {Commodore 64}.  Shaped vaguely like a
        seat cushion, this cumbersome experiment in transportable
        computers had a detachable keyboard on one end which, when
        removed, revealed a 6" {monitor} and a 5 1/4" {floppy disk}
        drive.  The curious combination of a bulky design and
        microscopic display are the most likely cause for the SX64's
        discontinuation.

        [Processor?  RAM?  Dates?]

        (1997-10-25)

COMmon Algorithmic Language

        <language> (COMAL) A language for beginners developed by
        Benedict Loefstedt and Borge Christensen in 1973 and popular
        in Europe and Scandinavia.  It has a {Pascal}-like structure
        added to {BASIC}.  COMAL-80 has been adopted as an
        introductory language in Denmark.

        There is a version for the {Amiga}.

        There is a COMAL User's Group at 5501 Groveland Terr, Madison
        WI 53716, USA.

        ["Beginning COMAL", B. Christensen, Ellis Harwood 1982].

        (1995-01-11)

Common Applications Environment

        (CAE) Part of {X/Open}, based on {POSIX} and {C}.

        [Details?]

Common Applications Service Element

        {Common Application Service Element}

Common Architecture for Next Generation Internet Protocol

        <networking> (CATNIP, originally Common Architecture
        Technology for Next-generation Internet Protocol)

        A network architecture designed to provide a compressed form
        of the existing {network layer} {protocols} and to integrate
        {CLNP}, {IP}, and {IPX}.  It provides for any of the
        {transport layer} {protocols} in use, including {TP4}, {CLTP},
        {TCP}, {UDP}, {IPX}, and {SPX}, to run over any of the network
        layer protocol formats: CLNP, IP (version 4), IPX, and CATNIP.

        CATNIP was originally proposed by Robert L. Ullmann of {Lotus
        Development Corporation} on 1993-12-22.  It was published as
        {RFC} 1707 in October 1994 but it is not an {Internet}
        standard of any kind.

        (1996-03-23)

COmmon Business Oriented Language

        <language> /koh'bol/ (COBOL) A programming language for simple
        computations on large amounts of data designed by the
        {CODASYL} Committee in April 1960.  It is the most widely used
        programming language today.  The {natural language} style is
        intended to be largely self-documenting.  It introduced the
        {record} structure.

        Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS
        X3.23-1974) and 1985.

        For many {hackers}, COBOL is synonymous with {evil}, for being
        a weak, verbose, and flabby language used by {card wallopers}
        to do boring mindless things on {dinosaur} {mainframes}.  Many
        believe that all COBOL programmers are {suits} or {code
        grinders}, and would never admit to having learned the
        language.  However, as most haven't indeed, their judgement is
        somewhat questionable.

        See also {fear and loathing}, {software rot}.

        {Usenet} newsgroup: {news:comp.lang.cobol}.

        ["Initial Specifications for a Common Business Oriented
        Language" DoD, US GPO, Apr 1960].

        (1997-03-10)

common carrier

        <communications, company> (Or "phone company") A private
        company that offers telecommunications services to the public.

        (1995-03-20)

Common Command Set

        <storage, standard> (CCS) Additional requirements and features
        for direct-access {SCSI} devices.

        In 1985 when the first {SCSI} standard was being finalised as
        an {American National Standard}, the {X3T9.2} Task Group was
        approached by some manufacturers who wanted changes.  Rather
        than delay the SCSI standard, X3T9.2 formed an ad hoc group to
        define CCS.

        [Spec?  Status?  "direct-access"?]

        (1997-03-23)

Common Communication Services

        (CCS) The standard program interface to networks in {SAA}.

Common Desktop Environment

        (CDE) A {desktop} manager from {COSE}.

        (1994-10-31)

Common ESP

        <language> (CESP) A {Unix}-based version of ESP ({Extended
        Self-containing Prolog}) from the AI Language Inst,
        Mitsubishi.

        E-mail: <cesp-request@air.co.jp>.

        (1994-12-14)

Common Gateway Interface

        <World-Wide Web> (CGI) A {standard} for running external
        {programs} from a {World-Wide Web} {HTTP} {server}.  CGI
        specifies how to pass {arguments} to the executing program as
        part of the HTTP request.  It also defines a set of
        {environment variables}.  Commonly, the program will generate
        some {HTML} which will be passed back to the {browser} but it
        can also request {URL redirection}.

        CGI allows the returned HTML (or other document type) to
        depend in any arbitrary way on the request.  The CGI program
        can, for example, access information in a {database} and
        format the results as HTML.  A CGI program can be any program
        which can accept command line arguments.  {Perl} is a common
        choice for writing CGI scripts.  Some {HTTP servers} require
        CGI programs to reside in a special directory, often
        "/cgi-bin" but better servers provide ways to distinguish CGI
        programs so they can be kept in the same directories as the
        HTML files to which they are related.

        Whenever the server receives a CGI execution request it
        creates a new process to run the external program.  If the
        process fails to terminate for some reason, or if requests are
        received faster than the server can respond to them, the
        server may become swamped with processes.

        In order to improve performance, {Netscape} devised {NSAPI}
        and {Microsoft} developed the {ISAPI} standard which allow
        CGI-like tasks to run as part of the main server process, thus
        avoiding the overhead of creating a new process to handle each
        CGI invocation.

        Current version 1.1.

        {NCSA (http://hoohoo.ncsa.uiuc.edu/cgi)}.

        {Stars (http://www.stars.com/Seminars/CGI/)}.

        (1997-01-06)

Common Hardware Reference Platform

        {PowerPC Platform}

Common Intermediate Format

        <communications> (CIF, or Full CIF (FCIF) to distinguish it
        from Quarter CIF (QCIF)) A video format used in
        {videoconferencing} systems, which supports both {NTSC} and
        {PAL} signals, with a data rate of 30 frames per second (fps),
        with each frame containing 288 lines and 352 {luminance}
        {pixels} per line.  CIF is part of the {ITU} {H.261}
        videoconferencing standard.

        {QCIF}, a related video format standard, transfers one fourth
        as much data as CIF.  QCIF is defined in ITU H.261 as having
        144 lines and 176 pixels per line, with half as many
        {chrominance} pixels in each direction.  QCIF is suitable for
        {videoconferencing} systems that use telephone lines.  The
        {codec} standard specifies that QCIF compatibility is
        mandatory, and CIF compatibility is optional.

        (1999-04-22)

Common Intermediate Language

        <language> (CIL)

        [Details?]

        ["Construction of a Transportable, Milti-Pass Compiler for
        Extended Pascal", G.J. Hansen et al, SIGPLAN Notices
        14(8):117-126, Aug 1979].

        (1994-10-24)

Common Internet File System

        <protocol> (CIFS) An {Internet} {file system} {protocol},
        based on {Microsoft}'s {SMB}.  Microsoft has given CIFS to the
        {Internet Engineering Task Force} (IETF) as an Internet Draft.
        CIFS is intended to complement existing protocols such as
        {HTTP}, {FTP}, and {NFS}.

        CIFS runs on top of {TCP/IP} and uses the Internet's {Domain
        Name Service} (DNS).  It is optimised to support the slower
        speed {dial-up} connections common on the Internet.

        CIFS is more flexible than FTP.  FTP operations are carried
        out on entire files whereas CIFS is aimed at routine data
        access and incorporates high-performance multi-user read and
        write operations, {locking}, and file-sharing semantics.

        CIFS is probably closest in functionality to NFS.  NFS gives
        random access to files and directories, but is {stateless}.
        With CIFS, once a file is open, state about the current access 
        to that file is stored on both the client and the server.
        This allows changes on the server side to be notified to the 
        clients that are interested.

        {Home (http://www.cifs.com/)}.

        {What is CIFS?  (http://www.cifs.com/whatcifs.html)}.

        {CIFS: An Internet File System Protocol
        (http://msdn.microsoft.com/workshop/networking/cifs/default.asp)}.

        {CIFS: A Common Internet File System, Paul Leach and Dan Perry
        (http://www.microsoft.com/Mind/1196/CIFS.htm)}.

        {IETF Specification. CIFS version 1
        (ftp://ietf.org/internet-drafts/draft-leach-cifs-v1-spec-01.txt)}.

        (1999-08-08)

Common-ISDN-API

        {Common ISDN Application Programming Interface}

Common ISDN Application Programming Interface

        <networking> (CAPI, Common-ISDN-API) A programming interface
        standard for an application program to communicate with an
        {ISDN} card.

        Work on CAPI began in 1989, focussing on the German ISDN
        protocol, and was finished in 1990 by a CAPI working group
        consisting of application providers, ISDN equipment
        manufacturers, large customers, user groups and DBP Telekom,
        resulting in COMMON-ISDN-API Version 1.1.  Following
        completion of the international protocol specification, almost
        every telecommunication provider offers {BRI} and {PRI} with
        {protocols} based on {Q.931} / ETS 3009 102.  Common-ISDN-API
        Version 2.0 was developed to support all Q.931 protocols.

        Latest version as of 1998-09-07: 2.0.

        {Home (http://www.capi.org/)}.

        [Why not CIAPI?]

        (1998-09-07)

Common Lisp

        <language> A dialect of {Lisp} defined by a consortium of
        companies brought together in 1981 by the {Defence Advanced
        Research Projects Agency} (DARPA).  Companies included
        {Symbolics}, {Lisp Machines, Inc.}, {Digital Equipment
        Corporation}, {Bell Labs}., {Xerox}, {Hewlett-Packard},
        {Lawrence Livermore Labs}., {Carnegie-Mellon University},
        {Stanford University}, {Yale}, {MIT} and {USC Berkeley}.
        Common Lisp is {lexically scoped} by default but can be
        {dynamically scoped}.

        Common Lisp is a large and complex language, fairly close to a
        superset of {MacLisp}.  It features {lexical binding}, data
        structures using defstruct and setf, {closures}, multiple
        values, types using declare and a variety of numerical types.
        Function calls allow "&optional", keyword and "&rest"
        arguments.  Generic sequence can either be a list or an
        {array}.  It provides formatted printing using escape
        characters.  Common LISP now includes {CLOS}, an extended LOOP
        {macro}, condition system, {pretty printing} and logical
        pathnames.

        Implementations include {AKCL}, {CCL}, {CLiCC}, {CLISP},
        {CLX}, {CMU Common Lisp}, {DCL}, {KCL}, {MCL} and {WCL}.

        Mailing list: <common-lisp@ai.sri.com>.

        {ANSI Common Lisp draft proposal
        (ftp://ftp.think.com/public/think/lisp:public-review.text)}.

        ["Common LISP: The Language", Guy L. Steele, Digital Press
        1984, ISBN 0-932376-41-X].

        ["Common LISP: The Language, 2nd Edition", Guy L. Steele,
        Digital Press 1990, ISBN 1-55558-041-6].

        (1994-09-29)

Common LISP in Parallel

        (CLIP) A version of {Common LISP} from {Allegro} for the
        {Sequent Symmetry}.

        (1994-12-12)

Common LISP Object System

        (CLOS) An {object-oriented} extension to {Common LISP}, based
        on {generic function}s, {multiple inheritance}, {declarative
        method combination} and a {meta-object protocol}.  A
        descendant of {CommonLoops} and based on {Symbolics} {FLAVORS}
        and {Xerox} {LOOPS}, among others.

        See also {PCL}.

        ["Common LISP Object System Specification X3J13 Document
        88-002R", D.G.  Bobrow et al, SIGPLAN Notices 23 (Sep 1988)].

        (1994-11-30)

CommonLoops

        {Xerox}'s {object-oriented} {Lisp} which led to {CLOS}.

        See also {Portable CommonLoops}.

        {(ftp://arisia.xerox.com/pub/pcl/September-16-92-PCL-c.tar.Z)}

        ["CommonLoops: Merging Lisp and Object-Oriented Programming",
        D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29 (Nov 1986)].

        (1999-07-02)

Common Management Information Protocol

        <protocol> (CMIP) Part of the {OSI} body of {standards}
        specifying {protocol} elements that may be used to provide the
        operation and notification services described in the related
        standard, CMIS ({Common Management Information Services}).

        Document: {ISO}/{IEC} 9596, or equivalent {ITU} X.711.

        (1997-12-07)

Common Management Information Services

        (CMIS) Part of the {OSI} body of network {standard}s.

        Network management information services are used by {peer
        process}es to exchange information and commands for the
        purpose of {network management}.  CMIS defines a message set
        (GET, CANCEL-GET, SET, CREATE, DELETE, EVENT-REPORT and
        ACTION), and the structure and content of the messages such
        that they might be used by "open" systems.  In concept, it is
        similar to {SNMP}, but more powerful (and hence more complex).

        {ISO}/{IEC} 9595.

        (1995-01-12)

Common Object File Format

        (COFF) The executable and {object} file format used by {Unix
        System V} Release 3.

        {Unix manual page}: coff(5).

        (1995-01-10)

Common Object Model

        {Component Object Model}

Common Object Request Broker Architecture

        <standard, programming> (CORBA) An {Object Management Group}
        specification which provides the standard interface definition
        between OMG-compliant objects.

        Version 1.1.

        See also {COSS}.

        (1994-11-11)

Common Objects

        An {object-oriented} {Lisp} from {Hewlett-Packard}.

        ["Inheritance and the Development of Encapsulated Software
        Components", A. Snyder, Proc 20th Hawaii Conf on Sys Sci,
        pp. 227-238 (1987)].

        (1995-01-18)

Common Program Interface

        <programming> (CPI) the {API} of {SAA}.

        (1997-12-01)

Common User Access

        <programming> (CUA) the {user interface} standard of {SAA}.

        (1997-12-01)

Commonwealth Hackish

        Hacker jargon as spoken outside the US, especially in the
        British Commonwealth.  It is reported that Commonwealth
        speakers are more likely to pronounce truncations like "char"
        and "soc", etc., as spelled (/char/, /sok/), as opposed to
        American /keir/ and /sohsh/.  Dots in {newsgroup} names
        (especially two-component names) tend to be pronounced more
        often (so soc.wibble is /sok dot wib'l/ rather than /sohsh
        wib'l/).  The prefix {meta} may be pronounced /mee't*/;
        similarly, Greek letter beta is usually /bee't*/, zeta is
        usually /zee't*/, and so forth.  Preferred {metasyntactic
        variable}s include {blurgle}, "eek", "ook", "frodo", and
        "bilbo"; "wibble", "wobble", and in emergencies "wubble";
        "banana", "tom", "dick", "harry", "wombat", "frog", {fish},
        and so on and on (see {foo}).

        Alternatives to verb doubling include suffixes "-o-rama",
        "frenzy" (as in feeding frenzy), and "city" (examples: "barf
        city!"  "hack-o-rama!"  "core dump frenzy!").  Finally, note
        that the American terms "parens", "brackets", and "braces" for
        (), [], and {} are uncommon; Commonwealth hackish prefers
        "brackets", "square brackets", and "curly brackets".  Also,
        the use of "pling" for {bang} is common outside the United
        States.

        See also {attoparsec}, {calculator}, {chemist}, {console
        jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek},
        {heavy metal}, {leaky heap}, {lord high fixer}, {loose bytes},
        {muddie}, {nadger}, {noddy}, {psychedelicware}, {plingnet},
        {raster blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},
        {terminal junkie}, {tick-list features}, {weeble}, {weasel},
        {YABA}, and notes or definitions under {Bad Thing}, {barf},
        {bogus}, {bum}, {chase pointers}, {cosmic rays},
        {crippleware}, {crunch}, {dodgy}, {gonk}, {hamster},
        {hardwarily}, {mess-dos}, {nibble}, {proglet}, {root}, {SEX},
        {tweak}, and {xyzzy}.

        (1995-01-18)

Communicating Functional Processes

        (CFP)

        ["Communicating Functional Processes", M.C. van Eekelen et al,
        TR 89-3, U Nijmegen, Netherlands, 1989].

        (1994-11-30)

Communicating Sequential Processes

        <language, parallel> (CSP) A notation for {concurrency} based
        on {synchronous message passing} and selective communications
        designed by {Anthony Hoare} in 1978.  It features {cobegin}
        and coend and was a precursor to {occam}.

        See also {Contextually Communicating Sequential Processes}.

        ["Communicating Sequential Processes", A.R. Hoare, P-H 1985].

        (1994-11-01)

Communications Decency Act

        <legal> (CDA) An amendment to the U.S. 1996 Telecommunications
        Bill that went into effect on 08 February 1996, outraging
        thousands of {Internet} users who turned their {web pages}
        black in protest.  The law, originally proposed by Senator
        James Exon to protect children from obscenity on the Internet,
        ended up making it punishable by fines of up to $250,000 to
        post indecent language on the Internet anywhere that a minor
        could read it.

        The {Electronic Frontier Foundation} created {public domain}
        blue ribbon {icons} that many web authors downloaded and
        displayed on their web pages.

        On 12 June 1996, a three-judge panel in Philadelphia ruled the
        CDA unconstitutional and issued an injunction against the
        United States Justice Department forbidding them to enforce
        the "indecency" provisions of the law.  Internet users
        celebrated by displaying an animated "Free Speech" fireworks
        icon to their web pages, courtesy of the {Voters
        Telecommunications Watch}.  The Justice Department has
        appealed the decision to the U.S. Supreme Court.

        (1996-11-03)

Communications of the ACM

        <publication> (CACM) A monthly publication by the {Association
        for Computing Machinery} sent to all members.  CACM is an
        influential publication that keeps computer science
        professionals up to date on developments.  Each issue includes
        articles, case studies, practitioner oriented pieces, regular
        columns, commentary, departments, the ACM Forum, and technical
        correspondence, and advertisements.

        {Home (http://www.acm.org/cacm/)}.

        (1995-01-18)

communications port

        <hardware, communications> A connector for a communications
        interface, usually, a {serial port}.

        (1996-08-04)

Communications Server

        <operating system> {IBM}'s rebranding of {ACF}.

        (1999-01-20)

communication system

        <communications> A system or facility capable of providing
        information transfer between persons and equipment.  The
        system usually consists of a collection of individual
        communication {network}s, transmission systems, relay
        stations, tributary stations, and {terminal} equipment capable
        of interconnection and interoperation so as to form an
        integrated whole.  These individual components must serve a
        common purpose, be technically compatible, employ common
        procedures, respond to some form of control, and generally
        operate in unison.

        ["Communications Standard Dictionary", 2nd Edition, Martin
        H. Weik].

        (1995-02-06)

COMNET

        A {simulation} tool from {CACI} for analysing wide-area voice
        or data networks, based on {SIMSCRIPT}.

        (1995-01-19)

compact

        1. (Or "finite", "isolated") In {domain theory}, an element d
        of a {cpo} D is compact if and only if, for any {chain} S, a
        subset of D,

                d <= lub S  =>  there exists s in S such that d <= s.

        I.e. you always reach d (or better) after a finite number of
        steps up the chain.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-01-13)

        2. Of a design, describes the valuable property that it can
        all be apprehended at once in one's head.  This generally
        means the thing created from the design can be used with
        greater facility and fewer errors than an equivalent tool that
        is not compact.  Compactness does not imply triviality or lack
        of power; for example, {C} is compact and {FORTRAN} is not,
        but C is more powerful than FORTRAN.  Designs become
        non-compact through accreting {feature}s and {cruft} that
        don't merge cleanly into the overall design scheme (thus, some
        fans of {Classic C} maintain that {ANSI C} is no longer
        compact).

        (1995-01-13)

Compact COBOL

        A subset of {COBOL} defined, but not published, ca. 1961.

        [Sammet 1969, p. 339].

        (1995-01-19)

Compact Disc

        <storage> (CD) (Not "disk", this spelling is part of the
        standard).

        A 4.72 inch disc developed by {Sony} and {Philips} that can
        store, on the same disc, still and/or moving images in
        monochrome and/or color; stereo or two separate sound tracks
        integrated with and/or separate from the images; and digital
        program and information files.

        The same fabrication process is used to make both audio CDs
        and {CD-ROMs} for storing computer data, the only difference
        is in the device used to read the CD (the player or drive).

        {CD Information Center
        (http://www.cd-info.com/cd-info/CDInfoCenter.html)}.

        (1999-06-23)

Compact Disc interactive

        (CD-i) An embedded application of {CD-ROM} allowing the user
        limited interaction with films, games and educational
        applications via a special {controller}.

        (1994-11-02)

Compact Disc Read-Only Memory

        <storage> (CD-ROM) A {non-volatile} optical data storage
        medium using the same physical format as audio {compact
        discs}, readable by a computer with a CD-ROM drive.

        CD-ROM is popular for distribution of large databases,
        software and especially {multimedia} {applications}.  The
        maximum capacity is about 600 megabytes.  A CD can store
        around 640 {megabytes} of data - about 12 billion bytes per
        pound weight.

        CD-ROM drives are rated with a speed factor relative to music
        CDs (1x or 1-speed which gives a data transfer rate of 150
        {kilobytes} per second).  12x drives were common in April
        1997.  Above 12x speed, there are problems with vibration and
        heat.  {Constant angular velocity} (CAV) drives give speeds up
        to 20x but due to the nature of CAV the actual throughput
        increase over 12x is less than 20/12.

        20x was thought to be the maximum speed due to mechanical
        constraints but on 1998-02-24, {Samsung Electronics}
        introduced the SCR-3230, a 32x CD-ROM drive which uses a ball
        bearing system to balance the spinning CD-ROM in the drive to
        reduce noise.

        CD-ROM drives may connect to an {IDE} interface, a {SCSI}
        interface or a propritary interface, of which there are three
        - Sony, Panasonic, and Mitsumi.  Most CD-ROM drives can also
        play audio CDs.

        There are several formats used for CD-ROM data, including
        {Green Book CD-ROM}, {White Book CD-ROM} and {Yellow Book
        CD-ROM}.  {ISO 9660} defines a standard file system.

        See also {Compact Disc Recordable}, {Digital Versatile Disc}.

        {Byte, February 1997
        (http://www.byte.com/art/9702/sec17/art5.htm)}.

        (1998-03-16)

Compact Disc Read-Write

        {Compact Disc Rewritable}

Compact Disc Recordable

        <storage> (CD-R) A write-once version of {CD-ROM}.  CD-Rs can
        hold about 650 {megabytes} of data.  They are very durable and
        can be read by normal CD-ROM drives, but once data has been
        written it cannot be altered.

        Standard prerecorded CDs have their information permanently
        stamped into an aluminium reflecting layer.  CD-R discs have a
        dye-based recording layer and an additional golden reflecting
        layer.

        Digital information is written to the disc by burning
        (forming) pits in the recording layer in a pattern
        corresponding to that of a conventional CD.

        The laser beam heats the substrate and recording layer to
        approximately 250 C.  The recording layer melts and the
        substrate expands into the space that becomes available.

        {Phillips: New Technologies
        (http://www-us.sv.philips.com/newtech/cdrewritable.html)}.

        See also {CD-RW} and {DVD-RAM}.

        (1999-08-01)

Compact Disc Rewritable

        <storage> (CD-RW) A rewritable version of {CD-ROM}.  A CD-RW
        drive can write about 650 {megabytes} of data to CD-RW media
        an unlimited number of times.  Most CD-RW drives can also
        write once to {CD-R} media.

        CD-RW media cannot be read by CD-ROM drives built prior to
        1997 due to the reduced reflectivity (15% compared to 70%) of
        CD-RW media.

        CD-RW drives and media are currently (1999) more expensive
        than {CD-R} drives and media.  CD-R is sometimes considered a
        better technology for archival purposes as the data cannot be
        accidentally modified or tampered with, and encourages better
        archival practices.

        Standard prerecorded CDs have their information permanently
        stamped into an aluminium reflecting layer.  CD-WR discs have
        a phase-change recording layer and an additional silver
        (aluminium) reflecting layer.

        A laser beam can melt crystals in the recording layer into a
        non-crystalline amorphous phase or anneal them slowly at a
        lower temperature back to the crystalline state.  The different
        reflectance of the areas make them appear as the 'pits' and
        'lands' of a standard CD.

        {Phillips: New Technologies
        (http://www-us.sv.philips.com/newtech/cdrewritable.html)}.

        See also {CD-R} and {DVD-RAM}.

        (1999-08-01)

compaction

        {compression}

compactness preserving

        In {domain theory}, a function f is compactness preserving if
        f c is {compact} whenever c is.

        (1995-01-13)

Compaq Computer Corporation

        <company> The largest US manufacturer and vendor of {IBM PC
        compatible} {personal computers} and servers.  Compaq was
        started in 1982 by three ex-{Texas Instruments} employees.

        Quarterly sales $2499M, profits $210M (Aug 1994).

        {Home (http://www.compaq.com/)}

        (1995-10-24)

Compas Pascal

        The predecessor of {Turbo Pascal}, sol by {POLY Data} of
        Denmark.  It was later renamed POLY Pascal, and afterwards
        sold to {Borland}.

        (1995-01-19)

COMPASS

        COMPrehensive ASSembler.

        The {assembly language} on {CDC} computers.

        (1995-01-19)

compatibility

        {compatible}

compatible

        <jargon> Different systems (e.g., {programs}, {file formats},
        {protocols}, even {programming languages}) that can work
        together or exchange data are said to be compatible.

        See also {backward compatible}, {forward compatible}.

        (1998-01-15)

Compatible Timesharing System

        <operating system> (CTSS) One of the earliest (1963)
        experiments in the design of interactive {time-sharing}
        {operating systems}.  CTSS was ancestral to {Multics}, {Unix},
        and {ITS}.  It was developed at the {MIT} Computation Center
        by a team led by Fernando J. Corbato.  CTSS ran on a modified
        {IBM 7094} with a second 32K-word bank of memory, using two
        {2301 drums} for swapping.  {Remote access} was provided to up
        to 30 users via an {IBM 7750} {communications controller}
        connected to {dial-up} {modems}.

        The name {ITS} (Incompatible {time-sharing} System) was a hack
        on CTSS, meant both as a joke and to express some basic
        differences in philosophy about the way I/O services should be
        presented to user programs.

        (1997-01-29)

Compel

        {COMpute ParallEL}

Competitive Access Provider

        <networking> (CAP, or "Bypass Carrier") A company which
        provides network links between the customer and the
        {IntereXchange Carrier} or even directly to the {Internet
        Service Provider}.  CAPs operate private networks independent
        of {Local Exchange Carriers}.

        ["Getting Connected The Internet at 56k and Up", Kevin Dowd,
        First Edition, p. 49, O'Reilly & Associates, Inc., June 1996,
        ISBN 1-56592-154-2 (US), ISBN 1-56592-203-4 (international)].

        (1997-07-23)

compiler

        <programming, tool> A program that converts another program
        from some {source language} (or {programming language}) to
        {machine language} (object code).  Some compilers output
        {assembly language} which is then converted to {machine
        language} by a separate {assembler}.

        A compiler is distinguished from an assembler by the fact that
        each input statement does not, in general, correspond to a
        single machine instruction or fixed sequence of instructions.
        A compiler may support such features as automatic allocation
        of variables, arbitrary arithmetic expressions, control
        structures such as FOR and WHILE loops, variable {scope},
        input/ouput operations, {higher-order function}s and
        {portability} of source code.

        {AUTOCODER}, written in 1952, was possibly the first primitive
        compiler.  {Laning and Zierler}'s compiler, written in
        1953-1954, was possibly the first true working algebraic
        compiler.

        See also {byte-code compiler}, {native compiler}, {optimising
        compiler}.

        (1994-11-07)

compiler compiler

        {compiler-compiler}

Compiler-Compiler

        An early {compiler generator} for the {Atlas}, with its own
        distinctive input language.

        ["The Compiler-Compiler", R.A. Brooker et al, Ann Rev
        Automatic Programming 3:229-275, Pergamon 1963].

        (1994-10-24)

compiler-compiler

        A utility to generate the {source code} of a {parser},
        {interpreter} or {compiler} from an annotated language
        description (usually in {BNF}).  Most so called
        compiler-compilers are really just {parser generator}s.

        Examples are {Bison}, {Eli}, {FSL}, {META 5}, {MUG2},
        {Parsley}, {Pre-cc}, {Yacc}.

        (1995-01-23)

compiler jock

        A programmer who specialises in writing {compiler}s.

        (1995-01-19)

Compiler Language for Information Processing

        (CLIP) A language written in 1958-1959, based on {IAL}, which
        led to {JOVIAL}.  CLIP was one of the first languages used to
        write its own {compiler}.

        [Sammet 1969, p. 635].

        (1994-12-12)

Compiler Target Language

        (CTL) The intermediate language used by the {ALICE} parallel
        machine.

        ["The Design and Implementation of ALICE: A Parallel Graph
        Reduction Machine", M.D. Cripps et al, Proc Workshop on Graph
        Reduction, Springer 1987].

        (1994-11-14)

COMPL

        ["The COMPL Language and Operating System", A.G. Fraser et al,
        Computer J 9(2):144-156 (1966)].

        (1995-01-24)

complement

        <logic> The other value or values in the set of possible
        values.

        See {logical complement}, {bitwise complement}, {set
        complement}.

        (1995-01-24)

Complementary Metal Oxide Semiconductor

        <integrated circuit> (CMOS) A {semiconductor} fabrication
        technology using a combination of n- and p-doped semiconductor
        material to achieve low {power dissipation}.  Any path through
        a {gate} through which {current} can flow includes both n and
        p type {transistors}.  Only one type is turned on in any
        {stable state} so there is no {static power dissipation} and
        current only flows when a gate switches in order to charge the
        {parasitic capacitance}.

        (1999-06-04)

complementary nondeterministic polynomial

        <complexity> (Co-NP) The set (or property) of problems with a
        yes/no answer where the complementary no/yes problem is in the
        set {NP}.

        [Example?]

        (1995-04-27)

complete

        See also {complete graph}, {complete inference system},
        {complete lattice}, {complete metric space}, {complete partial
        ordering}, {complete theory}.

        [1. or 2. or both?]

        (1996-04-24)

complete graph

        A {graph} which has a link between every pair of nodes.  A
        complete {bipartite graph} can be partitioned into two subsets
        of nodes such that each node is joined to every node in the
        other subset.

        (1995-01-24)

complete inference system

        <logic> An {inference} system A is complete with respect to
        another system B if A can reach every conclusion which is true
        in B.  The dual to completeness is {soundness}.

        (1998-07-05)

complete lattice

        A {lattice} is a {partial ordering} of a set under a relation
        where all finite subsets have a {least upper bound} and a
        {greatest lower bound}.  A complete lattice also has these for
        infinite subsets.  Every finite lattice is complete.  Some
        authors drop the requirement for {greatest lower bound}s.

        (1994-12-02)

complete metric space

        <theory> A {metric space} in which every sequence that
        converges in itself has a limit.  For example, the space of
        {real numbers} is complete by {Dedekind's axiom}, whereas the
        space of {rational numbers} is not - e.g. the sequence a[0]=1;
        a[n_+1]:=a[n]/2+1/a[n].

        (1998-07-05)

completeness

        {complete}

complete partial ordering

        <theory> (cpo) A {partial ordering} of a {set} under a
        {relation}, where all {directed} {subsets} have a {least upper
        bound}.  A cpo is usually defined to include a least element,
        {bottom} (David Schmidt calls this a {pointed cpo}).  A cpo
        which is {algebraic} and {boundedly complete} is a (Scott)
        {domain}.

        (1994-11-30)

complete theory

        <logic> An abstract logical {theory} in which all true
        statements have formal {proofs} within the theory.

        (1998-07-05)

complete unification

        <programming> W.P. Weijland's name for {unification} without
        {occur check}.

        (1996-01-11)

Complex Instruction Set Computer

        (CISC) A processor where each instruction can perform several
        low-level operations such as memory access, arithmetic
        operations or address calculations.  The term was coined in
        contrast to {Reduced Instruction Set Computer}.

        Before the first RISC processors were designed, many computer
        architects were trying to bridge the "{semantic gap}" - to
        design {instruction set}s to support {high-level language}s by
        providing "high-level" instructions such as procedure call and
        return, loop instructions such as "decrement and branch if
        non-zero" and complex {addressing mode}s to allow data
        structure and {array} accesses to be compiled into single
        instructions.

        While these architectures achieved their aim of allowing
        high-level language constructs to be expressed in fewer
        instructions, it was observed that they did not always result
        in improved performance.  For example, on one processor it was
        discovered that it was possible to improve the performance by
        NOT using the procedure call instruction but using a sequence
        of simpler instructions instead.  Furthermore, the more
        complex the instruction set, the greater the overhead of
        decoding an instruction, both in execution time and silicon
        area.  This is particularly true for processors which used
        {microcode} to decode the (macro) instruction.  It is easier
        to debug a complex instruction set implemented in microcode
        than one whose decoding is "{hard-wired}" in silicon.

        Examples of CISC processors are the {Motorola} {680x0} family
        and the {Intel 80186} through {Intel 486} and {Pentium}.

        (1994-10-10)

complexity

        <algorithm> The level in difficulty in solving mathematically
        posed problems as measured by the time, number of steps or
        arithmetic operations, or memory space required (called time
        complexity, computational complexity, and space complexity,
        respectively).

        The interesting aspect is usually how complexity scales with
        the size of the input (the "{scalability}"), where the size of
        the input is described by some number N.  Thus an {algorithm}
        may have computational complexity O(N^2) (of the order of the
        square of the size of the input), in which case if the input
        doubles in size, the computation will take four times as many
        steps.  The ideal is a constant time algorithm (O(1)) or
        failing that, O(N).

        See also {NP-complete}.

        (1994-10-20)

complexity analysis

        In sructured program design, a quality-control operation that
        counts the number of "compares" in the logic implementing a
        function; a value of less than 10 is considered acceptable.

complexity class

        <algorithm> A collection of {algorithms} or {computable
        functions} with the same {complexity}.

        (1996-04-24)

complexity measure

        <algorithm> A quantity describing the {complexity} of a
        computation.

        (1996-04-24)

complex number

        <mathematics> A number of the form x+iy where i is the square
        root of -1, and x and y are {real number}s, known as the
        "real" and "imaginary" part.  Complex numbers can be plotted
        as points on a two-dimensional plane, known as an {Argand
        diagram}, where x and y are the {Cartesian coordinates}.

        An alternative, {polar} notation, expresses a complex number
        as (r e^it) where e is the base of {natural logarithms}, and r
        and t are real numbers, known as the magnitude and phase.  The
        two forms are related:

                r e^it = r cos(t) + i r sin(t)
                       = x + i y
        where
                x = r cos(t)
                y = r sin(t)

        All solutions of any {polynomial equation} can be expressed as
        complex numbers.  This is the so-called {Fundamental Theorem
        of Algebra}, first proved by Cauchy.

        Complex numbers are useful in many fields of physics, such as
        electromagnetism because they are a useful way of representing
        a magnitude and phase as a single quantity.

        (1995-04-10)

complex programmable logic device

        <hardware> (CPLD) A programmable circuit similar to an {FPGA},
        but generally on a smaller scale, invented by {Xilinx, Inc}.

        (1998-09-26)

component

        <programming> An {object} adhering to a {component
        architecture}.

        (1997-11-20)

component architecture

        <programming> A notion in {object-oriented} programming where
        "components" of a program are completely generic.  Instead of
        having a specialised set of {methods} and {fields} they have
        generic methods through which the component can advertise the
        functionality it supports to the system into which it is
        loaded.  This enables completely {dynamic loading} of
        {objects}.  {JavaBeans} is an example of a component
        architecture.

        See also {design pattern}.

        (1997-11-20)

component based development

        <programming> (CBD) The creation, integration, and {re-use} of
        {components} of program code, each of which has a common
        interface for use by multiple systems.

        (1999-08-23)

Component Integration Laboratories

        <project> (CIL) An effort to create a common framework for
        interoperability between {application programs} on {desktop}
        {platforms}, formed by {Apple Computer, Inc.}, {IBM},
        {Novell}, {Oracle}, {Taligent}, {WordPerfect} and {Xerox}.

        [When?  What happened?]

        (1994-10-24)

Component Object Model

        <programming> (COM) An open software architecture from {DEC}
        and {Microsoft}, allowing interoperation between
        {ObjectBroker} and {OLE}.  Microsoft evolved COM into {DCOM}.

        On page XV of Box's book in the foreword by Charlie Kindel he
        says, "It is Mark Ryland's fault that some people call COM the
        'Common Object Model.'  He deeply regrets it and apologizes
        profusely."

        ["Essential COM", Don Box].

        [Details?  URL?]

        (1999-06-12)

com port

        {communications port}

composition

        1. {function composition}.

        2. {typesetting}.

Compositional C++

        <language> (CC++) Extensions to {C++} for {compositional
        parallel programming}.

        {FTP Caltech (ftp://csvax.cs.caltech.edu/pub/comp)}

        E-mail: Carl Kesselman <carl@vlsi.cs.caltech.edu>.

        (1996-04-07)

Compound Document Architecture

        <file format> (CDA) {DEC}'s set of {standards} for compound
        document creation, storage, retrieval, interchange and
        manipulation.

        (1996-11-03)

compound key

        <database> (Or "multi-part key", "concatenated key") A {key}
        which consists of more than one {attribute} of the body of
        information (e.g. database "{record}") it identifies.

        (1997-04-26)

COMPREHENSIVE

        An early system on {MIT}'s {Whirlwind}.

        [Listed in CACM 2(5):16 (May 1959)].

Comprehensive Perl Archive Network

        <tool> (CPAN) A collection of {Internet} {archives} containing
        material related to the {Perl} programming language.

        {Master site (ftp://ftp.funet.fi/pub/languages/perl/CPAN/)},
        {Africa (ftp://ftp.is.co.za/programming/perl/CPAN/)}, {Taiwan
        (ftp://dongpo.math.ncu.edu.tw/perl/CPAN/)}, {Japan
        (ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/)}, {Australia NU
        (ftp://coombs.anu.edu.au/pub/perl/)}, {Australia MU
        (ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/)}, {NZ
        (ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/)} {SI
        (ftp://ftp.arnes.si/software/perl/CPAN/)}, {Portugal
        (ftp://ftp.ci.uminho.pt/pub/lang/perl/)}, {NL
        (ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/)}, {UK Demon
        (ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/)}, {Finland
        (ftp://ftp.funet.fi/pub/languages/perl/CPAN/)}, {France IBP
        (ftp://ftp.ibp.fr/pub/perl/CPAN/)}, {Europe LEO
        (ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/)},
        {France Pastur
        (ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/)},
        {Germany
        (ftp://ftp.rz.ruhr-uni-bochum.de/pub/programming/languages/perl/CPAN/)}
,
        {Sweden (ftp://ftp.sunet.se/pub/lang/perl/CPAN/)},
        {Switzerland (ftp://ftp.switch.ch/mirror/CPAN/)}, {UK HENSA
        (ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/)}, {USA UFL
        (ftp://ftp.cis.ufl.edu/pub/perl/CPAN/)}, {USA Delphi
        (ftp://ftp.delphi.com/pub/mirrors/packages/perl/CPAN/)}, {USA
        SEDL (ftp://ftp.sedl.org/pub/mirrors/CPAN/)}, {USA Sterling
        (ftp://ftp.sterling.com/programming/languages/perl/)}, {USA
        UOKNOR (ftp://ftp.uoknor.edu/mirrors/CPAN/)}, {USA UIUC
        (ftp://uiarchive.cso.uiuc.edu/pub/lang/perl/CPAN/)}.

        (1996-06-04)

Comprehensive TeX Archive Network

        <text> (CTAN) An {archive site} for the {TeX} text formatting
        package.

        {(http://www.tex.ac.uk)}.  {Gopher
        (gopher://gopher.tex.ac.uk/)}.  {(ftp://ftp.tex.ac.uk/)}.
        NFS: nfs.tex.ac.uk.

        (1995-01-18)

compress

        <tool> When used without a qualifier, generally refers to
        {compression} of a file using a particular {C} implementation
        of compression for {Unix} by Joseph M. Orost, James A. Woods
        et al. widely circulated via {Usenet}.  compress uses the
        {Lempel-Ziv Welch} {algorithm} and normally produces files
        with the suffix ".Z".

        Compress uses variable length codes.  Initially, nine bit
        codes are output until they are all used.  When this occurs,
        ten bit codes are used and so on until an implementation
        dependent maximum is reached.

        After every 10 kilobytes of input the compression ratio is
        checked.  If it is descreasing then the entire string table is
        discarded and information is collected from scratch.

        (1996-10-20)

Compressed SLIP

        <networking> (CSLIP) {VanJacobsen TCP header compression}.  A
        version of {SLIP} using {compression}.  CSLIP has no effect on
        the data portion of the {packet} and has nothing to do with
        compression by {modem}.  It does reduce the {TCP} header from
        40 bytes to 7 bytes, a noticeable difference when doing
        {telnet} with lots of little packets.  CSLIP has no effect on
        UDP, only TCP.

        (1995-05-28)

compressed video

        The result of {video compression}.

compression

        1. <application> (Or "compaction") The coding of data to save
        storage space or transmission time.  Although data is already
        coded in digital form for computer processing, it can often be
        coded more efficiently (using fewer bits).  For example,
        {run-length encoding} replaces strings of repeated characters
        (or other units of data) with a single character and a count.
        There are many compression {algorithms} and utilities.
        Compressed data must be decompressed before it can be used.

        The standard {Unix} compression utilty is called {compress}
        though {GNU}'s {gzip} is better.  Other compression utilties
        include {pack}, {zip} and {PKZIP}.

        When compressing several similar files, it is usually better
        to join the files together into an {archive} of some kind
        (using {tar} for example) and then compress them, rather than
        to join together individually compressed files.  This is
        because some common compression {algorithm}s build up tables
        based on the data from their current input which they have
        already compressed.  They then use this table to compress
        subsequent data more efficiently.

        See also {TIFF}, {JPEG}, {MPEG}, {Lempel-Ziv Welch}.

        There is a compression {FAQ} at
        {(ftp://rtfm.mit.edu/pub/usenet/news.answers/compression-faq/)}.

        {Usenet} newsgroups: {news:comp.compression},
        {news:comp.compression.research}.

        2. <multimedia> Reducing the dynamic range of an audio signal,
        making quiet sounds louder and loud sounds quieter.  Thus,
        when discussing digital audio, the preferred term for reducing
        the total amount of data is "compaction".  Some advocate this
        term in all contexts.

        (1999-10-22)

COMPROSL

        COMpound PROcedural Scientific Language.

        A language for scientists and engineers.

        [Sammet 1969, pp. 299-300].

Compu$erve

        (Or "CompuSpend", "Compu$pend") A pejorative name for
        {CompuServe Information Service} ({CI$}) drawing attention to
        perceived high charges.

        (1994-11-08)

Compulink Information eXchange

        (CIX) A London-based conferencing system, also providing
        {electronic mail}, {FTP}, {telnet}, {IRC}, {Gopher} and
        {World-Wide Web}.  Includes conferences "archimedes" or "bbc"
        for users of {Acorn} computers.

        E-mail: <cixadmin@cix.compulink.co.uk>.

        Telephone: +44 (181) 390 8446.

        (1994-11-08)

CompuServe Corporation

        <company> The parent organisation of {CompuServe Information
        Service}, CompuServe Network Services and CompuServe Remote
        Computing Services.  CompuServe was owned by H.R. Block but is
        now (1999) owned by {America On-Line}.

        {Home (http://www.compuserve.com/)}.

        (1995-09-12)

CompuServe Information Service

        (CIS) One of the services run by {CompuServe Corporation}.
        CIS provides a wide variety of information and services,
        including {bulletin board}s, on-line conferencing, business
        news, sports and weather, financial transactions, {electronic
        mail}, travel and entertainment data as well as on-line
        editions of computer publications.  CompuServe Information
        Service should not be confused with CompuServe Corporation's
        other sectors which offer many other services besides the
        consumer information service.

        CIS is a large international conferencing system (albeit with
        a heavy US bias).  It provides an access to the {Usenet} news
        (GO INTERNET).  More comprehensive {Internet} access is
        planned for the end of 1994.  Forum UKCOMP topic Acorn/Z88 is
        the place to find {Acorn} users.

        Compuserve's main competitors are {AOL} and {Prodigy}.

        {Home (http://www.compuserve.com/)}

        Telephone: +44 (181) 801 2001 (London), +44 (121) 632 4858
        (Birmingham), +44 (1734) 391 064 or 569 025 (Reading), +44
        (1272) 255 111 (Bristol).

        (1995-09-12)

Compusult Ltd.

        A computer consulting firm (in Newfoundland, Canada?) that
        provides a public access {Unix}.

        (1994-10-20)

computability theory

        <mathematics> The area of theoretical computer science
        concerning what problems can be solved by any computer.

        A function is computable if an {algorithm} can be implemented
        which will give the correct output for any valid input.

        Since computer programs are {countable} but {real numbers} are
        not, it follows that there must exist real numbers that
        cannot be calculated by any program.  Unfortunately, by
        definition, there isn't an easy way of describing any of them!

        In fact, there are many tasks (not just calculating real
        numbers) that computers cannot perform.  The most well-known
        is the {halting problem}, the {busy beaver} problem is less
        famous but just as fascinating.

        ["Computability", N.J. Cutland. (A well written
        undergraduate-level introduction to the subject)].

        ["The Turing Omnibus", A.K. Dewdeney].

        (1995-01-13)

computable

        {computability theory}

Computational Adequacy Theorem

        This states that for any program (a non-function typed term in
        the {typed lambda-calculus} with constants) {normal order
        reduction} (outermost first) fails to terminate if and only if
        the {standard semantics} of the term is {bottom}.  Moreover,
        if the reduction of program e1 terminates with some {head
        normal form} e2 then the standard semantics of e1 and e2 will
        be equal.  This theorem is significant because it relates the
        operational notion of a reduction sequence and the
        {denotational semantics} of the input and output of a
        reduction sequence.

computational complexity

        <algorithm> The number of steps or arithmetic operations
        required to solve a computational problem.  One of the three
        kinds of {complexity}.

        (1996-04-24)

computational geometry

        <mathematics> The study of {algorithms} for combinatorial,
        topological, and metric problems concerning sets of points,
        typically in {Euclidean space}.  Representative areas of
        research include geometric search, convexity, proximity,
        intersection, and {linear programming}.

        (1997-08-03)

computational learning

        {grammatical inference}

COMpute ParallEL

        <language> (Compel) The first {single-assignment} language.

        ["A Language Design for Concurrent Processes", L.G. Tesler et
        al, Proc SJCC 32:403-408, AFIPS (Spring 1968)].

        (1995-01-19)

Computer

        <publication> A journal of the {IEEE Computer Society}.

        (1995-03-10)

computer

        <computer> A machine that can be programmed to manipulate
        symbols.  Computers can perform complex and repetative
        procedures quickly, precisely and reliably and can quickly
        store and retrieve large amounts of data.

        The physical components from which a computer is constructed
        (electronic circuits and input/output devices) are known as
        "{hardware}".  Most computers have four types of hardware
        component: CPU, input, output and memory.  The CPU ({central
        processing unit}) executes programs ("{software}") which tell
        the computer what to do.  Input and output (I/O) devices allow
        the computer to communicate with the user and the outside
        world.  There are several kinds of memory - fast, expensive,
        short term memory (e.g. {RAM}) to hold intermediate results,
        and slower, cheaper, long-term memory (e.g. {magnetic disk} and
        {magnetic tape}) to hold programs and data between jobs.

        See also {analogue computer}.

        (1995-03-10)

Computer Aided Design

        <application> (CAD) The part of {CAE} concerning the drawing
        or physical layout steps of engineering design.  Often found
        in the phrase "CAD/CAM" for ".. manufacturing".

        (1994-11-30)

Computer Aided Engineering

        <application> (CAE) Use of computers to help with all phases
        of engineering design work.  Like {computer aided design}, but
        also involving the conceptual and analytical design steps.

        [Does it include manufacturing?  Example systems?]

        (1994-10-28)

Computer-Aided Instruction

        <application, education> (CAI, or "assisted", "learning", CAL)
        The use of (personal) computers for education and training.

        (1995-04-13)

Computer-Aided Learning

        {Computer-Aided Instruction}

Computer Aided Software Engineering

        <programming> (CASE, or "assisted") A technique for using
        computers to help with one or more phases of the {software
        life-cycle}, including the systematic analysis, design,
        implementation and maintenance of software.  Adopting the CASE
        approach to building and maintaining systems involves software
        tools and training for the developers who will use them.

        (1996-05-10)

Computer-Aided Software Testing

        <programming> (CAST) Automated software testing in one or more
        phases of the {software life-cycle}.

        (1996-05-10)

Computer Animation Movie Language

        ["A Computer Animation Movie Language for Educational Motion
        Pictures", D.D. Weiner et al, Proc FJCC 33(2), AFIPS (Fall
        1968)].

        (1994-11-30)

Computer-Assisted Learning

        {Computer-Aided Instruction}

Computer-Assisted Software Engineering

        {Computer-Aided Software Engineering}

Computer Associates

        <company> (CA) A US software development company, best known
        for {Ingres} which they got by buying out {ASK Corporation}.

        Quarterly sales $477M, profits -$86M (Aug 1994).

        (1995-04-19)

Computer-Based Training

        <application> (CBT) Training (of humans) done by interaction
        with a computer.  The programs and data used in CBT are known
        as "courseware."

        (1995-03-13)

Computer Compiler

        Proposed language for compiler design.

        [Sammet 1969, p. 695].

computer confetti

        Synonym {chad}.  Though this term is common, this use of
        punched-card chad is not a good idea, as the pieces are stiff
        and have sharp corners that could injure the eyes.  GLS
        reports that he once attended a wedding at MIT during which he
        and a few other guests enthusiastically threw chad instead of
        rice.  The groom later grumbled that he and his bride had
        spent most of the evening trying to get the stuff out of their
        hair.

Computer Conservation Society

        (CCS) A specialist group of the {British Computer Society}.

        See also {Bletchley Park}.

        (1994-11-17)

computer crime

        <legal> Breaking the criminal law by use of a computer.

        See also {computer ethics}, {software law}.

        (1997-07-09)

Computer Design Language

        An {ALGOL}-like language for computer design.

        ["An ALGOL-like Computer Design Language", Y. Chu, CACM 8(10)
        (Oct 1965)].

        (1994-11-17)

computer dictionary

        {Free On-line Dictionary of Computing}

Computer Emergency Response Team

        (CERT) An organisation formed by {DARPA} in November 1988 in
        response to the needs exhibited during the {Internet worm}
        incident.  The CERT charter is to work with the {Internet}
        community to facilitate its response to computer security
        events involving Internet hosts, to take proactive steps to
        raise the community's awareness of computer security issues
        and to conduct research targeted at improving the security of
        existing systems.  CERT products and services include 24-hour
        technical assistance for responding to computer security
        incidents, product vulnerability assistance, technical
        documents and tutorials.

        {(ftp://cert.org)}

        E-mail: <cert@cert.org>.

        Telephone +1 (412) 2687090 (24-hour hotline).

        (1994-11-17)

computer ethics

        <philosophy> Ethics is the field of study that is concerned
        with questions of value, that is, judgments about what human
        behaviour is "good" or "bad".  Ethical judgments are no
        different in the area of computing from those in any other
        area.  Computers raise problems of privacy, ownership, theft
        and power, to name but a few.

        Computer ethics can be grounded in one of four basic
        world-views: Idealism, Realism, Pragmatism, or Existentialism.
        Idealists believe that reality is basically ideas and that
        ethics therefore involves conforming to ideals.  Realists
        believe that reality is basically nature and that ethics
        therefore involves acting according to what is natural.
        Pragmatists believe that reality is not fixed but is in
        process and that ethics therefore is practical (that is,
        concerned with what will produce socially-desired results).
        Existentialists believe reality is self-defined and that
        ethics therefore is individual (that is, concerned only with
        one's own conscience).  Idealism and Realism can be considered
        ABSOLUTIST worldviews because they are based on something
        fixed (that is, ideas or nature, respectively).  Pragmatism
        and Existentialism can be considered RELATIVIST worldviews
        because they are based or something relational (that is,
        society or the individual, respectively).

        Thus ethical judgments will vary, depending on the judge's
        world-view.  Some examples:

        First consider theft.  Suppose a university's computer is used
        for sending an e-mail message to a friend or for conducting a
        full-blown private business (billing, payroll, inventory,
        etc.).  The absolutist would say that both activities are
        unethical (while recognising a difference in the amount of
        wrong being done).  A relativist might say that the latter
        activities were wrong because they tied up too much memory and
        slowed down the machine, but the e-mail message wasn't wrong
        because it had no significant effect on operations.

        Next consider privacy.  An instructor uses her account to
        acquire the cumulative grade point average of a student who is
        in a class which she instructs.  She obtained the password for
        this restricted information from someone in the Records Office
        who erroneously thought that she was the student's advisor.
        The absolutist would probably say that the instructor acted
        wrongly, since the only person who is entitled to this
        information is the student and his or her advisor.  The
        relativist would probably ask why the instructor wanted the
        information.  If she replied that she wanted it to be sure
        that her grading of the student was consistent with the
        student's overall academic performance record, the relativist
        might agree that such use was acceptable.

        Finally, consider power.  At a particular university, if a
        professor wants a computer account, all she or he need do is
        request one but a student must obtain faculty sponsorship in
        order to receive an account.  An absolutist (because of a
        proclivity for hierarchical thinking) might not have a problem
        with this divergence in procedure.  A relativist, on the other
        hand, might question what makes the two situations essentially
        different (e.g. are faculty assumed to have more need for
        computers than students?  Are students more likely to cause
        problems than faculty?  Is this a hold-over from the days of
        "in loco parentis"?).

        {"Philosophical Bases of Computer Ethics" by Professor Robert
        N. Barger (gopher://imcsrv.eiu.edu:70/1cpt-eths/papers.70)}.

        {Usenet} newsgroups: {news:bit.listserv.ethics-l},
        {news:alt.soc.ethics}.

        (1995-10-25)

computer geek

        <jargon> (Or "turbo nerd", "turbo geek") One who eats
        (computer) {bugs} for a living.  One who fulfils all the
        dreariest negative stereotypes about {hackers}: an asocial,
        malodourous, pasty-faced monomaniac with all the personality
        of a cheese grater.  The term cannot be used by outsiders
        without implied insult to all {hackers}; compare
        black-on-black usage of "nigger".  A computer geek may be
        either a fundamentally clueless individual or a proto-hacker
        in {larval stage}.

        See also {Alpha Geek}, {propeller head}, {clustergeeking},
        {geek out}, {wannabee}, {terminal junkie}, {spod}, {weenie}.

        (1997-06-26)

computer-generated imagery

        <graphics> (CGI) Animatied graphics produced by computer and
        used in film or television.

        (1998-10-13)

Computer Generation Incorporated

        <company> (CGI) A US software development company and systems
        integrator.

        {Home (http://www.compgen.com/)}.

        E-mail: Paul G. Smith <pauls@compgen.com>

        Telephone: +1 (404) 705 2800

        Address: Bldg. G, 4th Floor, 5775 Peachtree-Dunwoody Rd.,
        Atlanta, GA 30342, USA.

        (1997-02-11)

Computer Graphics Metafile

        <graphics, file format> (CGM) A standard file format for
        storage and communication of graphical information, widely
        used on {personal computers} and accepted by {desktop
        publishing} and technical illustration systems.

        {MIME type}: image/cgm.

        {ANSI}/{ISO} 8632-1987.  Worked on by the {ISO}/{IEC} group
        {JTC1/SC24}.

        {CGM Open Consortium (http://www.cgmopen.org/)}.

        See also: {WebCGM}.

        (1999-02-16)

computer language

        {programming language}

computer law

        <legal> Apart from {software law}, other relevant laws include
        those concerning the sale of goods.  Communication law is more
        relevant to the {Internet}, it has to do with media issues in
        general, e.g. free speech.

        (1994-12-05)

computer literacy

        <education> Basic skill in use of computers, from the
        perspective of such skill being a necessary societal skill.

        The term was coined by Andrew Molnar, while director of the
        Office of Computing Activities at the {National Science
        Foundation}.

        "We started computer literacy in '72 [...] We coined that
        phrase.  It's sort of ironic.  Nobody knows what computer
        literacy is.  Nobody can define it.  And the reason we
        selected [it] was because nobody could define it, and [...] it
        was a broad enough term that you could get all of these
        programs together under one roof" (cited in Aspray, W.,
        (September 25, 1991) "Interview with Andrew Molnar," OH
        234. Center for the History of Information Processing, Charles
        Babbage Institute, University of Minnesota).

        The term, as a coinage, is similar to earlier coinages, such
        as "visual literacy", which {Merriam-Webster
        (http://www.m-w.com/)} dates to 1971, and the more recent
        "media literacy".

        (1998-09-07)

Computer Mediated Communication

        <messaging> (CMC) Communication that takes place through, or
        is facilitated by, computers.  Examples include {Usenet} and
        {e-mail}, but CMC also covers real-time {chat} tools like
        {lily (http://www.lily.org/)}, {IRC}, and even {video
        conferencing}.

        (1996-11-26)

computer nerd

        {computer geek}

computer network

        {network}

Computer Output to Laser Disk

        <storage> (COLD) The capture of large (typically {mainframe}
        generated) reports on optical media such that sections are
        accessible as individual documents.  A successor technology to
        "COM" (Computer Output on Microfilm).

        [Example application?]

        (1997-02-05)

Computer Professionals for Social Responsibility

        (CPSR) A non-profit organisation whose mission is to provide
        the public and policymakers with realistic assessments of the
        power, promise and problems of information technology and the
        effects of computers on society.  CPSR is supported by its
        membership and has chapters throughout the USA.  CPSR sponsors
        conferences such as our Annual Meeting, Directions and
        Implications in Advanced Computing (DIAC), the Participatory
        Design Conference (PDC) and the Computers, Freedom and Privacy
        (CFP) conference.

        {Home (http://www.cpsr.org/home)}

        (1994-11-30)

computer program

        {software}

Computer + Science NETwork

        (CSNET) The networking organisation which combined with
        {BITNET} to form {CREN}.

        (1994-11-30)

computer security

        {security}

computer sex

        <jargon> Two computers interfaced with each other.

        (1996-02-22)

Computer Supported Cooperative Work

        <tool> (CSCW) (Or "groupware") Software tools and technology
        to support groups of people working together on a project,
        often at different sites.

        See also {Lotus Notes}.

        (1994-11-30)

Computer Telephone Integration

        <communications> (CTI or "- Telephony -") Enabling computers
        to know about and control telephony functions such as making
        and receiving voice, {fax}, and data calls, telephone
        directory services, and caller identification.  The
        integration of telephone and computer systems and is a major
        development in the evolution of the automated office.

        CTI is not a new concept - such links have been used in the
        past in large telephone networks - but only dedicated call
        centres could justify the costs of the required equipment
        installation.  Primary telephone service providers are now
        beginning to offer information services such as {Automatic
        Number Identification} and {Dialled Number Identification
        Service} on a scale wide enough for its implementation to
        bring real value to business or residential telephone usage.
        A new generation of applications ({middleware}) is being
        developed as a result of standardisation and availability of
        low cost computer-telephony links.  This can link {personal
        computers} with telephones and/or a local area server with a
        {PBX}.  Leading telephony and {software} vendors such as
        {AT&T}, {British Telecom}, {IBM}, {Novell}, {Microsoft} and
        {Intel} are developing better telephony services and
        capabilities which should eventually enable low cost CTI.

        The main {CTI} functions are integrating {messaging} with
        {databases}, {word processors} etc.; controlling voice, {fax},
        and {e-mail} messaging systems from a single {application
        program}; graphical call control - using a {graphical user
        interface} to perform functions such as making and receiving
        calls, forwarding and conferencing; call and {data}
        association - provision of information about the caller from
        databases or other applications automatically before the call
        is answered or transferred; {speech synthesis} and {speech
        recognition}; automatic logging of call related information
        for invoicing purposes or callback.

        Typical productivity benefits are improved customer service;
        increased productivity; reduced costs; enhanced workflow
        automation; protected investment in computers and telephony;
        computerised telephony intelligence.

        IBM were one of the first with workable CTI, now sold as
        "CallPath".  {Callware}'s {Phonetastic} is typical of the new
        breed of {middleware}.

        See also {Telephony Application Programming Interface}.

        (1996-12-08)

Computer Telephony Integration

        {Computer Telephone Integration}

computer virus

        {virus}

computer vision

        A branch of {artificial intelligence} and {image processing}
        concerned with computer processing of images from the real
        world.  Computer vision typically requires a combination of
        low level {image processing} to enhance the image quality
        (e.g. remove noise, increase contrast) and higher level
        {pattern recognition} and {image understanding} to recognise
        features present in the image.

        {Usenet} newsgroup: {news:comp.ai.vision}.

        (1994-11-30)

compute server

        <computer, parallel> A kind of {parallel processor} where the
        parallel processors have no I/O except via a bus or other
        connection to a {front-end processor} which handles all I/O to
        disks, {terminals} and network.

        In some antiquated {IBM} {mainframe}s, a second CPU was
        provided that could not access I/O devices, known as the slave
        or attached processor, while the CPU having access to all
        devices was known as the master processor.

        (1995-03-19)

computing

        {computer}

Computing Devices Canada Ltd.

        <company> Canada's largest defence electronics company.  It
        has extensive {hardware} and {software} developmental
        capabilities.  Its list of achievements includes: direct and
        indirect fire control {systems}, vehicle electronics,
        reconnaissance vehicle surveillance systems, computerised
        laser sight for anti-tank weapons, tactical {communication
        systems}, headquarters information distribution system,
        tactical voice and distribution systems, acoustic signal
        processing, ASW mission systems, sonobuoy {processors}, active
        sonar systems, towed array sonar systems, tactical acoustic
        trainer, {Mil-Spec} {electroluminiscent displays}, large
        multi-sensor displays, coastal intrusion detection systems,
        and fibre-optic distribution systems.

        Computing Devices Canada was founded in 1948 and is part of
        the Ceridian group of companies, owned 100% by the
        Minneapolis-based company.

        Annual revenue for 1996 was $376 million.

        (1997-07-31)

computing dictionary

        {Free On-line Dictionary of Computing}

computron

        /kom'pyoo-tron"/ 1. A notional unit of computing power
        combining instruction speed and storage capacity, dimensioned
        roughly in instructions-per-second times
        megabytes-of-main-store times megabytes-of-mass-storage.
        "That machine can"t run GNU EMACS, it doesn't have enough
        computrons!"  This usage is usually found in metaphors that
        treat computing power as a fungible commodity good, like a
        crop yield or diesel horsepower.  See {bitty box}, {Get a real
        computer!}, {toy}, {crank}.

        2. A mythical subatomic particle that bears the unit quantity
        of computation or information, in much the same way that an
        electron bears one unit of electric charge (see also {bogon}).
        An elaborate pseudo-scientific theory of computrons has been
        developed based on the physical fact that the molecules in a
        solid object move more rapidly as it is heated.  It is argued
        that an object melts because the molecules have lost their
        information about where they are supposed to be (that is, they
        have emitted computrons).  This explains why computers get so
        hot and require air conditioning; they use up computrons.
        Conversely, it should be possible to cool down an object by
        placing it in the path of a computron beam.  It is believed
        that this may also explain why machines that work at the
        factory fail in the computer room: the computrons there have
        been all used up by the other hardware.  (This theory probably
        owes something to the "Warlock" stories by Larry Niven, the
        best known being "What Good is a Glass Dagger?", in which
        magic is fuelled by an exhaustible natural resource called
        "mana".)

Compuware Corporation

        <company> A {software} and service company with over 11,000
        employees worldwide, including more than 7,000 in its
        professional services organization.  Since 1973, Compuware has
        focused on optimising business software development, testing,
        and operation.  With revenues of more than $1.6 billion in
        1999, Compuware is a world leader in {client-server}
        development.

        {Home (http://www.compuware.com/)}.

        Telephone: +1 (800) 521 9353.

        (1999-06-14)

COMSL

        ["COMSL - A Communication System Simulation Language",
        R.L. Granger, Proc FJCC 37 (1970)].

COMTRAN

        ["Communications Computer Language COMTRAN", D.W. Clark et al,
        RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY,
        July 1969].

        [Sammet 1969, p.324, 331].

con

        [SF fandom] A science-fiction convention.  Not used of other
        sorts of conventions, such as professional meetings.  This
        term, unlike many others of SF-fan slang, is widely recognised
        even by hackers who aren't {fan}s. "We'd been corresponding on
        the net for months, then we met face-to-face at a con."

ConC

        <language> A {concurrent} extension of {C} based on
        {decomposed Petri net}s.  It uses the 'handshake' and 'unit'
        constructs.

        ["ConC: A Language for Distributed Real-Time Programming",
        V.K. Garg et al, Computer Langs 16(1):5-18 (1991)].

        (1995-03-02)

concatenate

        To join together two or more files or lists to form one big
        one.

        The {Unix} {cat} command can be used to concatenate files.

        (1995-12-22)

concatenated key

        {compound key}

concentrator

        <communications> A kind of {multiplexor} where many inputs may
        be active simultaneously so the output bandwidth must be at
        least as great as the total bandwidth of all simultaneously
        active inputs.

        For example, a concentrator may be used to connect 24 2400 bps
        TTYs to a host via a 57600 bps channel.

        (1995-03-02)

conceptualisation

        <artificial intelligence> The collection of objects, concepts
        and other entities that are assumed to exist in some area of
        interest and the relationships that hold among them.  A
        conceptualisation is an {abstract}, simplified view of the
        world that we wish to represent.  For example, we may
        conceptualise a family as the set of names, sexes and the
        relationships of the family members.  Choosing a
        conceptualisation is the first stage of {knowledge
        representation}.

        Every {knowledge base}, {knowledge-based system}, or
        {knowledge-level agent} is committed to some
        conceptualisation, explicitly or implicitly.

        (1994-10-19)

Concert/C

        IBM TJWRC, July 1993.  A parallel extension of ANSI C with
        asynchronous {message passing}.

        {(ftp://software.watson.ibm.com/pub/concert/cncrt.B1.tar.Z)}.
        E-mail: <concert-c@watson.ibm.com>.

ConCoord

        <programming, parallel> An environment for programming
        networks of sequential and parallel computers.  ConCoord
        offers two contributions to {concurrent} programming.  First,
        it supports explicit exploitation of a variety of grains of
        concurrency.  Second, it separates the treatment of sequential
        and of concurrent aspects of programming into computation and
        "coordination" respectively.  Sequential {algorithm}s can be
        reused within computation and concurrent ones within
        coordination.

        (1995-05-01)

concrete class

        <programming> In {object-oriented programming}, a {class}
        suitable to be instantiated, as opposed to an {abstract
        class}.

        (1995-05-01)

Concrete Data Structure

        (CDS) A model of programming language terms developed in the
        context of constructing fully abstract semantics for
        sequential languages.  A CDS is a 4-tuple (C,V,E,|-) where C
        is a cell, V is a value, E is an event and |- is an "enabling
        relation".  An event is a cell and a value.  A cell C is
        "enabled" by a set of events S if S |- C.  A state is a set of
        events which are consistent in that the values they give for
        any cell are all equal.  Every cell in a state is enabled.

        [G. Berry, P.-L. Curien, "Theory and practice of sequential
        algorithms: the kernel of applicative language CDS", Algebraic
        methods in semantics, CUP 1985].

        (1994-11-30)

concrete syntax

        <language> The concrete syntax of a language including all the
        features visible in the source program such as {parentheses}
        and {delimiters}.  The concrete syntax is used when {parsing}
        the program or other input, during which it is usually
        converted into some kind of {abstract syntax tree}.

        Compare: {abstract syntax}.

        (1997-07-21)

CONCUR

        ["CONCUR, A Language for Continuous Concurrent Processes",
        R.M.  Salter et al, Comp Langs 5(3):163-189 (1981)].

concurrency

        {multitasking}

Concurrent C

        1. An extension of {C} with {rendezvous}-based {concurrency}.
        Versions for most {Unix} systems are available commercially
        from {AT&T}.

        ["Concurrent C", N.H. Gehani et al, Soft Prac & Exp
        16(9):821-844 (1986)].

        ["The Concurrent C Programming Language", N. Gehani et al,
        Silicon Press 1989].

        (1994-11-11)

        2. An extension of {C} with {asynchronous} {message passing}.

        ["Concurrent C: A Language for Distributed Systems",
        Y. Tsujino et al, Soft Prac & Exp 14(11):1061-1078 (Nov
        1984)].

        (1994-11-11)

Concurrent C++

        ["Concurrent C++: Concurrent Programming with Class(es)",
        N. Gehani, Bell labs 1986].

Concurrent Clean

        <language> An alternative name for {Clean} 1.0.

        (1995-11-08)

Concurrent CLU

        Hamilton, 1984.

        ["Preserving Abstraction in Concurrent Programming", R. Cooper
        et al, IEEE Trans Soft Eng SE-14(2):258-263 (Feb 1988)].

Concurrent Euclid

        A concurrent extension of a subset of {Euclid} ("{Simple
        Euclid}") developed by J.R. Cordy and R.C. Holt of the
        {University of Toronto} in 1980.

        It features {separate compilation}, {modules}, processes and
        {monitor}s, {signal} and {wait} on {condition variable}s,
        'converters' to defeat {strong type checking}, absolute
        addresses.  All procedures and functions are {re-entrant}.
        {TUNIS} (a {Unix}-like {operating system}) is written in
        Concurrent Euclid.

        ["Specification of Concurrent Euclid", J.R. Cordy & R.C. Holt,
        Reports CSRI-115 & CSRI-133, CSRI, U Toronto, Jul 1980,
        rev. Aug 1981].

        ["Concurrent Euclid, The Unix System, and Tunis," R.C. Holt,
        A-W, 1983].

Concurrent LISP

        ["A Multi-Processor System for Concurrent Lisp", S.  Sugimoto
        et al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143].

Concurrent Massey Hope

        <language, functional programming> An extension of {Massey
        Hope}, by Peter Burgess, Robert Pointon, and Nigel Perry
        <N.Perry@massey.ac.nz> of {Massey University}, NZ, that
        provides {multithreading} and {type}d inter-{thread}
        communication.  It uses {C} for {intermediate code} rather
        than {assembly language}.

        (1999-08-04)

Concurrent ML

        (CML) A {concurrent} extension of {SML/NJ} written by J. Reppy
        at Cornell in 1990.  CML supports dynamic {thread} creation
        and synchronous {message passing} on typed channels.  Threads
        are implemented using first-class {continuation}s.
        First-class synchronous operations allow users to tailor their
        synchronisation abstractions for their application.  CML also
        supports both {stream I/O} and low-level I/O in an integrated
        fashion.

        Version 0.9.8 requires SML/NJ 0.75 (or later).

        {(ftp://ftp.cs.cornell.edu/pub/)}

        E-mail: <cml-bugs@cs.cornell.edu> (bugs),
        <sml-bugs@research.att.com> (bugs).

        ["CML: A Higher-Order Concurrent Language", John H. Reppy,
        SIGPLAN Notices 26(6):293-305 (June 1991)].

        (1994-12-21)

Concurrent Oberon

        A {concurrent} version of {Oberon}.  There is an
        implementation the {Ceres} {workstation}.

        ["Adding Concurrency to the Oberon System", S. Lalis et al,
        ETH Zurich, 1993].

        (1994-11-11)

Concurrent Object-Oriented Language

        (COOL) An extension of {C++} with task-level parallelism for
        {shared-memory} {multi-processor}s.

        ["COOL: A Language for Parallel Programming", R. Chandra
        <rohit@seagull.stanford.edu> et al in Languages and Compilers
        for Parallel Computing, D. Gelernter et al eds, MIT Press
        1990, pp. 126-148].

        E-mail: Rohit Chandra <rohit@cool.stanford.edu>.

        (1994-11-30)

Concurrent Pascal

        An extension of a Pascal subset, {Sequential Pascal},
        developed by Brinch Hansen in 1972-75.  Concurrent Pascal was
        the first language to support {monitor}s.  It provided access
        to hardware devices through monitor calls and supported also
        processes and {class}es.

        ["The Programming Language Concurrent Pascal", Per Brinch
        Hansen, IEEE Trans Soft Eng 1(2):199-207 (Jun 1975)].

        (1994-11-30)

Concurrent Prolog

        A {Prolog} variant with {guarded clause}s and
        {committed-choice nondeterminism} ({don't-care
        nondeterminism}) by Ehud "Udi" Shapiro, Yale
        <shapiro-ehud@yale.edu>.  A subset has been implemented, but
        not the full language.

        See also {Mandala}.

        ["Concurrent Prolog: Collected Papers", E. Shapiro, V.1-2, MIT
        Press 1987].

        (1994-11-30)

Concurrent Scheme

        A parallel {Lisp}, for the {Mayfly} by M. Swanson
        <swanson%teewinot@cs.utah.edu>.

        ["Concurrent Scheme", R.R. Kessler et al, in Parallel Lisp:
        Languages and Systems, T. Ito et al eds, LNCS 441, Springer
        1989].

        (1994-11-30)

ConcurrentSmalltalk

        A {concurrent} variant of {Smalltalk}.

        ["Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et
        al in Object-Oriented Concurrent Programming, A. Yonezawa et
        al eds, MIT Press 1987, pp. 129-158].

        (1994-11-30)

Concurrent SP/k

        <language> (CSP/k) A {PL/I}-like {concurrent} language.

        ["Structured Concurrent Programming with Operating System
        Applications", R.C. Holt et al, A-W 1978].

        (1997-12-15)

condela

        Connection Definition Language.

        A {procedural}, parallel language for defining {neural
        network}s.

        {(ftp://tut.cis.ohio-state.edu/pub/condela)}

        (1994-11-30)

condition out

        To prevent a section of code from being compiled by
        surrounding it with a {conditional compilation} directive
        whose condition is always false.  The {canonical} examples of
        these directives are "#if 0" (or "#ifdef notdef", though some
        find the latter bletcherous) and "#endif" in {C}.  Compare
        {comment out}.

        (1994-11-30)

condom

        1. The protective plastic bag that accompanies 3.5-inch
        microfloppy diskettes.  Rarely, also used of (paper) disk
        envelopes.  Unlike the write protect tab, the condom (when
        left on) not only impedes the practice of {SEX} but has also
        been shown to have a high failure rate as drive mechanisms
        attempt to access the disk - and can even fatally frustrate
        insertion.

        2. The protective cladding on a {light pipe}.

        3. "keyboard condom": A flexible, transparent plastic cover
        for a keyboard, designed to provide some protection against
        dust and {programming fluid} without impeding typing.

        4. "elephant condom": the plastic shipping bags used inside
        cardboard boxes to protect hardware in transit.

        (1995-03-14)

Conference On DAta SYstems Languages

        <database> (CODASYL) An ancient and obsolete {database} model
        which was nonetheless the first to allow one-to-many
        {relations}.

        (1998-03-16)

Conferencing over IP

        <communications, standard> (CoIP) The {IMTC} Activity Group
        trying to standardise {IP Telephony} through the use of
        {ITU-T} {H.323}.

        The VoIP forum of the {IMTC} merged with the H.323 Activity
        Group in January 1999 to form the Conferencing over IP (CoIP)
        Activity Group.

        VoIP uses "VoIP Devices" as {gateways} to {route} voice
        {packets} over the Internet or {PSTN}.  It uses {protocols}
        such as {SGCP} and its successor {MGCP}.

        {Home (http://www.imtc.org/act_coipbody.htm)}.

        (1999-03-17)

confidence test

        <testing> Tests to confirm that the results of a program lie
        within certain ranges according to the expected probability
        distribution.

        (1997-10-27)

CONFIG.SYS

        <operating system> A {text file} containing special system
        configuration commands.  It is found in the {root directory}
        on an {MS-DOS} computer, typically on {drive} C (the {hard
        disk}).  It is read by {MS-DOS} at {boot time}, after the
        setup has been read from from {CMOS RAM} and before running
        {AUTOEXEC.BAT}.  It can be modified by the user.

        Some example commands which CONFIG.SYS might contain are:

                DEVICE=C:\DOS\HIMEM.SYS /testmem:off

        Load the {extended memory} manager.

                DEVICE=C:\DOS\EMM386.EXE RAM

        Load the {expanded memory} manager.

                BUFFERS=10,0

        Specify memory for {disk buffer}s.

                FILES=70

        Set the number of files that can be open at once.

                DOS=UMB

        DOS is located in {UppeMemoryBlock}.

                LASTDRIVE=Z

        Disk drives are A: to Z:.

                FCBS=16,0

        Set the number of {file control block}s.

                DEVICEHIGH /L:1,12048 =C:\DOS\SETVER.EXE

        Report the DOS version to older programs.

                DOS=HIGH

        DOS should maintain a link to {UMB}.

                COUNTRY=358,437 C:\DOS\COUNTRY.SYS

        Set the {country code} for some programs.

                STACKS=9,256

        Set {dynamic stack}s for hardware control.

                SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /p

        Set the location of the {command interpreter}.

        (1995-03-16)

configuration item

        <jargon> Hardware or software, or an aggregate of both, which
        is designated by the project configuration manager (or
        contracting agency) for {configuration management}.

        (1996-05-29)

configuration management

        <job> A discipline applying technical and administrative
        controls to:

        1. Identification and documentation of physical and functional
        characteristics of {configuration item}s.

        2. Any changes to characteristics of those configuration
        items.

        3. Recording and reporting of change processing and
        implementation of the system.

        See also {code management}, {software life-cycle}.

        (1996-05-29)

configuration programming

        <programming> An approach that advocates the use of a separate
        configuration language to specify the coarse-grain structure
        of programs.  Configuration programming is particularly
        attractive for {concurrent}, parallel and distributed systems
        that have inherently complex program structures.

        {Darwin} is an example of a configuration language.

        (1995-03-14)

conflation

        <database> Combining or blending of two or more versions of a
        text; confusion or mixing up.  Conflation {algorithms} are
        used in {databases}.

        [Any specific technical meaning?]

        (1996-04-14)

ConflictNet

        An IGC network serving groups and individuals working for
        social justice and conflict resolution.  ConflictNet's
        resources include guidelines for choosing a neutral third
        party, sample case development in conflict resolution,
        extensive bibliographies, legislative updates, educational
        materials and newsletters from around the world.

congestion

        When the offered load of a data communication path exceeds the
        capacity.

CONIC

        ["Dynamic Configuration for Distributed Systems", J. Kramer et
        al, IEEE Trans Soft Eng SE-11(4):424-436 (Apr 1985)].

conjunction

        {AND}

Conjunctive Normal Form

        <logic> (CNF) A {logical formula} consisting of a
        {conjunction} of {disjunctions} of terms where no disjunction
        contains a conjunction.  Such a formula might also be
        described as a product of sums.  E.g. the CNF of

                (A and B) or C
        is
                (A or C) and (B or C).

        Contrast {Disjunctive Normal Form}.

        (1995-12-10)

connect

        <library, networking> {Unix} socket library routine to connect
        a socket that has been created on the local hosts to one at a
        specified socket address on the remote host.

        {Unix manual pages}: connect(2), accept(2).

        (1995-03-21)

connected graph

        <mathematics> A {graph} such that there is a path between any
        pair of nodes (via zero or more other nodes).

        Thus if we start from any node and visit all nodes connected
        to it by a single edge, then all nodes connected to any of
        them, and so on, then we will eventually have visited every
        node in the connected graph.

        (1996-09-22)

connected subgraph

        <mathematics> A {connected graph} consisting of a {subset} of
        the {nodes} and {edges} of some other graph.

        (1996-09-22)

connectionless protocol

        The data communication method in which communication occurs
        between {host}s with no previous setup.  {Packet}s sent
        between two hosts may take different routes.  {UDP} is a
        connectionless protocol.  Also called {packet switching}.
        Contrast {circuit switching}, {connection-oriented}.

Connection Machine LISP

        <language> {Lisp} with a parallel data structure, the
        'xapping', an array of values assigned to an {array} of sites.

        [G.L. Steele et al, "Connection Machine LISP: Fine-Grained
        Parallel Symbolic Processing", in Proc 1986 ACM Conf on LISP
        and Functional Prog, Aug 1986, pp.279-297].

        ["Connection Machine LISP Reference Manual", Thinking Machines
        Corp, Feb 1987].

        (1995-02-28)

connection-oriented

        <networking> (Or connection-based, stream-oriented).  A type
        of {transport layer} data communication service that allows a
        {host} to send data in a continuous stream to another host.
        The transport service will guarantee that all data will be
        delivered to the other end in the same order as sent and
        without duplication.  Communication proceeds through three
        well-defined phases: connection establishment, data transfer,
        connection release.  The most common example is {Transmission
        Control Protocol} (TCP).

        Opposite of {connectionless}, {datagram}.  See also {circuit
        switching}, {packet switching}, {virtual circuit}.

connection-oriented network service

        <networking> (CONS) Because of the relatively long transit
        delays and inferior bit error rate of {WAN}s, a more
        sophisticated {connection-oriented} {protocol} is normally
        used.

        (1997-11-08)

connective

        An operator used in logic to combine two logical formulas.
        See {first order logic}.

connector conspiracy

        [probably came into prominence with the appearance of the
        KL-10 (one model of the {PDP-10}), none of whose connectors
        matched anything else].  The tendency of manufacturers (or, by
        extension, programmers or purveyors of anything) to come up
        with new products that don't fit together with the old stuff,
        thereby making you buy either all new stuff or expensive
        interface devices.  The KL-10 Massbus connector was actually
        *patented* by {DEC}, which reputedly refused to licence the
        design and thus effectively locked third parties out of
        competition for the lucrative Massbus peripherals market.
        This policy is a source of never-ending frustration for the
        diehards who maintain older PDP-10 or VAX systems.  Their
        {CPU}s work fine, but they are stuck with dying, obsolescent
        disk and tape drives with low capacity and high power
        requirements.

        A closely related phenomenon, with a slightly different
        intent, is the habit manufacturers have of inventing new screw
        heads so that only Designated Persons, possessing the magic
        screwdrivers, can remove covers and make repairs or install
        options.  Older Apple {Macintosh}es took this one step
        further, requiring not only a hex wrench but a specialised
        case-cracking tool to open the box.

        In these latter days of open-systems computing this term has
        fallen somewhat into disuse, to be replaced by the observation
        that "Standards are great!  There are so *many* of them to
        choose from!"  Compare {backward combatability}.

CONNIVER

        {Artificial intelligence} language for {automatic theorem
        proving}.  An outgrowth of {PLANNER}, based on {coroutine}s
        rather than {backtracking}.  Allowed multiple database
        contexts with hypothetical assertions.

        ["The CONNIVER Reference Manual", D. McDermott & G.J. Sussman
        <gjs@zurich.ai.mit.edu>, AI Memo 259, MIT AI Lab, 1973].

        (1995-01-10)

Co-NP

        {complementary nondeterministic polynomial}

CONS

        {connection-oriented network service}

cons

        /konz/ or /kons/ [LISP, "construct"] A {Lisp} function which
        takes an element H and a list T and returns a new list whose
        head is H and whose tail is T.

        In {Lisp}, "cons" is the most fundamental operation for
        building structures.  It actually takes any two objects and
        returns a "{dotted-pair}" or two-branched tree with one object
        hanging from each branch.  Because the result of a cons is an
        object, it can be used to build {binary tree}s of any shape
        and complexity.

conservative evaluation

        Under this parallel evaluation strategy, no evaluation is
        started unless it is known to be needed.
        Opposite of speculative evaluation.

considered harmful

        Edsger W. Dijkstra's note in the March 1968 "Communications of
        the ACM", "Goto Statement Considered Harmful", fired the first
        salvo in the structured programming wars.  Amusingly, the ACM
        considered the resulting acrimony sufficiently harmful that it
        will (by policy) no longer print an article taking so
        assertive a position against a coding practice.  In the
        ensuing decades, a large number of both serious papers and
        parodies have borne titles of the form "X considered Y".  The
        structured-programming wars eventually blew over with the
        realisation that both sides were wrong, but use of such titles
        has remained as a persistent minor in-joke.

consistently complete

        [{domain theory}] {boundedly complete}.

console

        1. The operator's station of a {mainframe}.  In times past,
        this was a privileged location that conveyed godlike powers to
        anyone with fingers on its keys.  Under {Unix} and other
        modern {time-sharing} {operating system}s, such privileges are
        guarded by passwords instead, and the console is just the
        {tty} the system was booted from.  Some of the mystique
        remains, however, and it is traditional for {sysadmin}s to
        post urgent messages to all users from the console (on Unix,
        /dev/console).

        2. On {microcomputer} {Unix} boxes, the main screen and
        keyboard (as opposed to character-only terminals talking to a
        {serial port}).  Typically only the console can do real
        graphics or run {X}.  See also {CTY}.

console jockey

        {terminal junkie}

Consortium for Lexical Research

        (CLR) The Consortium for Lexical Research is a repository for
        natural language processing software, lexical data, tools and
        resources.  It was set up in July 1991 in the Computing
        Research Laboratory of New Mexico State University, Las
        Cruces, New Mexico.

        CLR maintains a public ftp site, and a separate members-only
        library.  Currently (Feb 1994) CLR has about 60 members,
        mostly academic institutions, including most US natural
        language processing centres.  Materials can be contributed to
        the archives in exchange for membership.

        {(ftp://clr.nmsu.edu/)} (128.123.1.12).  E-mail:
        <lexical@crl.nmsu.edu>.

constant angular velocity

        <storage> (CAV) A {disk} driving scheme in which the {angular
        velocity} of the disk is kept constant.  This means that the
        {linear velocity} of the disk be larger when the reading or
        writing the outer tracks.  The disadvantage of this technique
        is that the read/write speed varies from track to track.
        However, as mechanical stability puts an upper limit on the
        angular velocity (and not the linear velocity) this allows the
        full potential of the drive is used.

        (1998-03-27)

constant applicative form

        (CAF) (Functional programming) A {supercombinator} which is
        not a {lambda abstraction}.  This includes truly constant
        expressions such as 12, (+ 1 2), [1,2,3] as well as partially
        applied functions such as (+ 4).  Note that this last example
        is equivalent under {eta abstraction} to \ x . + 4 x which is
        not a CAF.

        Since a CAF is a supercombinator, it contains no free
        variables.  Moreover, since it is not a lambda abstraction it
        contains no variables at all.  It may however contain
        identifiers which refer to other CAFs, e.g.

                c 3 where c = (* 2).

        A CAF can always be lifted to the top level of the program.
        It can either be compiled to a piece of graph which will be
        shared by all uses or to some shared code which will overwrite
        itself with some graph the first time it is evaluated.  A CAF
        such as

                ints = from 1  where  from n = n : from (n+1)

        can grow without bound but may only be accessible from within
        the code of one or more functions.  In order for the {garbage
        collector} to be able to reclaim such structures, we associate
        with each function a list of the CAFs to which it refers.
        When garbage collecting a reference to the function we collect
        the CAFs on its list.

        (1994-11-30)

constant folding

        <compiler> A {compiler} {optimisation} technique where
        constant subexpressions are evaluated at {compile time}.  This
        is usually only applied to built-in numerical and {boolean}
        operators whereas {partial evaluation} is more general in that
        expressions involving user-defined functions may also be
        evaluated at compile time.

        (1997-02-20)

Constantine/Yourdon

        {Yourdon/Constantine}

constant linear velocity

        <storage> (CLV) A {disk} driving scheme in which the {linear
        velocity} of the disk is kept constant.  This requires that
        the {angular velocity} of the disk be larger when the reading
        or writing tracks closer to the axis.  The advantage of this
        technique is that the read/write speed is constant.  However,
        as mechanical stability puts an upper limit on the angular
        velocity (and not the linear velocity) using the same linear
        velocity throughout, i.e., using less then the maximal angular
        velocity at outer tracks means that the full potential of the
        drive is not used.

        (1998-03-27)

constant mapping

        Some TCP software constructs the destination Ethernet address
        from the top 24 bits of the Ethernet address followed by the
        low 24 bits of the (class A) destination Internet address.
        For this scheme the top 24 bits of the Ethernet address must
        be the same on all hosts on the net.  Contrast {ARP}.

constraint

        <programming, mathematics> A {Boolean} relation, often an
        equality or {ineqality} relation, between the values of one or
        more variables (often two).  E.g. x>3 is a constraint on x.
        {constraint satisfaction} is the process of assigning values
        to variables so that all constraints are true.

        {Usenet} newsgroup: {news:comp.constraints}.  {FAQ
        (http://web.cs.city.ac.uk/archive/constraints/constraints.html)}.

        (1997-02-20)

constraint functional programming

        (CFP) {Functional programming} plus {constraint}s.

Constraint Handling In Prolog

        <language> (CHIP) A {constraint logic programming} language
        developed by M. Dincbas at {ECRC}, Munich, Germany in 1985
        which includes {Boolean unification} and a symbolic
        {simplex}-like {algorithm}.  CHIP introduced the
        {domain-variable model}.

        ["The Constraint Logic Programming Language CHIP", M. Dincbas
        et al, Proc 2nd Intl Conf on Fifth Generation Computer Sys,
        Tokyo (Nov 1988), pp.249-264].

        ["Constraint Satisfaction in Logic Programming", Van
        Hentenryck.  Available from COSYTEC, 4 rue Jean Rostand,
        F91893 Orsay, France].

        (1994-11-15)

ConstraintLisp

        An {object-oriented} {constraint} language based on {CSP}.  An
        extension of {Common Lisp} and {CLOS}.

        ["ConstraintLisp: An Object-Oriented Constraint Programming
        Language", Bing Liu <bing@iti.gov.sg> et al, SIGPLAN Notices
        27(11):17-26 (Nov 1992)].

Constraint Logic Programming

        (CLP) A programming framework based (like {Prolog}) on {LUSH}
        (or {SLD}) {resolution}, but in which {unification} has been
        replaced by a {constraint solver}.  A CLP {interpreter}
        contains a Prolog-like {inference engine} and an {incremental
        constraint solver}.  The engine sends constraints to the
        solver one at a time.  If the new constraint is consistent
        with the collected constraints it will be added to the set.
        If it was inconsistent, it will cause the engine to
        {backtrack}.

        {CLP*} is a variant.

        ["Constraint Logic Programming", J. Jaffar et al, 14th POPL,
        ACM 1987].

        (1994-11-01)

CONSTRAINTS

        A language for solving {constraint}s using {value inference}.

        ["CONSTRAINTS: A Language for Expressing Almost-Hierarchical
        Descriptions", G.J. Sussman et al, Artif Intell 14(1):1-39
        (Aug 1980)].

        (1994-11-01)

constraint satisfaction

        <application> The process of assigning values to variables
        while meeting certain requirements or "{constraints}".  For
        example, in {graph colouring}, a node is a variable, the
        colour assigned to it is its value and a link between two
        nodes represents the constraint that those two nodes must not
        be assigned the same colour.  In {scheduling}, constraints
        apply to such variables as the starting and ending times for
        tasks.

        The {Simplex} method is one well known technique for solving
        numerical constraints.

        The search difficulty of constraint satisfaction problems can
        be determined on average from knowledge of easily computed
        structural properties of the problems.  In fact, hard
        instances of {NP-complete} problems are concentrated near an
        abrupt transition between under- and over-constrained
        problems.  This transition is analogous to phase transitions
        in physical systems and offers a way to estimate the likely
        difficulty of a constraint problem before attempting to solve
        it with search.

        {Phase transitions in search
        (ftp://parcftp.xerox.com/pub/dynamics/constraints.html)} (Tad
        Hogg, {XEROX PARC}).

        (1995-02-15)

constructed type

        A type formed by applying some {type constructor function} to
        one or more other types.  The usual constructions are
        functions: t1 -> t2, products: (t1, t2), sums: t1 + t2 and
        lifting: lift(t1).

        (In {LaTeX}, the lifted type is written with a subscript
        {\perp}).

        See also {algebraic data type}, {primitive type}.

        (1995-02-03)

constructive

        <mathematics> A proof that something exists is "constructive"
        if it provides a method for actually constructing it.
        {Cantor}'s proof that the {real number}s are {uncountable} can
        be thought of as a *non-constructive* proof that {irrational
        number}s exist.  (There are easy constructive proofs, too; but
        there are existence theorems with no known constructive
        proof).

        Obviously, all else being equal, constructive proofs are
        better than non-constructive proofs.  A few mathematicians
        actually reject *all* non-constructive arguments as invalid;
        this means, for instance, that the law of the {excluded
        middle} (either P or not-P must hold, whatever P is) has to
        go; this makes proof by contradiction invalid.  See
        {intuitionist logic} for more information on this.

        Most mathematicians are perfectly happy with non-constructive
        proofs; however, the constructive approach is popular in
        theoretical computer science, both because computer scientists
        are less given to abstraction than mathematicians and because
        {intuitionist logic} turns out to be the right theory for a
        theoretical treatment of the foundations of computer science.

        (1995-04-13)

Constructive Cost Model

        <programming> (COCOMO) A method for evaluating the cost of a
        {software} package proposed by Dr Barry Boehm.  There are a
        number of different types:

        The Basic COCOMO Model estimates the effort required to
        develop software in three modes of development ({Organic
        Mode}, {Semidetached Mode}, or {Embedded Mode}) using only
        {DSI}s as an input.  The Basic model is good for quick, early,
        and rough order of magnitude estimates.

        The Intermediate COCOMO Model an extension of the Basic COCOMO
        model.  The Intermediate model uses an {Effort Adjustment
        Factor} (EAF) and slightly different coefficients for the
        effort equation than the Basic model.  It produces better
        results than the Basic model because the user supplies
        settings for cost drivers that determine the effort and
        duration of the software projects.  The Intermediate model
        also allows the system to be divided and estimated in
        components.  DSI values and cost drivers can be chosen for
        individual components instead of for the system as a whole.

        The Detailed COCOMO Model differs from the Intermediate COCOMO
        model in that it uses effort multipliers for each phase of the
        project.  These phase dependent effort multipliers yield
        better estimates because the {cost driver} ratings may be
        different during each phase.  The detailed model also provides
        a three-level product hierarchy and has some other
        capabilities such as a procedure for adjusting the phase
        distribution of the development schedule.

        ["Software Engineering Economics", B. Boehm, Prentice-Hall,
        1981].

        (1996-05-29)

constructive solid geometry

        <graphics> (CSG) A method for describing the geometry of
        complex scenes by applying set operations to primitive
        objects.

        See also {CSG-tree}.

        [What operations?  What objects?]

        (1998-06-09)

constructor

        <programming> 1. In {functional programming} and {type
        theory}, one of the symbols used to create an object with an
        {algebraic data type}.

        2. A function provided by a {class} in {C++} and some other
        {object-oriented languages} to {instantiate} an object,
        i.e. to name it and initialise it.  The constructor function
        has the same name as the class.  A class may also have a
        {destructor} function to destroy objects of that class.

        (1994-10-20)

Consul

        <language> A {constraint}-based [{future}-based?] language
        with {Lisp}-like {syntax}.

        ["Consul: A Parallel Constraint Language", D. Baldwin, IEEE
        Software 6(4):62-71].

        (1994-11-30)

container class

        A {class} whose instances are collections of other objects.
        Examples include {stack}s, {queue}s, {list}s and {array}s.

content addressable memory

        (CAM, or "associative memory") A kind of storage device which
        includes comparison logic with each bit of storage.  A data
        value is broadcast to all words of storage and compared with
        the values there.  Words which match are flagged in some way.
        Subsequent operations can then work on flagged words, e.g. read
        them out one at a time or write to certain bit positions in
        all of them.  A CAM can thus operate as a {data parallel}
        ({SIMD}) processor.

        CAMs are often used in {cache}s and {memory management unit}s.

        (1995-02-16)

content-based information retrieval

        <image, algorithm> (CBIR) A general term for methods for using
        information stored in image archives.

        [Details?]

        [IEEE Computer, September 1995].

        (1995-11-23)

Content Data Model

        (CDM) An {SGML}-based {DoD} specification for interactive
        manuals.

        (1995-02-15)

content-free

        1. (By analogy with "context-free") Used of a message that
        adds nothing to the recipient's knowledge.  Though this
        adjective is sometimes applied to {flamage}, it more usually
        connotes derision for communication styles that exalt form
        over substance or are centred on concerns irrelevant to the
        subject ostensibly at hand.  Perhaps most used with reference
        to speeches by company presidents and other professional
        manipulators.

        See also {four-colour glossies}.

        2. Within British schools the term refers to general-purpose
        software such as a {word processor}, a {spreadsheet} or a
        program that tests spelling of words supplied by the teacher.
        This is in contrast to software designed to teach a particular
        topic, e.g. a plant growth simulation, an interactive periodic
        table or a program that tests spelling of a predetermined list
        of words.  Content-free software can be more cost-effective as
        it can be reused for many lessons throughout the syllabus.

        (1998-08-26)

contention slot

        (Or contention period).  Minimum time a {host} must transmit
        for before it can be sure that no other host's {packet} has
        collided with its transmission.  If the maximum propagation
        delay from one host to any other is T, then a host that starts
        to transmit at time t0 may collide with a host that starts
        just before t0 + T.  The first host will not detect the
        collision until time t0 + 2T.

context

        That which surrounds, and gives meaning to, something else.

        <grammar> In a {grammar} it refers to the symbols before and
        after the symbol under consideration.  If the syntax of a
        symbol is independent of its context, the grammar is said to
        be {context-free}.

context clash

        <grammar> When a {parser} cannot tell which alternative
        {production} of a {syntax} applies by looking at the next
        input {token} ("lexeme").

        E.g. given syntax

                C -> A | b c

                A -> d | b e

        If you're parsing non-terminal C and the next token is 'b',
        you don't know whether it's the first or second alternative of
        C since they both can start with b.

        To discover whether a grammar has a context clash:

        For each non-terminal, N, with multiple alternatives, look at
        the first symbol of each alternative's right-hand side, call
        it s.  If s is the empty string, then find the set FOLLOWER(N)
        otherwise find the set FIRST*(s).  If any of the sets for N's
        alternatives intersect then there will be a context clash when
        parsing N.  If the next input symbol is one of those in the
        intersection of two sets then you won't know which of the
        alternatives applies.

        FIRST(s) is the set of symbols with which s can start,
        including s itself.  If s is a non-terminal then FIRST(s) also
        includes the first symbol of each alternative right-hand side
        of s.  The '*' in FIRST*(s) means the "{transitive closure}"
        of FIRST which means keep applying FIRST to each element of
        the result until the result doesn't change.  I.e. start with
        just the set R = {s}, then for each non-terminal x in R, add
        FIRST(x) to R.  Keep doing this until nothing new is added.
        (We are really only interested in the terminals in FIRST*(s)
        but some definitions include the non-terminals).

        FOLLOWER(N) is the set of symbols which can come after N in a
        sentence.  Find each occurrence of N on the right-hand side of
        a rule, e.g.

                M -> ... | ... N ... | ...

        If there is a symbol s immediately following N then add
        FIRST*(s) to the result (again, we're only interested in the
        terminal symbols in FIRST*(s)) if there is no symbol after N
        in the alternative then add FOLLOWER(M) to the result (i.e. if
        N can be the last symbol in an M then anything that can follow
        M can also follow N).

        If a grammar can generate the same sentence in multiple
        different ways (with different parse tress) then it is
        ambiguous.  An ambiguity must start with a context clash (but
        not all context clashes imply ambiguity).  The context clash
        occurs when trying to parse the first token of the phrase with
        multiple parses - you will not be able to tell which
        alternative to take.  To see if a context clash is also a case
        of ambiguity you would need to follow the alternatives
        involved in each context clash to see if they can generate the
        same complete sequence of tokens.

        (1995-04-05)

context-free

        Said of a {grammar} where the syntax of each constituent is
        independent of the symbols occuring before and after it in a
        sentence.  {Parser}s for such grammars are simpler than those
        for context-dependent grammars because the parser need only
        know the current symbol.

context-sensitive menu

        <operating system> A {menu} which appears in response to a
        user action (typically a {mouse} click) and whose contents are
        determined by which {application window} was clicked or has
        the {input focus}.

        Most {GUI}s use a secondary mouse button (right or middle) to
        call up a context-sensitive menu as the {primary mouse button}
        is normally used to interact with objects which are already
        visible.

        The context-sensitive menu often contains functions that are
        also available in a {menu bar} but the context-sensitive menu
        provides quick access to a subset of functions that are
        particularly relevant to the window area clicked on.

        The {RISC OS} {WIMP} uses only context-sensitive menus (always
        invoked using the middle mouse button).  This saves screen
        space and reduces mouse movement compared to a {menu bar}.

        (1999-09-22)

context switch

        <operating system> When a {multitasking} {operating system}
        stops running one {process} and starts running another.  Many
        operating systems implement concurrency by maintaining
        separate environments or "contexts" for each process.  The
        amount of separation between processes, and the amount of
        information in a context, depends on the operating system but
        generally the OS should prevent processes interfering with each
        other, e.g. by modifying each other's memory.

        A context switch can be as simple as changing the value of the
        {program counter} and {stack pointer} or it might involve
        resetting the {MMU} to make a different set of memory {pages}
        available.

        In order to present the user with an impression of parallism,
        and to allow processes to respond quickly to external events,
        many systems will context switch tens or hundreds of times per
        second.

        (1996-12-18)

Contextually Communicating Sequential Processes

        (CCSP) A notation based on {CSP}.

        ["Contextually Communicating Sequential Processes - A Software
        Engineering Approach", M. Hull et al, Software Prac & Exp
        16(9):845-864 (Sept 1986)].

        (1994-11-01)

continental drift

        In 1980 {David Turner} remarked that {KRC} ran "at the speed
        of the continental drift".

        (1994-12-06)

continuation

        See {continuation passing style}.

Continuation Passing Style

        (CPS) A semantically clean language with continuations used as
        an intermediate language for {Scheme} and the {SML/NJ}
        {compiler}.

        ["Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474, MIT
        (May 1978)].

        ["Compiling With Continuations", A. Appel, Cambridge U Press
        1992].

continuation passing style

        <programming> (CPS) A style of programming in which every user
        function f takes an extra argument c known as a continuation.
        Whenever f would normally return a result r to its caller, it
        instead returns the result of applying the continuation to r.
        The continuation thus represents the whole of the rest of the
        computation.  Some examples:

         normal (direct style)    -->   continuation passing

         square x = x * x               square x k = k (x*x)

         g (square 23)                  square 23 g

         (square 3) + 1                 square 3 ( \ s . s+1 )

        (1995-04-04)

continuations

        See {continuation passing style}.

continuous function

        A function f : D -> E, where D and E are {cpo}s, is continuous
        if it is {monotonic} and

                f (lub Z) = lub { f z | z in Z }

        for all {directed} sets Z in D.  In other words, the image of
        the lub is the lub of any directed image.

        All {additive} functions (functions which preserve all lubs)
        are continuous.  A continuous function has a {least fixed
        point} if its {domain} has a least element, {bottom} (i.e. it
        is a cpo or a "pointed cpo" depending on your definition of a
        cpo).  The {least fixed point} is

                fix f = lub {f^n bottom | n = 0..infinity}

        (1994-11-30)

Continuous System Modeling Program

        (CSMP) A program for {simulation} of dynamics of continuous
        systems.  It is similar to {CSSL}.

        ["A Guide to Using CSMP - The Continuous System Modeling
        Program", Frank H. Speckhart et al, P-H 1976].

        (1995-02-23)

continuous wave

        <communications> (CW) A term from early radio history, when
        the {spark gap} method of transmission was replaced by
        vacuum-tube oscillators.  A spark gap initiates a ringing,
        damped sinusoidal wave in a tuned circuit consisting of an
        inductor and capacitor.  The energy in this circuit is
        constantly changing between the capacitor's electrostatic
        field and the inductor's magnetic field.  The energy is then
        coupled, loosely (so as not to dampen the wave too quickly),
        to the radiating antenna.

        In contrast, a vacuum-tube oscillator constantly adds energy
        to the tuned circuit, compensating for the amount coupled to
        the antenna, and the transmitted energy or "wave," is
        therefore "continuous".

        Many (especially radio amateurs) continue to understand "CW"
        to mean transmission by means a signal of a single frequency
        which is either on or off (e.g. {Morse code}), as opposed to a
        carrier which varies continuously in amplitude, frequency or
        phase.  Some would even call the former "unmodulated" even
        though turning on and off is actually an extreme form of
        amplitude modulation.

        (1995-03-15)

contraction

        {reduction}

control

        <character> (Or "ctrl", "^") One (or a pair) of {modifier
        keys} found on all modern {keyboards}.  If the control key is
        held down while pressing and releasing certain other keys then
        a "{control character}" is generated, e.g. holding control and
        hitting "A" generates control-A ({ASCII} code 1).  The ASCII
        code for the control character is generally 64 less than that
        for the unmodified character.

        The control key does not generate any character on its own but
        most modern keyboards and {operating systems} allow a program
        to tell whether each of the individual keys on the keyboard
        (including modifier keys) is pressed at any time.

        Control characters mostly have some kind of "non-printing"
        effect on the output such as ringing the bell (Control-G) or
        advancing to the next line (Control-J).  Most have alternative
        names suggesting these functions (Bell, Line Feed, etc.).

        See {ASCII character table}.

        (1997-07-10)

Control and Status Register

        <hardware> (CSR) A {register} in most {CPU}s which stores
        additional information about the results of machine
        instructions, e.g. comparisons.  It usually consists of
        several independent flags such as {carry}, {overflow} and
        zero.  The CSR is chiefly used to determine the outcome of
        {conditional branch} instructions or other forms of
        conditional execution.

        (1998-06-26)

control-C

        <character> (Or ETX, End of Text) The {ASCII} character with
        code 3.

        Control-C is the interrupt character used on many {operating
        system}s, including {Unix} and {MS-DOS} to abort a running
        program.

        Among {BSD} {Unix} hackers, the canonical humorous response
        to "Give me a break!" is "Control C".

        (1995-03-16)

control code

        <character> A character which is input or output to cause some
        special action rather than to appear as part of the data.

        Most control characters are input by holding down (either of)
        the "Control" key(s) on the keyboard and simultaneously
        pressing another key which may be a letter or (depending on
        the keyboard and {operating system}) certain punctuation
        characters.  Some control codes usually have their own special
        keys: {escape}, {tab}, {delete}, {backspace}, {return} and can
        thus be entered with a single keypress.

        Different {operating system}s and programs have different
        conventions for what effect typing certain control codes will
        have, such as interrupting the current process or suspending
        output.

        Control codes may be output for their effect on the output
        device, e.g. moving the cursor or print head to the start of a
        new line.

        See {control-O}, {control-Q}, {control-S}.

        (1995-03-23)

control flow

        <programming> (Or "flow of control") The sequence of execution
        of instructions in a program.  This is determined at run-time
        by the input data and by the {control structures} (e.g. "if"
        statements) used in the program.

        Not to be confused with "{flow control}".

        (1997-09-14)

control-G

        {bell}

controller

        <hardware> Part of a computer, typically a separate circuit
        board, which allows the computer to use certain kinds of
        {peripheral} devices.  A {disk controller} is used to connect
        {hard disks} and {floppy disks}, a {network controller} is
        used for {Ethernet}.  Other controllers are: {keyboard
        controller}, {interrupt controller} and {graphics controller}.

        (1998-03-16)

control-O

        <character> {ASCII} character 15 (SI).

        The character used on some {operating system}s to abort output
        but allow the program to keep on running.  The name "SI" comes
        from its use on some terminals to "shift in" an alternative
        character set.  "SO" is {Control-N}.

        Compare {control-S}.

        (1995-03-16)

Control Program

        <operating system> (CP) The component of {IBM}'s {Virtual
        Machine} (VM) that provides "guest support" for {operating
        systems} that run on IBM {mainframe} compatible processors.
        Cp does this by providing a seamless {emulation} of privileged
        functions in the problem program environment.

        (1999-01-19)

Control Program for Microcomputers

        <operating system> (CP/M) An early {microcomputer} {operating
        system} written by Gary Kildall of {Digital Research} for
        {8080} and {Zilog Z80}-based 8-bit computers.  CP/M was very
        popular in the late 1970s but was virtually wiped out by
        {MS-DOS} after the release of the {IBM PC} in 1981.

        Many of CP/M's features and conventions strongly resemble
        those of early {DEC} operating systems such as {TOPS-10},
        {OS/8}, {RSTS} and {RSX-11}.

        CP/M might have been the {OS} for the {IBM PC} instead of
        {MS-DOS} but Kildall wanted to keep control of his creation
        and only license it to IBM.  Big Blue however wanted to own
        and control it completely.  Kildall spent the day IBM's reps
        wanted to meet him enjoying the perfect flying weather in his
        private plane.

        (1996-01-07)

control-Q

        <character> (Or XON, DC1, {Device Control} 1) The character
        with {ASCII} code 17, used in {software handshaking} to resume
        output after a previous {control-S}.

        (1996-06-28)

control-S

        <character> (Or XOFF, DC3, {Device Control} 3) The character
        with {ASCII} code 19, used in {software handshaking} to
        temporarily suspend output until a {control-Q} is received.

        (1996-06-28)

control structure

        <programming> One of the instructions, statements or groups of
        statements in a programming language which determines the
        sequence of execution of other instructions or statements (the
        {control flow}).

        In {assembly language} this typically consists of {jumps} and
        {conditional jumps} along with {procedure} call and return
        though some architectures include other constructs such as an
        instruction which skips the following instruction depending on
        some condition ({PDP}?), various kinds of {loop} instructions
        (later {Motorola 680x0}) or conditional execution of all
        instructions (Advanced RISC Machine).

        Basic control structures (whatever their names in particular
        languages) include "if CONDITION then EXPRESSION else
        EXPRESSION", the {switch statement}, "while CONDITION do
        EXPRESSION", "gosub", the suspect "{goto}" and the much-feared
        "{come from}".  Other constructs handle errors and
        {exceptions} such as {traps} and {interrupts}.

        (1997-09-14)

control tty

        (/dev/ptyp*) The network side of a {pseudo-tty}.

control unit

        <processor> The part of a {CPU} responsible for performing the
        {machine cycle} - fetch, decode, execute, store.

        (1995-04-23)

conventional memory

        <storage> The first 640 {kilobytes} of an {IBM PC}'s memory.
        Prior to {EMS}, {XMS}, and {HMA}, {real mode} application
        could use only this part of the memory.

        (1996-01-10)

Convergent Technologies

        <company> A company formed by a small group of people who left
        {Intel Corporation} in 1979.  Convergent Technologies' first
        product was the IWS (Integrated Workstation) based on the
        {Intel 8086}, which ran {Convergent Technologies Operating
        System} - their first {operating system}.

        Unisys bought {Convergent Technologies} in 1988.

        [Who bought/merged with who and when?]

        (1998-04-03)

Convergent Technologies Operating System

        <operating system> (CTOS, BTOS, STARSYS) /see-toss/ A modular,
        {message-passing}, {multi-process} based {operating system}.

        {Convergent Technologies}' first product was the IWS
        (Integrated Workstation) based on the {Intel 8086}, which had
        CTOS as its operating system.  It is a modular operating
        system with built in {local area networking}.  CTOS supports
        multiple processes or {threads}, and message-based
        {inter-process communication}.

        Companies which have licensed CTOS include {Burroughs} (BTOS)
        and {Bull} (STARSYS).  The largest customer was {Unisys}, with
        whom Convergent Technologies merged to become one company in
        1988.  CTOS now has over 800,000 users worldwide.

        CTOS runs on Intel {Pentium} computers, and can run
        concurrently with {Microsoft} {Windows NT}.

        For some reason, CTOS is no longer marketted to new customers,
        although there is a support comittment for existing customers
        until 2001.  Major customers include Police Forces, Banks, and
        Airlines.

        Latest version: CTOS III 1.3.2.

        ["Exploring CTOS", Miller E., Crook J., Loy J. - Prentice
        Hall, ISBN 0-13-297342-1, 1991].

        (1996-09-24)

Conversational LISP

        (CLISP) A mixed English-like, {ALGOL}-like surface {syntax}
        for {Interlisp}.

        ["CLISP: Conversational LISP", W. Teitelman, in Proc Third
        Intl Joint Conf on AI, Stanford, Aug 1973, pp.686-690].

        (1994-11-01)

Conversational Monitor System

        {Virtual Machine/Conversational Monitor System}

converse

        The truth of a {proposition} of the form A => B and its
        converse B => A are shown in the following truth table:

                A   B | A => B   B => A
                ------+----------------
                f   f |   t        t
                f   t |   t        f
                t   f |   f        t
                t   t |   t        t

conversion to iteration

        A transformation applied to functional programs to replace
        recursion with iteration.  A tail-recursive function can be
        compiled to an iterative loop where the recursive call becomes
        a jump back to the start and the parameters are held in
        registers which are updated with new values each time around
        the loop.  See Iteration, Tail recursion optimisation.

CONVERT

        1. String processing language, combined the pattern matching
        and transformation operations of COMIT with the recursive data
        structures of Lisp.  "Convert", A. Guzman et al, CACM
        9(8):604-615 (Aug 1966).

        2. Early language to convert programs and data from one
        language to another.  "CONVERT Manual", OLI Systems Inc (Oct
        1976).

convert.f90

        A {Fortran77} to {Fortran90} translator by Michael Metcalf
        <metcalf@cernvm.cern.ch>.  The significant differences between
        the two Fortrans make this package useful.

        {(ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90)}

        (1993-07-17)

Convex Computer Corporation

        <company> A mini-super-computer manufacturer.

        Address: Richardson, Texas, USA.

        (1995-03-01)

convex hull

        <mathematics, graphics> For a {set} S in space, the smallest
        {convex set} containing S.  In the plane, the convex hull can
        be visualized as the shape assumed by a rubber band that has
        been stretched around the set S and released to conform as
        closely as possible to S.

        (1997-08-03)

Conway's Law

        The rule that the organisation of the software and the
        organisation of the software team will be congruent;
        originally stated as "If you have four groups working on a
        compiler, you'll get a 4-pass compiler".

        Melvin Conway, an early proto-hacker, wrote an {assembler} for
        the {Burroughs 220} called SAVE.  The name "SAVE" didn't stand
        for anything; it was just that you lost fewer card decks and
        listings because they all had SAVE written on them.

cooC

        Concurrent Object-Oriented C.  A language with {concurrent}
        {object} execution from {Toshiba}.  It has synchronous and
        asynchronous {message passing} and has been implemented for
        {SunOS}.

        {(ftp://tsbgw.isl.rdc.toshiba.co.jp/pub/toshiba/cooc-beta.1.1.tar.Z)}.
        E-mail: <cooc@isl.rdc.toshiba.co.jp>.

        [SIGPLAN Notices 28(2)].

cooccurrence matrix

        <mathematics> Given a position operator P(i,j), let A be a nxn
        matrix whose element A[i][j] is the number of times that
        points with grey level (intensity) g[i] occur, in the position
        specified by P, relative to points with grey level g[j].  Let
        C be the nxn matrix that is produced by dividing A with the
        total number of point pairs that satisfy P.  C[i][j] is a
        measure of the joint probability that a pair of points
        satisfying P will have values g[i], g[j].  C is called a
        cooccurrence matrix defined by P.  Examples for the operator P
        are: "i above j", "i one position to the right and two below
        j", etc.

        (1995-05-11)

cookbook

        <programming> (From amateur electronics and radio) A book of
        small code segments that the reader can use to do various
        {magic} things in programs.

        One current example is the "{PostScript} Language Tutorial and
        Cookbook" by Adobe Systems, Inc (Addison-Wesley, ISBN
        0-201-10179-3), also known as the {Blue Book} which has
        recipes for things like wrapping text around arbitrary curves
        and making 3D fonts.

        Cookbooks, slavishly followed, can lead one into {voodoo
        programming}, but are useful for hackers trying to {monkey up}
        small programs in unknown languages.  This function is
        analogous to the role of phrasebooks in human languages.

        (1994-11-04)

cooked mode

        The normal{Unix} character-input mode, with interrupts enabled
        and with erase, kill and other special-character
        interpretations performed directly by the tty driver.
        Opposite of {raw mode}.  See also {rare mode}.  Other
        operating systems often have similar mode distinctions, and
        the raw/rare/cooked way of describing them has spread widely
        along with the {C} language and other Unix exports.  Most
        generally, "cooked mode" may refer to any mode of a system
        that does extensive preprocessing before presenting data to a
        program.

cookie

        1. <protocol> A handle, transaction ID, or other token of
        agreement between cooperating programs.  "I give him a packet,
        he gives me back a cookie".

        The claim check you get from a dry-cleaning shop is a perfect
        mundane example of a cookie; the only thing it's useful for is
        to relate a later transaction to this one (so you get the same
        clothes back).

        Another example is an {HTTP cookie}.

        Compare {magic cookie}; see also {fortune cookie}.

        2. <security, jargon> A {cracker} term for the {password} list
        on a {multi-user} computer.

        3. <jargon> An adjective describing a computer that just
        became {toast}.

        (1997-04-14)

cookie bear

        {cookie monster}

cookie file

        <operating system> A collection of {fortune cookies} in a
        format that facilitates retrieval by a {fortune} program.
        There are many cookie files in public distribution, and site
        admins often assemble their own from various sources.

        (1997-01-07)

cookie jar

        1. <programming> An area of memory set aside for storing
        {cookies}.  Most commonly heard in the {Atari ST} community;
        many useful ST programs record their presence by storing a
        distinctive {magic number} in the jar.  Programs can inquire
        after the presence or otherwise of other programs by searching
        the contents of the jar.

        2. <security> A {cracker} term for the password file of a
        multi-user computer.

        (1997-02-12)

cookie monster

        <recreation> (From the children's TV program "Sesame Street")
        Any of a family of early (1970s) hacks reported on {TOPS-10},
        {ITS}, {Multics} and elsewhere that would lock up either the
        victim's terminal (on a {time-sharing} machine) or the
        {console} (on a batch {mainframe}), repeatedly demanding "I
        WANT A COOKIE".  The required responses ranged in complexity
        from "COOKIE" through "HAVE A COOKIE" and upward.

        See also {wabbit}.

        (1997-02-12)

cooky

        {cookie}

COOL

        1. {Concurrent Object-Oriented Language}.

        2. CLIPS Object-Oriented Language?

        3. A C++ class library developed at {Texas Instruments}.  COOL
        contains a set of containers like Vectors, List, Hash_Table,
        etc.  It uses a shallow hierarchy with no common base class.
        The functionality is close to Common Lisp data structures
        (like libg++).  The template syntax is very close to Cfront3.x
        and g++2.x.  Can build shared libraries on Suns.

        JCOOL's main difference from COOL and GECOOL is that it uses
        real C++ templates instead of a similar syntax that is
        preprocessed by a special 'cpp' distributed with COOL and
        GECOOL.

        {(ftp://csc.ti.com/pub/COOL.tar.Z)}

        GECOOL, JCOOL: {(ftp://cs.utexas.edu/pub/COOL/)}.

        E-mail: Van-Duc Nguyen <nguyen@crd.ge.com>

        (1992-08-05)

CooL

        <language> Combined object-oriented Language.

        An {object-oriented} language from the {ITHACA} {Esprit}
        project, which combines {C}-based languages with {database}
        technology.

        (1995-03-15)

Co-operative Development Environment

        <tool, product> (CDE) A set of tools from {Oracle} for
        enterprise-wide, {client/server} {application} development.

        (1995-03-15)

Cooperative Information System

        <networking> (CIS) Networked computers which support
        individual or collaborative human work, and manage access to
        information and computing services.  Computation is done
        {concurrent}ly over the network by cooperative {database}
        systems, {expert system}s, multi-agent planning systems, and
        other software application systems ranging from the
        conventional to the advanced.

        (1995-05-11)

cooperative multitasking

        <parallel, operating system> A form of {multitasking} where it
        is the responsibility of the currently running task to give up
        the processor to allow other tasks to run.  This contrasts
        with {pre-emptive multitasking} where the task {scheduler}
        periodically suspends the running task and restarts another.

        Cooperative multitasking requires the programmer to place
        calls at suitable points in his code to allow his task to be
        {deschedule}d which is not always easy if there is no obvious
        top-level {main loop} or some routines run for a long time.
        If a task does not allow itself to be descheduled all other
        tasks on the system will appear to "freeze" and will not
        respond to user action.

        The advantage of cooperative multitasking is that the
        programmer knows where the program will be descheduled and can
        make sure that this will not cause unwanted interaction with
        other processes.  Under {pre-emptive multitasking}, the
        scheduler must ensure that sufficient state for each process
        is saved and restored that they will not interfere.  Thus
        cooperative multitasking can have lower {overheads} than
        pre-emptive multitasking because of the greater control it
        offers over when a task may be descheduled.

        Cooperative multitasking is used in {RISC OS}, {Microsoft
        Windows} and {Macintosh} {System 7}.

        (1995-03-20)

coordinate

        <mathematics> One member of a {tuple} of numbers which defines
        the position of a point in some space.  Commonly used
        coordinate systems have as many coordinates as their are
        dimensions in the space, e.g. a pair for two dimensions.  The
        most common coordinate system is {Cartesian coordinates},
        probably followed by {polar coordinates}.

        (1997-07-09)

Coordinating Committee for Intercontinental Research Networks

        (CCIRN) A committee that includes the United States FNC and
        its counterparts in North America and Europe.  Co-chaired by
        the executive directors of the Federal Networking Council and
        the European Association of Research Networks (RARE), the
        CCIRN provides a forum for cooperative planning among the
        principal North American and European research networking
        bodies.

        (1994-11-30)

copious free time

        (Apple; originally from the introduction to Tom Lehrer's song
        "It Makes A Fellow Proud To Be A Soldier") Used ironically to
        indicate the speaker's lack of the quantity in question; a
        mythical schedule slot for accomplishing tasks held to be
        unlikely or impossible.  Sometimes used to indicate that the
        speaker is interested in accomplishing the task, but believes
        that the opportunity will not arise.  "I'll implement the
        automatic layout stuff in my copious free time."

        The phrase is also used for time reserved for bogus or
        otherwise idiotic tasks, such as implementation of bad
        {chrome}, or the stroking of {suit}s.  "I'll get back to him
        on that feature in my copious free time."

        (1994-11-30)

copper

        Conventional electrical network cable with a core conductor of
        copper (or aluminium!)

        Opposed to {light pipe} or, say, a short-range microwave link.

        (1994-11-30)

Copper Distributed Data Interface

        (CDDI) {FDDI} running over conventional copper cables.  A
        {Cisco}/{Crescendo} copyright term(?).  All {FDDI}
        connections, {single-attached} or {dual-attached}, can be
        either {optical fibre} or copper.

        (1994-12-14)

coprocessor

        Any computer processor which assists the main processor (the
        "{CPU}") by performing certain special functions, usually much
        faster than the main processor could perform them in software.
        The coprocessor often decodes instructions in parallel with
        the main processor and executes only those instructions
        intended for it.

        The most common example is a {floating point} coprocessor (or
        "{FPU}"), others are graphics and networking.

        (1995-01-05)

copy and paste

        <text> (Or "cut and paste", after the paper, scissors and glue
        method of document production) The system supported by most
        document editing applications (e.g. {text editors}) and most
        {operating systems} that allows you to select a part of the
        document and then save it in a temporary buffer (known
        variously as the "clipboard", "cut buffer", "kill ring").  A
        "copy" leaves the document unchanged whereas a "cut" deletes
        the selected part.

        A "paste" inserts the data from the clipboard at the current
        position in the document (usually replacing any currently
        selected data).  This may be done more than once, in more than
        one position and in different documents.

        More sophisticated {operating systems} support copy and paste
        of different data types between different applications,
        possibly with automatic format conversion, e.g from {rich
        text} to plain {ASCII}.

        {GNU Emacs} uses the terms "kill" instead of "cut" and "yank"
        instead of "paste" and data is stored in the "kill ring".

        [Origin?  Macintosh?  Xerox?]

        (1998-07-01)

copybook

        <programming, library> (Or "copy member", "copy module") A
        common piece of {source code} designed to be copied into many
        source programs, used mainly in {IBM} {DOS} {mainframe}
        programming.

        In {mainframe} {DOS} (DOS/VS, DOS/{VSE}, etc.), the copybook
        was stored as a "book" in a {source} library.  A library was
        comprised of "books", prefixed with a letter designating the
        language, e.g., A.name for Assembler, C.name for Cobol, etc.,
        because {DOS} didn't support multiple libraries, private
        libraries, or anything.  This term is commonly used by {COBOL}
        programmers but is supported by most {mainframe} languages.
        The {IBM} {OS} series did not use the term "copybook", instead
        it referred to such files as "libraries" implemented as
        "partitioned data sets" or {PDS}.

        Copybooks are functionally equivalent to {C} and {C++}
        {include} files.

        (1997-07-31)

copybroke

        <security> /kop'ee-brohk/ (Or "copywronged" - a play on
        "{copyright}") 1. Used to describe an instance of a
        {copy-protected} program that has been "broken"; that is, a
        copy with the copy-protection scheme disabled or removed.

        2. Copy-protected software which is unusable because of some
        {bit-rot} or {bug} that has confused the {copy protection}.

        3. Used to describe data damaged because of a side effect of a
        copy protection system.

        (1997-03-16)

copying garbage collection

        A {garbage collection} method where memory is divided into two
        equal halves, known as the "from space" and "to space".
        Garbage collection copies active cells from the from space to
        the to space and leaves behind an invisible pointer (an
        "indirection") from the old position to the new copy.  Once
        all active cells have been copied in one direction, the spaces
        are swapped and the process repeated in the opposite
        direction.

copyleft

        <legal> /kop'ee-left/ (A play on "copyright") The {copyright}
        notice and {General Public License} applying to the works of
        the {Free Software Foundation}, granting reuse and
        reproduction rights to everyone.

        Typically copyrights take away freedoms; copyleft preserves
        them.  It is a legal instrument that requires those who pass
        on a program to include the rights to use, modify, and
        redistribute the code; the code and the freedoms become
        legally inseparable.

        The copyleft used by the GNU Project combines a regular
        copyright notice and the "GNU General Public License" (GPL).
        The GPL is a copying license which basically says that you
        have the aforementioned freedoms.  The license is included in
        each GNU source code distribution and manual.

        See also {General Public Virus}.

        (1995-04-18)

copy member

        {copybook}

copy module

        {copybook}

copy protection

        A class of methods for preventing incompetent pirates from
        stealing software and legitimate customers from using it.
        Considered silly.

copyright

        <legal> The exclusive rights of the owner of the copyright on
        a work to make and distribute copies, prepare derivative works
        and perform and display the work in public (these last two
        mainly apply to plays, films, dances and the like, but could
        also apply to software).

        A work, including a piece of software, is under copyright if
        it displays a copyright notice.  The copyright owner is the
        person or company whose name appears in the copyright notice
        on the box, or the disk or the screen or wherever.

        A copyright notice has three parts.  The first can be either a
        c with a circle around it ({LaTeX} \copyright), or the word
        Copyright or the abbreviation Copr.  A "c" in parentheses:
        "(c)" has no legal meaning.  This is followed by the name of
        the copyright holder and the year.

        Countries around the world have agreed to recognise and uphold
        each others' copyrights, but this world-wide protection
        requires the use of the c in a circle.

        Originally, most of the computer industry assumed that only
        the program's underlying instructions were protected under
        copyright law but, beginning in the early 1980s, a series of
        lawsuits involving the video screens of game programs extended
        protections to the appearance of programs.

        See also {public domain}, {copyleft}, {software law}.

        {US Copyright Office Circular 61 - Copyright Registration for
        Computer Programs
        (gopher://marvel.loc.gov:70/0/copyright/circs/circ61)}.

        {The US Department of Education's "How Does Copyright Law
        Apply to Computer Software"
        (gopher://ericir.syr.edu:70/0/FAQ/CopyrightSoftware)}.

        {Usenet} newsgroup: {news:misc.legal.computing}.

        [Is this definition correct in the UK?  In the US?
        Elsewhere?]

        (1994-11-16)

copywronged

        {copybroke}

CORAL

        1. {Class Oriented Ring Associated Language}.

        2. A {deductive database} and {logic programming} system based
        on {Horn-clause} rules with extensions like {SQL}'s {group-by}
        and {aggregation} operators.  CORAL was developed at the
        University of Wisconsin-Madison.  It is implemented in C++ and
        has a {Prolog}-like {syntax}.

        Many evaluation techniques are supported, including {bottom-up
        fixpoint evaluation} and top-down {backtracking}.  {Modules}
        are separately compiled; different evaluation methods can be
        used in different modules within a single program.
        Disk-resident data is supported via an interface to the
        {Exodus} storage manager.  There is an on-line help facility.
        It requires {AT&T} {C++} 2.0 (or {G++} soon) and runs on
        {Decstation} and {Sun4}.

        {(ftp://ftp.cs.wisc.edu/)}

        (1993-01-29)

CORAL 66

        A real-time system programming language derived from {JOVIAL}
        and {ALGOL 60}.  It was adopted as the British military
        standard from 1970 until the arrival of {Ada}.

        ["Official Definition of CORAL 66", P.M. Woodward et al, HMSO,
        London, 1970].

CORBA

        {Common Object Request Broker Architecture}

CORBIE

        <language> An early system on the {IBM 704}.

        [Listed in CACM 2(5):16, May 1959].

        (1996-05-10)

CORC

        CORnell Compiler.  Simple language for student math problems.

        ["The Cornell Computing Language", R.W. Conway et al, CACM
        6(6):317-320 (Jun 1963) Sammet 1969, p.294-296].

core

        1. <storage> {Main memory} or {RAM}.  This term dates from the
        days of {ferrite core memory}; now archaic most places outside
        {IBM}, but also still used in the {Unix} community and by
        old-time {hackers} or those who would sound like them.

        Some derived idioms are quite current; "in core", for example,
        means "in memory" ({paged in}, as opposed to "on disk", {paged
        out}), and both {core dump} and the "core image" or "core
        file" produced by one are terms in favour.  Some varieties of
        Commonwealth hackish prefer {store}.

        (1995-03-03)

        2. <processor> An {integrated circuit} design, usually for a
        {microprocessor}, which includes only the {CPU} and which is
        intended to form part of a complete circuit design which
        incorporates other circuits on the same chip such as {cache},
        {memory management unit}, I/O ports and timers.

        The {ARM6}, {ARM7} and {ARM8} are examples.

        3. <language> A varient on {kernel} as used to describe
        features built into a language as opposed to those provided by
        {libraries}.

        (1995-03-03)

core cancer

        <jargon> A process that exhibits a slow but inexorable
        {resource leak} - like a cancer, it kills by crowding out
        productive "tissue".

        (1997-11-10)

core dump

        [Common {Iron Age} jargon, preserved by Unix] 1. A copy of the
        contents of {core}, produced when a process is aborted by
        certain kinds of internal error.

        2. A complete account of a human's knowledge on some subject
        (also {brain dump}), especially in a lecture or answer to an
        exam question.  "Short, concise answers are better than core
        dumps" (from the instructions to an exam at Columbia).

core gateway

        Historically, one of a set of gateways ({routers}) operated by
        the {Internet Network Operations Center} at Bolt, Beranek and
        Newman (BBN).  The core gateway system formed a central part
        of {Internet} routing in that all groups must advertise paths
        to their networks from a core gateway.

Corel Corporation

        <company> A software publisher best known for the {CorelDraw}
        {application}.  Founded in June 1985 by Dr. Michael Cowpland,
        Corel Corporation was originally a {systems integration}
        company.  In January 1989, however they entered the software
        publishing market with the introduction of CorelDraw.  Corel
        became the second largest maker of personal {productivity
        software} in January 1996 when they purchased the
        {WordPerfect} family of software from {Novell, Inc.}.

        {Home (http://www.corel.com/)}.

        (1997-03-12)

core leak

        {memory leak}

Corel VENTURA

        <text, graphics> (Previously "Ventura Publisher") The first
        full-featured {desktop publishing} program available for the
        {IBM personal computer} and compatibles.  Ventura Publisher
        was originally distributed by {Ventura}, a wholy owned
        subsiduary of {Xerox Corporation} but was acquired by {Corel
        Corporation} in September 1993.

        Current version (1999-04-05): Corel VENTURA 8.

        {Home
        (http://www.corelnet.com/products/graphicsandpublishing/ventura8/index.
htm)}.

        (1999-04-05)

Core War

        <games> (Or more recently, "Core Wars") A game played between
        {assembly code} programs running in the {core} of a simulated
        machine (and vicariously by their authors).  The objective is
        to kill your opponents' programs by overwriting them.

        The programs are written using an {instruction set} called
        "{Redcode}" and run on a {virtual machine} called "{MARS}"
        (Memory Array Redcode Simulator).

        Core War was devised by Victor Vyssotsky, Robert Morris Sr.,
        and {Dennis Ritchie} in the early 1960s (their original game
        was called "{Darwin}" and ran on a {PDP-1} at {Bell Labs}).
        It was first described in the "Core War Guidelines" of March,
        1984 by D. G. Jones and A. K. Dewdney of the Department of
        Computer Science at The University of Western Ontario
        (Canada).

        Dewdney wrote several "Computer Recreations" articles in
        "Scientific American" which discussed Core War, starting with
        the May 1984 article.  Those articles are contained in the two
        anthologies cited below.  A.K. Dewdney's articles are still
        the most readable introduction to Core War, even though the
        {Redcode} dialect described in there is no longer current.

        The International Core War Society (ICWS) creates and
        maintains Core War standards and the runs Core War
        tournaments.  There have been six annual tournaments and two
        standards (ICWS'86 and ICWS'88).

        ["The Armchair Universe: An Exploration of Computer Worlds",
        A. K. Dewdney, W. H. Freeman, New York, 1988, ISBN
        0-7167-1939-8, LCCN QA76.6 .D517 1988]

        ["The Magic Machine: A Handbook of Computer Sorcery",
        A. K. Dewdney, W. H. Freeman, New York, 1990, ISBN
        0-7167-2125-2 (Hardcover), 0-7167-2144-9 (Paperback), LCCN
        QA76.6 .D5173 1990].

        (1998-10-30)

corge

        /korj/ Yet another {metasyntactic variable}, named after a cat
        invented by Mike Gallaher and propagated by the {GOSMACS}
        documentation.

        See {grault}.

        (1994-12-08)

Cornell List Processor

        (CLP) A list processing language, an extension of {CORC}, used
        for {simulation}.

        [Sammet 1969, p. 461].

        (1994-11-01)

Cornell Theory Center

        (CTC) One of four supercomputing centers funded by the US
        {National Science Foundation}.  The CTC also receives funding
        from the {Advanced Research Projects Agency}, the National
        Institutes of Health, New York State, {IBM} Corporation, and
        other members of the center's Corporate Research Institute.

        {Home (http://www.tc.cornell.edu/)}

        (1994-12-08)

Cornell University

        <body, education> A US Ivy League University founded in 1868
        by businessman Ezra Cornell and respected scholar Andrew
        Dickson White.  Cornell includes thirteen colleges and
        schools.  On the Ithaca campus are the seven undergraduate
        units and four graduate and professional units.  The Medical
        College and the Graduate School of Medical Sciences are in New
        York City.  Cornell has 13,300 undergraduates and 6,200
        graduate and professional students.

        See also {Concurrent ML}, {Cornell Theory Center}, {Cornell
        University Programming Language}, {CU-SeeMe}, {ISIS}.

        {Home (http://www.cornell.edu/)}.

        (1996-12-01)

Coroutine Pascal

        ["Control Separation in Programming languages", Lemon et al,
        ACM Ann Conf 1977].

        (1994-12-08)

Corporation for Open Systems

        (COS) An international consortium of computer users and
        vendors set up to provide ways of testing {OSI}
        implementations.

        (1994-11-30)

Corporation for Research and Educational Networking

        <body> (CREN) The organisation responsible for providing
        networking service to {BITNET} and {CSNET} users.  CREN was
        formed in October 1989, when {BITNET} and {CSNET} were
        combined under one authority.  {CSNET} is no longer
        operational, but CREN still runs {BITNET}.

        [Still true?]

        (1996-05-17)

CORREGATE

        Based on {Internal Translator} (IT).

        [Sammet 1969, p. 139].

        (1994-11-30)

Correlatives and Conversions

        The {data description language} used in the {Pick} {operating
        system}.

        ["Exploring the Pick Operating System", J.E. Sisk et al,
        Hayden 1986].

        (1994-11-30)

Cortex

        An experimental slow controls project at {CERN}.

        (1994-11-30)

CORTL

        An intermediate language, a form of {RTL}, by Carl McConnell
        <mcconnell@cs.uiuc.edu>.

        (1994-11-30)

COS

        1. {Cray Operating System}.

        2. {Corporation for Open Systems}.

COSE

        Common Open Software Environment.  An initiative by
        Hewlett-Packard, Sun, IBM, Novell, Univel and SCO to move
        towards consistency and interoperability between Unix
        suppliers.

COSINE

        Cooperation for Open Systems Interconnection Networking in
        Europe.  A EUREKA project.

cosmic rays

        Notionally, the cause of {bit rot}.  However, this is a
        semi-independent usage that may be invoked as a humorous way
        to {handwave} away any minor {randomness} that doesn't seem
        worth the bother of investigating.  "Hey, Eric - I just got
        a burst of garbage on my {tube}, where did that come from?"
        "Cosmic rays, I guess."  Compare {sunspots}, {phase of the
        moon}.  The British seem to prefer the usage "cosmic showers";
        "alpha particles" is also heard, because stray alpha particles
        passing through a memory chip can cause single bit errors
        (this becomes increasingly more likely as memory sizes and
        densities increase).

        Factual note: Alpha particles cause bit rot, cosmic rays do
        not (except occasionally in spaceborne computers).  Intel
        could not explain random bit drops in their early chips, and
        one hypothesis was cosmic rays.  So they created the World's
        Largest Lead Safe, using 25 tons of the stuff, and used two
        identical boards for testing.  One was placed in the safe, one
        outside.  The hypothesis was that if cosmic rays were causing
        the bit drops, they should see a statistically significant
        difference between the error rates on the two boards.  They
        did not observe such a difference.  Further investigation
        demonstrated conclusively that the bit drops were due to alpha
        particle emissions from thorium (and to a much lesser degree
        uranium) in the encapsulation material.  Since it is
        impossible to eliminate these radioactives (they are uniformly
        distributed through the earth's crust, with the statistically
        insignificant exception of uranium lodes) it became obvious
        that one has to design memories to withstand these hits.

COSS

        {Common Object Services Specification} in {CORBA}.

Cost Driver Attribute

        <programming> Factors affecting the productivity of software
        development.  These include attributes of the software,
        computers, personnel, and project.

        (1996-05-28)

Cost/Schedule Control System Criteria

        <project> (C/SCSC) A set of criteria specified by the Federal
        Government for reporting project schedule and financial
        information.

        (1996-05-29)

COTS

        commercial off-the-shelf.

cough and die

        <jargon> {barf}.  Connotes that the program is throwing its
        hands up by design rather than because of a bug or oversight.
        "The parser saw a control-A in its input where it was looking
        for a printable, so it coughed and died."

        Compare {die}, {die horribly}, {scream and die}.

        (1995-03-07)

countable

        <mathematics> A term describing a {set} which is {isomorphic}
        to a subet of the {natural numbers}.  A countable set has
        "countably many" elements.  If the isomorphism is stated
        explicitly then the set is called "a counted set" or "an
        {enumeration}".

        Examples of countable sets are any {finite} set, the {natural
        numbers}, {integers}, and {rational numbers}.  The {real
        numbers} and {complex numbers} are not [proof?].

        (1999-08-29)

countably many

        {countable}

counted

        <mathematics> A term describing a {set} with an explicit
        {isomorphism} to the {natural numbers}.

        Compare: {countable}.

        (1995-04-13)

country code

        <networking, standard> Originally, a two-letter abbreviation
        for a particular country, generally used as a {top-level
        domain}.

        Originally, as the name implies, country codes were meant just
        for countries; but over time, country codes were allocated for
        many areas (mostly islands) that aren't countries -- such as
        Antarctica (aq), Christmas Island (cx) and Saint Pierre et
        Miquelon (pm).

        Country codes are based on {ISO 3166} and are used as the top
        level domain for {Internet} {hostnames} in most countries but
        hardly ever in the USA (code "us").

        {Latest list (ftp://info.ripe.net/iso3166-countrycodes)}.

        (1999-01-26)

coupling

        <programming, hardware> The degree to which components depend
        on one another.  There are two types of coupling, "tight" and
        "loose".  Loose coupling is desirable for good {software
        engineering} but tight coupling may be necessary for maximum
        performance.  Coupling is increased when the data exchanged
        between components becomes larger or more complex.

        (1996-08-01)

Course Author Language

        <language> (CAL) The {CAI} language for the {IBM 360}.

        ["Design of a Programming Language for Computer Assisted
        Learning", F.M. Tonge, Proc IFIP Congress 1968, v2].

        (1994-11-08)

courseware

        <application> Programs and data used in {Computer-Based
        Training}.

        (1995-03-13)

Coursewriter III

        <language, education> A simple {CAI} language, developed
        around 1976.

        ["Coursewriter III, Version 3 Author's Guide", SH20-1009,
        IBM].

        (1995-03-13)

cowboy

        [Sun, from William Gibson's {cyberpunk} SF]  Synonym
        for {hacker}.  It is reported that at Sun this word is often
        said with reverence.

COWSEL

        COntrolled Working SpacE Language.  Burstall and Popplestone,
        U Edinburgh, 1964-66.  LISP-like semantics with FORTH-like
        stack, and reverse Polish syntax.  Forerunner of POP.
        EPU-R-12, U Edinburgh (Apr 1966).

CP

        A concurrent Prolog.

        "The Concurrent Logic Programming Language CP": Definition and
        Operational Semantics", V. Saraswat, 14th POPL, ACM 1987,
        pp.49-62.

CParaOps5

        <language> A {parallel} version of {OPS5} written at CMU, in
        {C} and compiling to C.  CParaOps5 is available for {Unix},
        {Mach}, {Encore Multimaxen}, and {Sequent}.

        Latest version as of 1999-08-30: 5.4.

        {Home (http://www.cs.ucsb.edu/~acha/software.html)}.

        (1999-08-30)

CPE

        {Customer Premises Equipment}

CPI

        {Common Program Interface}

CPL

        Combined Programming Language.  U Cambridge and U London.  A
        very complex language, syntactically based on ALGOL 60, with a
        pure functional subset.  Provides the ..where.. form of local
        definitions.  Strongly typed but has a "general" type enabling
        a weak form of polymorphism.  Functions may be defined as
        either normal or applicative order.  Typed array and
        polymorphic list structures.  List selection is through
        structure matching.  Partially implemented on the Titan (Atlas
        2) computer at Cambridge.  Led to the much simpler BCPL.  "The
        Main Features of CPL", D.W. Barron et al, Computer J
        6(2):134-143 (Jul 1963).

CPLD

        {complex programmable logic device}

CPM

        {Control Program for Microcomputers}

CP/M

        {Control Program for Microcomputers}

cpp

        C preprocessor.  The standard {Unix} {macro}-expansion utility
        run as the first phase of the {C} compiler, {cc}.  Cpp
        interprets lines beginning with "#" such as

                #define BUFFER_SIZE 256

        as a textual {assignment} giving the symbol BUFFER_SIZE a
        value "256".  Symbols defined with cpp are traditionally given
        upper case names to distinguish them from C identifiers.  This
        symbol can be used later in the input, as in

                char input_buffer[BUFFER_SIZE];

        This use of cpp to name constants, rather than writing these
        {magic numbers} inline, makes a program easier to read and
        maintain, especially if there is more than one occurrence of
        BUFFER_SIZE all of which must all have the same value.

        Cpp macros can have parameters:

                #define BIT(n) (1<<(n))

        This can be used with any appropriate actual argument:

                msb = BIT(nbits-1);

        Note the parentheses around the "n" in the definition of BIT.
        Without these, operator precedence might mean that the
        expression substituted in in place of n might not be
        interpreted correctly (though the example above would be OK).

        Cpp also supports conditional compilation with the use of

                #ifdef SYMBOL
                ...
                #else
                ...
                #endif
        and
                #if EXPR
                ...
                #else
                ...
                #endif

        constructs, where SYMBOL is a Cpp symbol which may or may not
        be defined and EXPR is an arithmetic expression involving only
        Cpp symbols, constants and C operators which Cpp can evaluate
        to a constant at {compile time}.

        {Decus cpp} is a free implementation.

        (1994-11-03)

cppp

        <tool> A compiler {front-end} for {C++} by Tony Davis
        <ted@cs.brown.edu> with complete semantic processing.  cppp is
        based on {Yacc} and outputs an {abstract syntax graph}.
        Version: 1.14.

        {(ftp://wilma.cs.brown.edu/pub/cppp.tar.Z)}

        (1993-05-26)

C Programmer's Disease

        The tendency of the undisciplined {C} programmer to set
        arbitrary but supposedly generous static limits on table sizes
        (defined, if you're lucky, by constants in header files)
        rather than taking the trouble to do proper dynamic storage
        allocation.  If an application user later needs to put 68
        elements into a table of size 50, the afflicted programmer
        reasons that he or she can easily reset the table size to 68
        (or even as much as 70, to allow for future expansion) and
        recompile.  This gives the programmer the comfortable feeling
        of having made the effort to satisfy the user's (unreasonable)
        demands, and often affords the user multiple opportunities to
        explore the marvellous consequences of {fandango on core}.  In
        severe cases of the disease, the programmer cannot comprehend
        why each fix of this kind seems only to further disgruntle the
        user.

C-Prolog

        An implementation of {Prolog} in {C} by F. Pereira
        <pereira@research.att.com> et al in July 1982.  It had no
        {garbage collection} is not in the {public domain}.

        (1994-10-13)

cproto

        A translator which generates {ANSI C} {function prototype}s
        from {K&R} {C} function definitions.  It can also translate
        function definition heads between {K&R} style and {ANSI C}
        style.  Written by Chin Huang <chin.huang@canrem.com>.

        Posted to {comp.sources}.misc, volume 29.  Runs under {Unix},
        {MS-DOS}.

        (1992-07-18)

CPS

        1. Conversational Programming System.  An interactive extended
        subset of {PL/I} from {Allen-Babcock} Corp in 1965.

        ["Conversational Programming System under TSO (PBPO), Terminal
        User's Manual", SH20-1197, IBM].

        [Sammet 1969, p. 232-240].

        2. {Continuation Passing Style}.

CPSR

        {Computer Professionals for Social Responsibility}

CPU

        {central processing unit}

CPU Info Center

        <processor> A {World-Wide Web} resource at {Berkeley}
        describing many different computers and their performance.

        {(http://infopad.eecs.berkeley.edu/CIC/)}

        (1995-06-11)

CPU time

        {processor time}

CPU Wars

        /C-P-U worz/ A 1979 large-format comic by Chas Andres
        chronicling the attempts of the brainwashed androids of IPM
        (Impossible to Program Machines) to conquer and destroy the
        peaceful denizens of HEC (Human Engineered Computers).  This
        rather transparent allegory featured many references to
        {ADVENT} and the immortal line "Eat flaming death,
        minicomputer mongrels!" (uttered, of course, by an IPM
        stormtrooper).  It is alleged that the author subsequently
        received a letter of appreciation on IBM company stationery
        from the head of IBM's Thomas J. Watson Research Laboratories
        (then, as now, one of the few islands of true hackerdom in the
        IBM archipelago).  The lower loop of the B in the IBM logo, it
        is said, had been carefully whited out.  See {eat flaming
        death}.

CR

        {Carriage Return}

cr

        <networking> The {country code} for Costa Rica.

        (1999-01-27)

cracker

        <jargon> An individual who attempts to gain unauthorised
        access to a computer system.  These individuals are often
        malicious and have many means at their disposal for breaking
        into a system.  The term was coined ca. 1985 by hackers in
        defence against journalistic misuse of "{hacker}".  An earlier
        attempt to establish "worm" in this sense around 1981--82 on
        {Usenet} was largely a failure.

        Use of both these neologisms reflects a strong revulsion
        against the theft and vandalism perpetrated by cracking rings.
        The neologism "cracker" in this sense may have been influenced
        not so much by the term "safe-cracker" as by the non-jargon
        term "cracker", which in Middle English meant an obnoxious
        person (e.g., "What cracker is this same that deafs our ears /
        With this abundance of superfluous breath?"  -- Shakespeare's
        King John, Act II, Scene I) and in modern colloquial American
        English survives as a barely gentler synonym for "white
        trash".

        While it is expected that any real hacker will have done some
        playful cracking and knows many of the basic techniques,
        anyone past {larval stage} is expected to have outgrown the
        desire to do so except for immediate practical reasons (for
        example, if it's necessary to get around some security in
        order to get some work done).

        Contrary to widespread myth, cracking does not usually involve
        some mysterious leap of hackerly brilliance, but rather
        persistence and the dogged repetition of a handful of fairly
        well-known tricks that exploit common weaknesses in the
        security of target systems.  Accordingly, most crackers are
        only mediocre hackers.

        Thus, there is far less overlap between hackerdom and
        crackerdom than the {mundane} reader misled by
        sensationalistic journalism might expect.  Crackers tend to
        gather in small, tight-knit, very secretive groups that have
        little overlap with the huge, open hacker poly-culture; though
        crackers often like to describe *themselves* as hackers, most
        true hackers consider them a separate and lower form of life,
        little better than {virus} writers.  Ethical considerations
        aside, hackers figure that anyone who can't imagine a more
        interesting way to play with their computers than breaking
        into someone else's has to be pretty {losing}.

        See also {Computer Emergency Response Team}, {dark-side
        hacker}, {hacker ethic}, {phreaking}, {samurai}, {Trojan
        Horse}.

        (1998-06-29)

cracking

        {cracker}

crack root

        <security, jargon> To defeat the security system of a {Unix}
        machine and gain {root} privileges thereby.

        See {cracker}.

        (1996-08-10)

crank

        (Automotive slang) Verb used to describe the performance of a
        machine, especially sustained performance.  "This box cranks
        (or, cranks at) about 6 megaflops, with a burst mode of twice
        that on vectorised operations."

        (1994-12-01)

crapplet

        <World-Wide Web, abuse> A badly written or profoundly useless
        {Java} {applet}.  "I just wasted 30 minutes downloading this
        stinkin' crapplet!"

        (1997-03-30)

CrApTeX

        /krap'tekh/ (University of York, England) Term of abuse used
        to describe {TeX} and {LaTeX} when they don't work (when used
        by TeXhackers), or all the time (by everyone else).  The
        non-TeX enthusiasts generally dislike it because it is more
        verbose than other formatters (e.g. {troff}) and because
        (particularly if the standard Computer Modern fonts are used)
        it generates vast output files.

        See {religious issues}.

        (1994-12-01)

crash

        1. A sudden, usually drastic failure.  Most often said of the
        {system}, especially of magnetic disk drives (the term
        originally described what happened when the air gap of a hard
        disk collapses).  "Three {lusers} lost their files in last
        night's disk crash."  A disk crash that involves the
        read/write heads dropping onto the surface of the disks and
        scraping off the oxide may also be referred to as a "head
        crash", whereas the term "system crash" usually, though not
        always, implies that the operating system or other software
        was at fault.

        2. To fail suddenly.  "Has the system just crashed?"
        "Something crashed the OS!" See {down}.  Also used
        transitively to indicate the cause of the crash (usually a
        person or a program, or both).  "Those idiots playing
        {SPACEWAR} crashed the system."

        (1994-12-01)

crash and burn

        <jargon> A spectacular crash, in the mode of the conclusion of
        the car-chase scene in the movie "Bullitt" and many subsequent
        imitators (compare {die horribly}).  A {Sun-3} {display
        screen} losing the flyback transformer and lightning strikes
        on {VAX-11/780} backplanes are notable crash and burn
        generators.

        The construction "crash-and-burn machine" is reported for a
        computer used exclusively for alpha or {beta} testing, or
        reproducing bugs (i.e. not for development).  The implication
        is that it wouldn't be such a disaster if that machine
        crashed, since only the testers would be inconvenienced.

        (1996-02-22)

crawler

        {robot}

crawling horror

        <jargon> Ancient crufty hardware or software that is kept
        obstinately alive by forces beyond the control of the hackers
        at a site.  Like {dusty deck} or {gonkulator}, but connotes
        that the thing described is not just an irritation but an
        active menace to health and sanity.  "Mostly we code new stuff
        in C, but they pay us to maintain one big FORTRAN II
        application from nineteen-sixty-X that's a real crawling
        horror."

        Compare {WOMBAT}.

        (1994-12-01)

Cray instability

        A shortcoming of a program or {algorithm} that manifests
        itself only when a large problem is being run on a powerful
        machine such as a {Cray}.  Generally more subtle than {bug}s
        that can be detected in smaller problems running on a
        {workstation} or {minicomputer}.

        (1994-10-13)

crayola

        /kray-oh'l*/ A {super-minicomputer} or {super-microcomputer}
        that provides some reasonable percentage of {supercomputer}
        performance for an unreasonably low price.  A crayola might
        also be a {killer micro}.

        (1994-10-13)

crayola books

        <publication> A humorous and/or disparaging term for the
        {rainbow series} of National Computer Security Center (NCSC)
        computer security standards.

        See also {Orange Book}.

        (1996-12-03)

crayon

        1. Someone who works on {Cray} {supercomputer}s.  More
        specifically, it implies a programmer, probably of the {CDC}
        ilk, probably male, and almost certainly wearing a tie
        (irrespective of gender).  Systems types who have a {Unix}
        background tend not to be described as crayons.

        2. A {computron} that participates only in {number crunching}.

        3. A unit of computational power equal to that of a single
        {Cray-1}.  There is a standard joke about this usage that
        derives from an old Crayola crayon promotional gimmick: When
        you buy 64 crayons you get a free sharpener.

        (1994-10-13)

Cray Research, Inc.

        <company> US manufacturer of large powerful {mainframe}
        {supercomputers}, co-founded by noted computer architect,
        {Seymour Cray}.

        Quarterly sales $216M, profits $8M (Aug 1994).

        Cray were bought by {Silicon Graphics, Inc.}.

        [More details?]

        (1999-10-19)

CRC

        {cyclic redundancy check}

creationism

        The (false) belief that large, innovative software designs can
        be completely specified in advance and then painlessly
        magicked out of the void by the normal efforts of a team of
        normally talented programmers.  In fact, experience has shown
        repeatedly that good designs arise only from evolutionary,
        exploratory interaction between one (or at most a small
        handful of) exceptionally able designer(s) and an active user
        population - and that the first try at a big new idea is
        always wrong.  Unfortunately, because these truths don't fit
        the planning models beloved of {management}, they are
        generally ignored.

creeping elegance

        Describes a tendency for parts of a design to become {elegant}
        past the point of diminishing return, something which often
        happens at the expense of the less interesting parts of the
        design, the schedule, and other things deemed important in the
        {Real World}.  See also {creeping featurism}, {second-system
        effect}, {tense}.

creeping featurism

        <jargon> /kree'ping fee'chr-izm/ (Or "feature creep") A
        systematic tendency to load more {chrome} and {features} onto
        systems at the expense of whatever elegance they may have
        possessed when originally designed.  "The main problem with
        {BSD} Unix has always been creeping featurism."

        More generally, creeping featurism is the tendency for
        anything to become more complicated because people keep saying
        "Gee, it would be even better if it had this feature too".
        The result is usually a patchwork because it grew one ad-hoc
        step at a time, rather than being planned.  Planning is a lot
        of work, but it's easy to add just one extra little feature to
        help someone, and then another, and another, ....  When
        creeping featurism gets out of hand, it's like a cancer.

        Usually this term is used to describe computer programs, but
        it could also be said of the federal government, the IRS 1040
        form, and new cars.  A similar phenomenon sometimes afflicts
        conscious redesigns; see {second-system effect}.  See also
        {creeping elegance}.

        (1997-08-03)

creeping featuritis

        <jargon> /kree'ping fee'-chr-i:`t*s/ A variant of {creeping
        featurism}, with its own spoonerism: "feeping creaturitis".
        Some people like to reserve this form for the disease as it
        actually manifests in {software} or {hardware}, as opposed to
        the lurking general tendency in designers' minds.  -ism means
        "condition" or "pursuit of", whereas -itis usually means
        "inflammation of".

        (1997-08-03)

C-Refine

        A {preprocessor} for {C} and languages with similar syntax by
        Lutz Prechelt <prechelt@ira.uka.de>.  C-Refine allows symbolic
        naming of code fragments so as to redistribute complexity and
        provide running commentary.

        Version 3.0 is available from comp.sources.reviewed archives.
        It is highly portable and has been ported to {Unix}, {MS-DOS},
        {Atari}, {Amiga}.

        {(ftp://ftp.uu.net/usenet/comp.sources.reviewed/volume02/crefine)}

        (1992-07-16)

CREN

        {Corporation for Research and Educational Networking}

CREW PRAM

        concurrent read, exclusive write {PRAM}.

crippleware

        1. Software that has some important functionality deliberately
        removed, so as to entice potential users to pay for a working
        version.

        2. (Cambridge) {Guiltware} that exhorts you to donate to some
        charity.

        Compare {careware}, {nagware}.

        3. Hardware deliberately crippled, which can be upgraded to a
        more expensive model by a trivial change (e.g. removing a
        jumper).

        [Example?]

        (1995-05-02)

criptography

        <spelling> It's spelled "{cryptography}".

        (1996-12-13)

Crisis Software

        A small UK company producing {software} for the {Acorn}
        {Archimedes} range of computers.

        {Home (http://www.dcs.warwick.ac.uk/~phid/Crisis/)}

        (1994-11-10)

CRISP

        A {Lisp}-like language and {compiler} for the {IBM 370}
        written by Jeff Barnett of SDC, Santa Monica, CA, USA in the
        early 1970s.  It generalised {Lisp}'s two-part {cons node}s to
        n-part nodes.

        (1994-11-10)

crisp

        (Or "discrete") The opposite of "{fuzzy}".

        (1994-12-23)

Crispy Critters

        (Or "Crispy Crittered".  From the "Post" breakfast cereal of
        the same name) A term used to describe {hardware} which is
        {fried} or {toast}.

        (1995-01-31)

critical mass

        In physics, the minimum amount of fissionable material
        required to sustain a chain reaction.  Of a software product,
        describes a condition of the software such that fixing one bug
        introduces one plus {epsilon} bugs.  (This malady has many
        causes: {creeping featurism}, ports to too many disparate
        environments, poor initial design, etc.)  When software
        achieves critical mass, it can never be fixed; it can only be
        discarded and rewritten.

        (1994-12-23)

critical section

        A non-{re-entrant} piece of code that can only be executed by
        one process at a time.  It will usually terminate in bounded
        time and a process will only have to wait a bounded time to
        enter it.  Some synchronisation mechanism is required at the
        entry and exit of the critical section to ensure exclusive
        use.

CRL

        Carnegie Representation Language.

        {Carnegie Group, Inc.}  Frame language derived from SRL.
        Written in Common LISP.  Used in the product Knowledge Craft.

CRLF

        <character> /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ A
        {carriage return} (CR, {ASCII} 13) followed by a {line feed}
        (LF, {ASCII} 10).  Under {Unix} influence this usage has
        become less common because Unix uses just line feed as its
        line terminator.

        See {newline}, {terpri}.

        (1995-03-27)

CRM

        1. <business> {Customer Relationship Management}.

        2. <networking> {Cisco Resource Manager}.

        (1999-10-04)

crock

        [American scatologism "crock of shit"] 1. An awkward feature
        or programming technique that ought to be made cleaner.  For
        example, using small integers to represent error codes without
        the program interpreting them to the user (as in, for example,
        Unix "make(1)", which returns code 139 for a process that dies
        due to {segfault}).

        2. A technique that works acceptably, but which is quite prone
        to failure if disturbed in the least.  For example, a
        too-clever programmer might write an assembler which mapped
        {instruction mnemonics} to numeric {opcode}s
        {algorithm}ically, a trick which depends far too intimately on
        the particular bit patterns of the opcodes.  (For another
        example of programming with a dependence on actual opcode
        values, see {The Story of Mel}.)  Many crocks have a tightly
        woven, almost completely unmodifiable structure.  See {kluge},
        {brittle}.  The adjectives "crockish" and "crocky", and the
        nouns "crockishness" and "crockitude", are also used.

cron

        <operating system> The Unix clock {daemon} that executes
        commands at specified dates and times according to
        instructions in a "crontab" file.

        {Unix manual page}: cron(8).

        (1997-04-10)

cross-assembler

        An {assembler} which runs on one type of processor and
        produces {machine code} for another.

        There is a set of {6502}, 68xx and {Zilog Z80} and {8085}
        cross-assemblers in {C} by <msmakela@cc.helsinki.fi> and Alan
        R. Baldwin.  They run under {MS-DOS} and could be compiled to
        run under {Unix} and on the {Amiga} and {Atari ST}.

        See also {fas}.

        {(ftp://ccosun.caltech.edu/)}

        (1993-03-10)

cross-compiler

        <programming> A {compiler} which runs on one {platform} and
        produces code for another, as opposed to a {native} code
        compiler which produces code for the platform on which it
        runs.

        (1998-02-24)

cross-platform

        <software, hardware> A term that describes a language,
        software application or hardware device that works on more
        than one system {platform} (e.g. {Unix}, {Microsoft Windows},
        {Macintosh}).  E.g. {Netscape Navigator}, {Java}.

        (1998-02-24)

cross-post

        [{Usenet}] To post a single article simultaneously to several
        {newsgroup}s.  Distinguished from posting the article
        repeatedly, once to each newsgroup, which causes people to see
        it multiple times (which is very bad form).  Gratuitous
        cross-posting without a Followup-To line directing responses
        to a single followup group is frowned upon, as it tends to
        cause {followup} articles to go to inappropriate newsgroups
        when people respond to only one part of the original posting.

cross software

        Software developed on one kind of computer for use on another
        (usually because the other computer does not have itself
        adequate facilities for software development).

CROSSTABS

        Simple language for statistical analysis of tabular data.
        "User's Manual for the CROSSTABS System", Cambridge Computer
        Assoc (Feb 1977).

crosstalk

        <electronics> Interference caused by two signals becoming
        partially superimposed on each other due to electromagnetic
        (inductive) or electrostatic (capacitive) coupling between the
        conductors carrying the signals.  A common example of
        crosstalk is where the magnetic field from changing current
        flow in one wire induces current in another wire running
        parallel to the other, as in a transformer.  Crosstalk can be
        reduced by using shielded cables and increasing the distance
        between conductors.

        (1995-12-20)

CROW PRAM

        concurrent read, owner write {PRAM}.

CRT

        {cathode ray tube}

crudware

        /kruhd'weir/ Pejorative term for the hundreds of megabytes of
        low-quality {freeware} circulated by user's groups and {BBS}s
        in the micro-hobbyist world.

cruft

        /kruhft/ [back-formation from {crufty}] 1.  An unpleasant
        substance.  The dust that gathers under your bed is cruft; the
        TMRC Dictionary correctly noted that attacking it with a broom
        only produces more.

        2. The results of shoddy construction.

        3. ["hand cruft", pun on "hand craft"] To write assembler code
        for something normally (and better) done by a compiler (see
        {hand-hacking}).

        4. Excess; superfluous junk; used especially of redundant or
        superseded code.

        This term is one of the oldest in the jargon and no one is
        sure of its etymology, but it is suggestive that there is a
        Cruft Hall at Harvard University which is part of the old
        physics building.  It is said to have been the physics
        department's radar lab during WWII.  To this day (early 1993)
        the windows appear to be full of random techno-junk.  {MIT} or
        Lincoln Labs people may well have coined the term as a knock
        on the competition.

cruftsmanship

        /kruhfts'm*n-ship / [{cruft}] The antithesis of craftsmanship.

cruft together

        (Also "cruft up") To throw together something ugly but
        temporarily workable.  Like {kluge up}, but more pejorative.
        "There isn't any program now to reverse all the lines of a
        file, but I can probably cruft one together in about 10
        minutes."  See {hack together}, {hack up}, {kluge up},
        {crufty}.

crufty

        /kruhf'tee/ [Possibly from "crusty"] 1. Poorly built, possibly
        over-complex.  The {canonical} example is "This is standard
        old crufty {DEC} software".  In fact, one fanciful theory of
        the origin of "crufty" holds that it was originally a mutation
        of "crusty" applied to DEC software so old that the "s"
        characters were tall and skinny, looking more like "f"
        characters.

        2. (Sometimes spelled "cruftie") A small crufty object (see
        {frob}); often one that doesn't fit well into the scheme of
        things.  "A {Lisp} {property list} is a good place to store
        crufties (or, collectively, {random} cruft)."

crumb

        Two binary digits; a {quad}.  Larger than a {bit},
        smaller than a {nibble}.  Considered silly.  Synonym {tayste}.

crunch

        1. To process, usually in a time-consuming or complicated way.
        Connotes an essentially trivial operation that is nonetheless
        painful to perform.  The pain may be due to the triviality's
        being embedded in a loop from 1 to 1,000,000,000.  "FORTRAN
        programs do mostly {number crunching}."

        2. To reduce the size of a file without losing information by
        a complicated scheme that produces bit configurations
        completely unrelated to the original data, such as by a
        {Huffman} code.  Since such {compression} usually takes more
        computations than simpler methods such as {run-length
        encoding}, the term is doubly appropriate.  (This meaning is
        usually used in the construction "file crunching" to
        distinguish it from {number crunching}.)  Use of {crunch}
        itself in this sense is rare among {Unix} hackers.

        3.  The hash character "#" ({ASCII} 35).  Used at {XEROX} and
        {CMU}, among other places.

        4. To squeeze program source into a minimum-size
        representation that will still compile or execute.  The term
        came into being specifically for a famous program on the BBC
        micro that crunched BASIC source in order to make it run more
        quickly (it was a wholly interpretive BASIC, so the number of
        characters mattered).  {Obfuscated C Contest} entries are
        often crunched; see the first example under that entry.

cruncha cruncha cruncha

        /kruhn'ch* kruhn'ch* kruhn'ch*/ An encouragement sometimes
        muttered to a machine bogged down in a serious {grovel}.  Also
        describes a notional sound made by grovelling hardware.  See
        {wugga wugga}, {grind} (sense 3).

crunchy

        {floppy disk}

cryppie

        <job, cryptography> /krip'ee/ A cryptographer.  One who hacks
        or implements software or hardware for {cryptography}.

        (1996-08-23)

crypt

        {Unix} command to perform {encryption} and {decryption}.

cryptanalysis

        The branch of {cryptography} concerned with decoding encrypted
        messages when you're not supposed to be able to.

        (1994-12-06)

Crypt Breakers Workbench

        (cbw) A freely distributable multi-window integrated workbench
        of tools for {cryptanalysis} of files encrypted with the
        {4.2BSD} {Unix} {crypt} command.  It was originally written by
        Robert W. Baldwin at {MIT}.

        {(ftp://black.ox.ac.uk/src/security)},
        {(ftp://scitsc.wlv.ac.uk/pub/infomagic/usenet.cdrom/sources/unix/volume
10)},
        {(ftp://ftp.sunet.se/pub/usenet/comp.sources.unix/volume10)}.

        (1994-12-06)

cryptography

        <cryptography> The practise and study of {encryption} and
        {decryption} - encoding data so that it can only be decoded by
        specific individuals.  A system for encrypting and decrypting
        data is a cryptosystem.  These usually involve an {algorithm}
        for combining the original data ("{plaintext}") with one or
        more "keys" - numbers or strings of characters known only to
        the sender and/or recipient.  The resulting output is known as
        "{ciphertext}".

        The security of a cryptosystem usually depends on the secrecy
        of (some of) the keys rather than with the supposed secrecy of
        the {algorithm}.  A strong cryptosystem has a large range of
        possible keys so that it is not possible to just try all
        possible keys (a "{brute force}" approach).  A strong
        cryptosystem will produce ciphertext which appears random to
        all standard statistical tests.  A strong cryptosystem will
        resist all known previous methods for breaking codes
        ("{cryptanalysis}").

        See also {cryptology}, {public-key encryption}, {RSA}.

        {Usenet} newsgroups: {news:sci.crypt},
        {news:sci.crypt.research}.

        {FAQ} {MIT
        (ftp://rtfm.mit.edu/pub/usenet/news.answers/cryptography-faq/)}.
        {Cryptography, PGP, and Your Privacy
        (http://draco.centerline.com:8080/~franl/crypto.html)}.

        (1995-03-29)

cryptology

        The study of {cryptography} and {cryptanalysis}.

        (1994-12-06)

Crystal

        Concurrent Representation of Your Space-Time ALgorithms.

        A {recursion equation} parallel language.

        ["A Parallel Language and its Compilation to Multiprocessor
        Machines or VLSI", M.C. Chen, 13th POPL, ACM 1986 pp.131-139].

        (1994-12-06)

CS-4

        ["CS-4 Language Reference Manual and Operating System
        Interface", Ben M. Brosgol et al, Report IR-130-2,
        Intermetrics, Cambridge MA, Oct 1975].

        (1995-01-19)

C-Scheme

        1. A dialect of {Scheme} by Joe Bartlett at {DEC}/{WRL},
        implemented in, and embeddable in, {C}.

        (1994-10-28)

        2. An alternative name for {MIT Scheme}.

        [Or are they the same thing?]

        (1995-01-19)

CSCI

        {Computer Software Configuration Item}

C/SCSC

        {Cost/Schedule Control System Criteria}

CSCW

        {Computer Supported Cooperative Work}

CSG

        {constructive solid geometry}

CSG-tree

        <graphics> (Or "status tree"?) An approach used in {ray
        tracing} to evaluate {constructive solid geometry} structures.

        [Better explanation?  "Evaluate"?]

        (1998-06-09)

csh

        {C shell}

C shell

        <operating system> (csh) The {Unix} {command line interpreter}
        {shell} and {script language} by {William Joy}, originating
        from {Berkeley} {Unix}.

        {Unix} systems up to around {Unix Version 7} only had one
        shell - the {Bourne shell}, sh.  Csh had better {interactive}
        features, notably command input {history}, allowing earlier
        commands to be recalled and edited (though it was still not as
        good as the {VMS} equivalent of the time).

        Presumably, csh's {C}-like {syntax} was intended to endear it
        to programmers but sadly it lacks some {sh} features which are
        useful for writing {shell scripts} so you need to know two
        different syntaxes for every shell construct.

        A plethora of different shells followed csh, e.g. {tcsh},
        {ksh}, {bash}, {rc}, but sh and csh are the only ones which
        are provided with most versions of Unix.

        (1998-04-04)

.cshrc

        <operating system> (C Shell run commands) A {C Shell} startup
        configuration file.  This file is found in a user's {home
        directory} and can contain shell and other commands to set
        variables, define aliases, and perform any other
        initialisation which should happen for every shell (as opposed
        to {.login} which is only run for a {login shell}).

        Compare {AUTOEXEC.BAT} on {MS-DOS}.

        See also {rc}.

        (1996-04-09)

CSID

        {character set identifier}

C++SIM

        A {class} library like the {simulation} class libraries of
        {SIMULA}, by Mark Little <M.C.Little@newcastle.ac.uk>.
        Version: 1.0.

        {(ftp://arjuna.ncl.ac.uk/)}

        (1993-06-04)

CSK Software

        <company> (Formerly "Quay Financial Software") An Irish
        company owned by the CSK Corporation of Japan (owner of Sega
        and Segasoft).  Quay's main product is {Slingshot}, the first
        {real-time} financial server for the {Internet}.

        {Home (http://www.slingshot.ie/)}.

        E-mail: John Slattery <jslatter@quay.ie>.

        Address: Lisle House, 33 Molesworth Street, Dublin 2, Ireland.

        Telephone: +353 (1) 604 6300.  Fax: +353 (1) 662 2195.

        (1997-05-13)

CSL

        1. Computer Structure Language.  A computer {hardware
        description language}, written in {BCPL}.

        ["Computer Structure Language (CSL)", Proc 1975 Symp on Comp
        Hardware Description Languages and their Appl, ACM (Sep
        1975)].

        2. Control and Simulation Language.  A language for industrial
        simulation from Esso and {IBM}.

        ["Control and Simulation Language", J.N. Buxton et al,
        Computer J 5(3):194-199 (Oct 1962).  Version: CSL 2 (1966 for
        IBM 7094)].

CSLIP

        {Compressed SLIP}

CSM

        ["CSM - A Distributed Programming Language", S. Zhongxiu et
        al, IEEE Trans Soft Eng SE-13(4):497-500 (Apr 1987)].

CSMA/CD

        Carrier Sense Multiple Access / Collision Detect.

        The low level network arbitration {protocol} used on
        {Ethernet}.  Nodes wait for quiet on the net before starting
        to transmit and listen while they are transmitting.  If two
        nodes transmit at once the data gets corrupted.  The nodes
        detect this and continue to transmit for a certain length of
        time to ensure that all nodes detect the collision.  The
        transmitting nodes then wait for a random time before
        attempting to transmit again thus minimising the chance of
        another collision.  The ability to detect collision during
        transmission reduces the amount of {bandwidth} wasted on
        collisions compared with simple {ALOHA} broadcasting.

        (1995-02-23)

CSMP

        {Continuous System Modeling Program}

CSNET

        Computers and Science Network, operated by {CREN} for US
        computer science institutes.  It provides {electronic mail}
        service via {dial-up} lines, {X.25} and {Internet} services.

CSO

        Campus Phone Book software developed for, and originally used
        at, the Computer Services Office of the University of Illinois
        at Urbana-Champaign.  The server software is known as "qi" and
        the client is "ph".  Recent versions of the software refer to
        CCSO (Computing & Communications Service Office).

        {(ftp://uxc.cso.uiuc.edu/)}

CSP

        1. <language> {Communicating Sequential Processes}.

        2. <hardware> {Chip Scale Packaging}.

CSP/80

        Based on CSP.

        "CSP/80: A Language for Communicating Processes", M. Jazayeri
        et al, Proc Fall COMPCON80, IEEE pp.736-740 (Sept 1980).

CS/PCode

        Used at {Microsoft}.

CSP/k

        {Concurrent SP/k}

CS-Prolog

        Distributed logic language.

        "CS-Prolog on Multi-Transputer Systems", I. Futo et al,
        Microprocessors & Microsystems, March 1989.

CSPS

        ["Toward Comprehensive Specification of Distributed Systems",
        G. Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE
        1987, pp. 282-289].

CSP-S

        ["Implementation of CSP-S for Description of Distributed
        Algorithms", L. Patniak et al, Comput Lang 9(3):193-202
        (1984)].

CS/QCode

        Used at {Microsoft}.

        [More detail?]

CSR

        {Control and Status Register}

CSS

        {Cascading Style Sheets}

CSSA

        An {object-oriented} language.

        ["Key Concepts in the INCAS Multicomputer Project", J. Nehmer
        et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987)].

CSS/II

        Computer System Simulator II.  Like {GPSS}, for {IBM 360}.

        ["Computer System Simulator II (CSS II) Program Description
        and Operations Manual", SH20-0875, IBM].

CSSL

        Continuous System Simulation Language.

        Versions include {ACSL}, {HYTRAN}, {SL-I}, {S/360} and {CSMP}.

        ["The SCi Continuous System Simulation Language (CSSL)",
        Simulation, 9(6) (Dec 1967)].

        (1994-12-06)

CSTools

        {Concurrency} through {message-passing} to named message
        queues.

CSU

        1. {California State University}.

        2. {Cleveland State University}.

        3. {Channel Service Unit}.

CSU/DSU

        {channel service unit/data service unit}

CSV

        <file format> {comma separated values}.

CTC

        {Cornell Theory Center}

CTCP

        <networking> {Client To Client Protocol}

CTI

        1. <communications> {Computer Telephone Integration}.

        2. <education> Computers in Teaching Initiative.  A UK
        government scheme.

        (1996-12-08)

CTL

        1. {Checkout Test language}.

        2. {Compiler Target Language}.

        3. {Computational Tree Logic}

CTOS

        1. <operating system> {Computerised Tomography Operating
        System}.

        2. <operating system> {Convergent Technologies Operating
        System}.

        (1997-06-23)

ctrl

        {control}

CTS

        1. <communications> {clear to send}.

        2. <medical> {overuse strain injury}.

        (1999-10-03)

CTSS

        {Compatible Timesharing System}

CTY

        /sit'ee/ or /C-T-Y/ [MIT] The terminal physically associated
        with a computer's system {console}.  The term is a contraction
        of "Console {tty}", that is, "Console TeleTYpe".  This {ITS}-
        and {TOPS-10}-associated term has become less common, as most
        Unix hackers simply refer to the CTY as "the console".

CU

        <chat> "see you".

        (1997-12-01)

cu

        1. <communications> {Call Unix}.

        2. <networking> The {country code} for Cuba.

        (1999-01-27)

CUA

        {Common User Access}

Cube

        Three-dimensional visual language for higher-order logic.

        "The Cube Language", M. Najork et al, 1991 IEEE Workshop on
        Visual Langs, Oct 1991, pp.218-224.

cube

        1. [short for "cubicle"] A module in the open-plan offices
        used at many programming shops.  "I've got the manuals in my
        cube."

        2. A NeXT machine (which resembles a matte-black cube).

cubing

        [parallel with "tubing"] 1. Hacking on an IPSC ({Intel
        Personal SuperComputer}) hypercube.  "Louella's gone cubing
        *again*!!"

CUCH

        CUrry-CHurch.

        {Lambda-calculus}

        ["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana
        Scott, Oxford U 1969].

        ["Introduction to the CUCH", C. Bohm et al, in Automata
        Theory, E.R. Caianiello ed, A-P 1966, pp.35-65].

        (1994-12-02)

Cuckoo's Egg

        {The Cuckoo's Egg}

CUL

        <chat> "See you later".

        (1997-12-01)

Culler-Fried System

        A system for interactive mathematics.

        [Sammet 1969, p. 253-255].

        (1994-11-15)

CUPID

        A graphic {query language}.

        ["CUPID: A Graphic Oriented Facility for Support of
        Nonprogrammer Interactions with a Database", N. McDonald, PhD
        Thesis, CS Dept, UC Berkeley 1975].

CUPL

        Cornell University Programming Language.

        A language for simple mathematics problems, based on {CORC},
        with {PL/I}-like {syntax}.

        ["An Instruction Language for CUPL", R.J. Walker, Cornell U,
        Jul 1967].

        (1994-11-15)

curly bracket

        brace

current

        <electronics> The quantity of {charge} per unit time, measured
        in Amperes (Amps, A).  By historical convention, the sign of
        current is positive for currents flowing from positive to
        negative {potential}, but experience indicates that electrons
        are negatively charged and flow in the opposite direction.

        (1995-10-05)

curried function

        <mathematics, programming> A {function} of N {arguments} can
        be considered as a function of one argument which returns
        another function of N-1 arguments.  E.g. in {Haskell} we can
        define:

                average :: Int -> (Int -> Int)

        (The parentheses are optional).  A {partial application} of
        average, e.g. (average 4), is a function of type (Int -> Int)
        which averages its argument with 4.  In uncurried languages a
        function must always be applied to all its arguments but a
        {partial application} can be represented using a {lambda
        abstraction}:

                \ x -> average(4,x)

        Currying is necessary if {full laziness} is to be applied to
        functional sub-expressions.

        It was named after the logician {Haskell Curry} but the
        19th-century formalist {Frege} was the first to propose it and
        it was first referred to in ["Uber die Bausteine der
        mathematischen Logik", M. Schoenfinkel, Mathematische
        Annalen. Vol 92 (1924)].

        {David Turner} <dat@ukc.ac.uk> said he got the term from
        {Christopher Strachey} who invented the term
        "currying" and used it in his lecture notes on programming
        languages written circa 1967.  Strachey also remarked that it
        ought really to be called "Schoenfinkeling".

        Stefan Kahrs <smk@dcs.ed.ac.uk> reported hearing somebody in
        Germany trying to introduce "scho"nen" for currying and
        "finkeln" for "uncurrying".  The verb "scho"nen" means "to
        beautify"; "finkeln" isn't a German word, but it suggests "to
        fiddle".

        ["Some philosophical aspects of combinatory logic",
        H. B. Curry, The Kleene Symposium, Eds. J. Barwise,
        J. Keisler, K. Kunen, North Holland, 1980, pp. 85-101]

        (1994-12-14)

currying

        Turning an uncurried function into a {curried function}.

curseperl

        A {curses} library for {Perl} by the author of Perl, Larry
        Wall <lwall@netlabs.com>.  It comes with Perl.

        (1994-12-06)

curses

        A set of subroutines in {Unix} for handling navigation on a
        terminal screen using the cursor.

cursor

        1. <hardware> A visually distinct mark on a display indicating
        where newly typed text will be inserted.  The cursor moves as
        text is typed and, in most modern editors, can be moved around
        within a document by the user to change the insertion point.

        2. <database> In {SQL}, a named control structure used by an
        {application program} to point to a row of data.  The position
        of the {row} is within a {table} or {view}, and the cursor is
        used interactively so select rows from columns.

        (1996-12-27)

cursor dipped in X

        <jargon> The metaphorical source of the electronic equivalent
        of a poisoned-pen letter.  Derived from English metaphors of
        the form "pen dipped in X" (where X = e.g. "acid", "bile",
        "vitriol").  These map over neatly to this hackish usage (the
        cursor being what moves, leaving letters behind, when one is
        composing on-line).

        "Talk about a {nastygram}!  He must've had his cursor dipped
        in acid when he wrote that one!"

        (1996-12-27)

CU-SeeMe

        <communications> /see`-yoo-see'-mee/ ("CU" from {Cornell
        University}) A {shareware} {personal computer}-based
        {videoconferencing} program for use over the {Internet},
        developed at {Cornell University}, starting in 1992.

        CU-SeeMe allows for direct {audiovisual} connections between
        {clients}, or, like {irc}, it can support multi-user
        converencing via {servers} (here called "reflectors") to
        distribute the video and audio signals between multiple
        clients.

        CU-SeeMe was the first videoconferencing tool available at a
        reasonable price (in this case, free) to users of personal
        computers.

        {Home (http://cu-seeme.cornell.edu/)}.

        {(http://home.stlnet.com/~hubble/cuseeme/index.html)}.

        Compare with {multicast backbone}.

        (1996-12-01)

CUSI

        A collection of indices to various {World-Wide Web} and other
        {Internet} documents.  It is located at {Nexor} in the UK.

        {(http://web.nexor.co.uk/public/cusi/cusi.html)}

        (1994-11-29)

cuspy

        /kuhs'pee/ [WPI: from the {DEC} abbreviation CUSP, for
        "Commonly Used System Program", i.e. a utility program used by
        many people] 1. (of a program) Well-written.

        2. Functionally excellent.  A program that performs well and
        interfaces well to users is cuspy.  See {rude}.

Customer Information Control System

        (CICS) An {IBM} communications system that got converted for
        {database} handling.

        (1994-11-29)

Customer Information Systems

        {Customer Relationship Management}

Customer Interaction Software

        {Customer Relationship Management}

Customer Relationship Management

        <business> (CRM, CIS, Customer Information Systems, Customer
        Interaction Software, TERM, Technology Enabled Relationship
        Manager) Enterprise-wide software applications that allow
        companies to manage every aspect of their relationship with a
        customer.  The aim of these systems is to assist in building
        lasting customer relationships - to turn customer satisfaction
        into customer loyalty.

        Customer information acquired from sales, marketing, customer
        service, and support is captured and stored in a centralised
        {database}.  The system may provide {data-mining} facilities
        that support an {opportunity management system}.  It may also
        be integrated with other systems such as accounting and
        manufacturing for a truly enterprise-wide system with
        thousands of users.

        (1999-08-20)

cut and paste

        {copy and paste}

cut a tape

        To write a software or document distribution on magnetic tape
        for shipment.  Has nothing to do with physically cutting the
        medium!  "Cutting a disk" has also been reported as live
        usage.  Related slang usages are mainstream business's "cut a
        check", the recording industry's "cut a record", and the
        military's "cut an order".

        All of these usages reflect physical processes in obsolete
        recording and duplication technologies.  The first stage in
        manufacturing an old-style vinyl record involved cutting
        grooves in a stamping die with a precision lathe.  More
        mundanely, the dominant technology for mass duplication of
        paper documents in pre-photocopying days involved "cutting a
        stencil", punching away portions of the wax overlay on a silk
        screen.  More directly, paper tape with holes punched in it
        was an important early storage medium.

cutover

        <communications, networking> /cut-ov*/ Switching from an old
        ({hardware} and/or {software}) system to a replacement system,
        covering the overlap from when the new system is {live} until
        the old system has been {shut down}.

        (1997-07-09)

cv

        <networking> The {country code} for Cape Verde.

        (1999-01-27)

CVS

        A {code management} system based on {RCS}.

CW

        {continuous wave}

CWeb

        <language> An {ANSI C} implementation of the {Web} {literate
        programming} language.  Version 3.1 by Levy, Knuth, and Marc
        van Leeuwen is writen in, and outputs, {ANSI C} and {C++}.

        {(ftp://ftp.cwi.nl/pub/cweb/)}.

        (1993-12-16)

CWI

        {Centrum voor Wiskunde en Informatica}

CWIC

        Compiler for Writing and Implementing Compilers.  Val Schorre.
        One of the early metacompilers.  Compare {Meta-II}.

CWIS

        {Campus-Wide Information System}

C with Classes

        Short-lived predecessor to C++.

        ["Classes: An Abstract Data Type Facility for the C Language",
        B. Stroustrup, CSTR-84 Bell Labs, Apr 1980].  Also in [SIGPLAN
        Notices (Jan 1982)].

cx

        <networking> The {country code} for Christmas Island.

        (1999-01-27)

cxref

        <tool> A cross-reference generator by Arnold Robbins
        <arnold@gatech.edu>.

        (1999-06-10)

cy

        <networking> The {country code} for Cyprus.

        (1999-01-27)

Cy486SLC

        A version of the {Intel 486} made by {Cyrix}.  It has a
        {486SX} {instruction set}, a 1 kilobyte {cache}, and an {Intel
        80386SX}-compatible pinout and thus, 16-bit data bus.

        (1994-11-30)

cyber

        <chat> To have {cybersex}.

        (1997-06-21)

cyberbunny

        <abuse> Someone who knows absolutely nothing about computers
        and advises people who know absolutely nothing about
        computers.  The term is used mostly on {AOL}, {Prodigy},
        {Compuserve}, etc.

        (1996-02-18)

cyberchondriac

        <jargon, humour> (After "hyperchondriac") A user who always
        thinks there is something wrong with his computer.

        (1998-05-09)

cybercrud

        <jargon> /si:'ber-kruhd/ 1. (Coined by Ted Nelson) Obfuscatory
        tech-talk.  Verbiage with a high {MEGO} factor.  The computer
        equivalent of bureaucratese.

        2. Incomprehensible stuff embedded in e-mail.  First there
        were the "Received" headers that show how mail flows through
        systems, then MIME ({Multi-purpose Internet Mail Extensions})
        headers and part boundaries, and now huge blocks of {hex} for
        PEM ({Privacy Enhanced Mail}) or PGP ({Pretty Good Privacy})
        {digital signatures} and certificates of authenticity.  This
        stuff all has a purpose and good user interfaces should hide
        it, but all too often users are forced to wade through it.

        (1995-04-04)

CyberGlove

        <hardware, virtual reality> A {data glove} sold by {Virtual
        Technologies} for $9800.  It is the state-of-the-art, high-end
        data glove for completely reactive immersive environments.
        The spandex-like glove houses 18 sensors to track accurately
        just about every move your hand is capable of making.  The
        accompanying software includes a three-dimensional hand model
        that can he added to any {virtual reality} application.  The
        glove includes a mount for Polhemus and Ascension sensors.

        (1995-04-04)

cybernetics

        <robotics> The comparative study of the internal workings of
        organic and machine processes in order to understand their
        similarities and differences.  Cybernetics often refers to
        machines that imitate human behaviour.

        See {artificial intelligence}, {robot}.

        (1994-11-24)

cyberpunk

        /si:'ber-puhnk/ (Originally coined by SF writer Bruce Bethke
        and/or editor Gardner Dozois) A subgenre of SF launched in
        1982 by William Gibson's epoch-making novel "Neuromancer"
        (though its roots go back through Vernor Vinge's "True Names"
        to John Brunner's 1975 novel "The Shockwave Rider").  Gibson's
        near-total ignorance of computers and the present-day hacker
        culture enabled him to speculate about the role of computers
        and hackers in the future in ways hackers have since found
        both irritatingly na"ive and tremendously stimulating.
        Gibson's work was widely imitated, in particular by the
        short-lived but innovative "Max Headroom" TV series.  See
        {cyberspace}, {ice}, {jack in}, {go flatline}.

        Since 1990 or so, popular culture has included a movement or
        fashion trend that calls itself "cyberpunk", associated
        especially with the rave/techno subculture.  Hackers have
        mixed feelings about this.  On the one hand, self-described
        cyberpunks too often seem to be shallow trendoids in black
        leather who have substituted enthusiastic blathering about
        technology for actually learning and *doing* it.  Attitude is
        no substitute for competence.  On the other hand, at least
        cyberpunks are excited about the right things and properly
        respectful of hacking talent in those who have it.  The
        general consensus is to tolerate them politely in hopes that
        they'll attract people who grow into being true hackers.

cyberrhea

        <humour, jargon> /si:'ber-eer/ An affliction of some {word
        processor} users; excessive frequency and looseness of
        productivity.  Particularly virulent among those who have not
        discovered the fortifying virtues of revision.

        ["Right Words, Right Places" Scott Rice, Wadsworth, 1993, A5.]

        (1997-02-25)

cybersex

        <networking> Sex performed in {real time} via a digital
        medium.

        Compare {teledildonics}.

        [Details?]

        (1998-02-10)

cyberspace

        <jargon> /si:'ber-spays/ 1. (Coined by {William Gibson})
        Notional "information-space" loaded with visual cues and
        navigable with brain-computer interfaces called "cyberspace
        decks"; a characteristic prop of {cyberpunk} SF.  In 1991
        serious efforts to construct {virtual reality} interfaces
        modelled explicitly on Gibsonian cyberspace were already under
        way, using more conventional devices such as glove sensors and
        binocular TV headsets.  Few hackers are prepared to deny
        outright the possibility of a cyberspace someday evolving out
        of the network (see {network, the}).

        2. Occasionally, the metaphoric location of the mind of a
        person in {hack mode}.  Some hackers report experiencing
        strong eidetic imagery when in hack mode; interestingly,
        independent reports from multiple sources suggest that there
        are common features to the experience.  In particular, the
        dominant colours of this subjective "cyberspace" are often
        grey and silver, and the imagery often involves constellations
        of marching dots, elaborate shifting patterns of lines and
        angles, or moire patterns.

        (1999-02-01)

cyberspastic

        <humour> A person suffering from information overload while
        browsing the {Internet} or {World-Wide Web}.

        Compare {webhead}.

        (1995-11-09)

cyber-squatting

        <jargon, networking> The practice of registering famous brand
        names as {Internet} {domain names}, e.g. harrods.com, ibm.firm
        or sears.shop, in the hope of later selling them to the
        appropriate owner at a profit.

        (1998-01-22)

CyberWand

        <hardware, virtual reality> A {virtual reality} {controller}.
        The CyberWand costs $99, or $765 with optional Polhemus
        sensor.  It is basically the handle of a flight control system
        without the base.  The controller's four buttons and 2-D hat
        sensor track six degrees of movement.

        (1995-04-04)

CyberZine

        <publication> A combination paper and {World-Wide Web} on-line
        {Cyberspace} guide.  Upon payment you will be given a user name
        and password to access CyberZine on-line and the paper version
        will be posted first class.  Subscribers can also use the
        CyberZine help desk.

        {Home (http://cyberzine.org/)}.

        (1994-09-22)

CYBIL

        Control Data's system programming language in the 80's.  Major
        parts of CDC systems written in this.

CYCL

        A {frame language}.

        ["Building Large Knowledge-Based Systems", Doug B. Lenat et
        al, A-W 1990].

cycle

        <unit> A basic unit of computation, one period of a computer
        {clock}.

        Each {instruction} takes a number of clock cycles.  Often the
        computer can access its memory once on every clock cycle, and
        so one speaks also of "memory cycles".

        Every {hacker} wants more cycles (noted hacker {Bill Gosper}
        describes himself as a "cycle junkie").  There are only so
        many cycles per second, and when you are sharing a computer
        the cycles get divided up among the users.  The more cycles
        the computer spends working on your program rather than
        someone else's, the faster your program will run.  That's why
        every hacker wants more cycles: so he can spend less time
        waiting for the computer to respond.

        The use of the term "cycle" for a computer clock period can
        probably be traced back to the rotation of a generator
        generating alternating current though computers generally use
        a clock signal which is more like a {square wave}.
        Interestingly, the earliest mechanical calculators,
        e.g. Babbage's {Difference Engine}, really did have parts
        which rotated in true cycles.

        (1997-09-30)

cyclebabble

        <jargon> Advertising raw {clock speed}, instead of {bus
        speed}.

        {IBM} uses raw clock speed as the speed of the computer.  In
        the {IBM PC} and {IBM PC XT}, the clock is divided by 4 to
        produce the 4-phase bus clocks.  Thus a 4 MHz IBM XT really
        runs at 0.895 MHz, because that 4 MHz was really 3.58 MHz
        which gets divided by four.

        A {Tandy} {Color Computer} ran at exactly the same speed, but
        clock speed was specified as bus speed, 0.895 MHz, leaving the
        impression that it was 4 times slower.  Actually it ran a
        little faster with a more efficient {instruction set}.  If the
        actual clock frequency had been specified on a {CoCo 3}, it
        would have been 14.32 MHz, although the bus speed was still
        0.895 MHz.  That high speed also generated video, color, and
        {hidden refresh} timing.

        100 MHz computers are running at bus speeds of around 25 MHz.

        (1997-02-13)

cycle crunch

        <jargon> A situation wherein the number of people trying to
        use a computer simultaneously has reached the point where no
        one can get enough {cycles} because they are spread too thin
        and the system has probably begun to {thrash}.

        This scenario is an inevitable result of Parkinson's Law
        applied to {time-sharing}.  Usually the only solution is to
        buy more computer.  Happily, this has rapidly become easier
        since the mid-1980s, so much so that the very term "cycle
        crunch" now has a faintly archaic flavour; most hackers now
        use {workstations} or {personal computers} as opposed to
        traditional {time-sharing} systems.

        (1994-11-29)

cycle drought

        A scarcity of {cycle}s.  It may be due to a {cycle crunch},
        but it could also occur because part of the computer is
        temporarily not working, leaving fewer cycles to go around.
        "The {high moby} is {down}, so we're running with only half
        the usual amount of memory.  There will be a cycle drought
        until it's fixed."

        (1994-11-29)

cycle of reincarnation

        A term coined by {Ivan Sutherland} ca. 1970 to refer to a
        well-known effect whereby function in a computing system
        family is migrated out to special-purpose {peripheral}
        hardware for speed, then the peripheral evolves toward more
        computing power as it does its job, then somebody notices that
        it is inefficient to support two asymmetrical processors in
        the architecture and folds the function back into the main
        {CPU}, at which point the cycle begins again.

        Several iterations of this cycle have been observed in
        {graphics-processor} ({blitter}) design, and at least one or
        two in communications and {floating-point} processors.  Also
        known as "the Wheel of Life", "the Wheel of Samsara" and other
        variations of the basic Hindu/Buddhist theological idea.

        (1994-11-16)

cycle server

        <jargon> A powerful computer that exists primarily for running
        large {batch} jobs.  The term implies that {interactive} tasks
        such as editing are done on other machines on the network,
        such as {workstations}.

        (1998-03-13)

cyclic redundancy check

        <algorithm> (CRC or "cyclic redundancy code") A number derived
        from, and stored or transmitted with, a block of data in order
        to detect corruption.  By recalculating the CRC and comparing
        it to the value originally transmitted, the receiver can
        detect some types of transmission errors.

        A CRC is more complicated than a {checksum}.  It is calculated
        using division either using shifts and exclusive ORs or table
        lookup (modulo 256 or 65536).

        The CRC is "redundant" in that it adds no information.  A
        single corrupted bit in the data will result in a one bit
        change in the calculated CRC but multiple corrupted bits may
        cancel each other out.

        CRCs treat blocks of input bits as coefficient-sets for
        polinomials.  E.g., binary 10100000 implies the polynomial:
        1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 0*x^2 + 0*x^1 + 0*x^0.
        This is the "message polynomial".  A second polynomial, with
        constant coefficients, is called the "generator polynomial".
        This is divided into the message polynomial, giving a quotient
        and remainder.  The coefficients of the remainder form the
        bits of the final CRC.  So, an order-33 generator polynomial
        is necessary to generate a 32-bit CRC.  The exact bit-set used
        for the generator polynomial will naturally affect the CRC
        that is computed.

        Most CRC implementations seem to operate 8 bits at a time by
        building a table of 256 entries, representing all 256 possible
        8-bit byte combinations, and determining the effect that each
        byte will have.  CRCs are then computed using an input byte to
        select a 16- or 32-bit value from the table.  This value is
        then used to update the CRC.

        {Ethernet} {packets} have a 32-bit CRC.  Many disk formats
        include a CRC at some level.

        (1997-08-02)

cyclic redundancy code

        {cyclic redundancy check}

Cyclo

        <programming, tool> (Cyclomatic complexity tool) A {C} and
        {C++} code analysis tool by Roger D. Binns.  It measures
        {cyclomatic complexity}, shows function calls, and can draw
        {flowgraphs} of {ANSI C} and {C++} code.  It requires {Lex}
        and {C++}.

        Posted to {alt.sources}, 1993-06-28.

        (1993-06-28)

cyclomatic complexity

        <programming, testing> A measure of the number of linearly
        independent paths through a program {module}.  Cyclomatic
        complexity is a measure for the complexity of code related to
        the number of ways there are to traverse a piece of code.
        This determines the minimum number of inputs you need to test
        all ways to execute the program.

        (1998-03-17)

Cygnus Tcl Tools

        A rebundling of {Tcl} and {Tk} into the {Cyngus} {GNU} build
        framework with "{configure}" by david d 'zoo' zuhn
        <zoo@cygnus.com>.  Version Release-930124.

        {(ftp://cygnus.com/pub/)}

        (1993-01-24)

cylinder

        <storage> The set of {tracks} on a multi-headed {disk} that
        may be accessed without head movement.  That is, the
        collection of disk tracks which are the same distance from the
        spindle about which the disks rotate.  Each such group forms
        the shape of a cylinder.  Placing data that are likely to be
        accessed together in cylinders reduces the access
        significantly as head movement ({seeking}) is slow compared to
        disk rotation and switching between heads.

        (1997-07-15)

CypherText

        <language> An interactive language for text formatting and
        typesetting.

        ["CypherText: An Extensible Composing and Typesetting
        Language", C.G. Moore et al, Proc FJCC 37, AFIPS (Fall 1970)].

        (1995-05-10)

Cyrix

        <company> A {microprocessor} manufacturer.  They produce an
        {Intel 486} equivalent - the {Cy486SLC} and a {Pentium}
        equivalent - the {Cyrix 6x86}.

        {Home (http://www.cyrix.com/)}.

        (1996-03-23)

Cyrix 6x86

        <processor> (6x86) {IBM} and {Cyrix}'s {sixth-generation},
        64-bit {80x86}-compatible {microprocessor}.  The 6x86 combines
        aspects of both {RISC} and {CISC}.  It has a {superscalar},
        {superpipelined} {core}, and performs {register renaming},
        {speculative execution}, {out-of-order completion}, and {data
        dependency removal}.  It has a 16-kilobyte {primary cache} and
        is socket-compatible with the {Pentium} P54C.  It has four
        performance levels: PR 120+, PR 150+, PR 166+ and PR 200+.

        The chip was designed by Cyrix and is manufactured by IBM.

        The architecture of the 6x86 is more advanced than that of the
        Pentium, incorporating some of the features of Intel's
        {Pentium Pro}.  At a given {clock rate} it executes most code
        more quickly than a Pentium would.  However, its {FPU} is
        considerably less efficient than Intel's.

        {IBM FAQ
        (http://www.chips.ibm.com/products/x86/6x86/faqs/6x86_faqs.html)},
        {Cyrix FAQ
        (http://www.cyrix.com/process/prodinfo/6x86/faq-6x86.htm)}.

        (1997-05-26)

cz

        <networking> The {country code} for the Czech Republic.

        (1999-01-27)

D

        1. "The Data Language."  {MS-DOS} 4GL.

        2. A {Haskell}-like language, with {type class}es.

        E-mail: <polar@cs.syr.edu>.

DAA

        Distributed Application Architecture: under design by
        Hewlett-Packard and Sun.  A distributed object management
        environment that will allow applications to be developed
        independent of operating system, network or windowing system.

DAC

        {Digital to Analog Converter}

DACAPO

        Broad-range hardware specification language.  "Mixed Level
        Modelling and Simulation of VLSI Systems", F.J. Rammig in
        Logic Design and Simulation, E. Horbst ed, N-H 1986.

DACNOS

        A prototype network operating system for multi-vendor
        environments, from IBM European Networking Centre Heidelberg
        and University of Karlsruhe.

        (1995-01-16)

D/A converter

        {Digital to Analog Converter}

DACTL

        Declarative Alvey Compiler Target Language.

        An intermediate language from the {University of East Anglia},
        used in the {Flagship} project.  DACTL is based on a form of
        {graph rewriting} which can be used to implement {functional
        language}s, {logic language}s and {imperative} languages.  The
        current version is Dactl0.

        ["DACTL - A Computational Model and Compiler Target Language
        Based on Graph Reduction", J.R.W. Glauert et al, ICL Tech J
        5(3) (1987)].

        (1994-09-22)

daemon

        <operating system> /day'mn/ or /dee'mn/ (From the mythological
        meaning, later rationalised as the acronym "Disk And Execution
        MONitor") A program that is not invoked explicitly, but lies
        dormant waiting for some condition(s) to occur.  The idea is
        that the perpetrator of the condition need not be aware that a
        daemon is lurking (though often a program will commit an
        action only because it knows that it will implicitly invoke a
        daemon).

        For example, under {ITS} writing a file on the {LPT} spooler's
        directory would invoke the spooling daemon, which would then
        print the file.  The advantage is that programs wanting files
        printed need neither compete for access to, nor understand any
        idiosyncrasies of, the {LPT}.  They simply enter their
        implicit requests and let the daemon decide what to do with
        them.  Daemons are usually spawned automatically by the
        system, and may either live forever or be regenerated at
        intervals.

        {Unix} systems run many daemons, chiefly to handle requests
        for services from other {host}s on a {network}.  Most of these
        are now started as required by a single real daemon, {inetd},
        rather than running continuously.  Examples are {cron} (local
        timed command execution), {rshd} (remote command execution),
        {rlogind} and {telnetd} (remote login), {ftpd}, {nfsd} (file
        transfer), {lpd} (printing).

        Daemon and {demon} are often used interchangeably, but seem to
        have distinct connotations (see {demon}).  The term "daemon"
        was introduced to computing by {CTSS} people (who pronounced
        it /dee'mon/) and used it to refer to what {ITS} called a
        {dragon}.

        (1995-05-11)

DAG

        1. <architecture> {Data Address Generator}.

        2. <mathematics> {directed acyclic graph}.

        (1997-08-30)

Daisy

        A {functional language}.

        ["Daisy Programming Manual", S.D. Johnson, CS Dept TR, Indiana
        U, 1988].

DAISY 201

        An early system on {G-15}.

        [Listed in CACM 2(5):16 (May 1959)].

daisy chain

        <networking> A {bus} wiring scheme in which, for example,
        device A is wired to device B, device B is wired to device C,
        etc.  The last device is normally wired to a resistor or
        {terminator}.  All devices may receive identical signals or,
        in contrast to a simple bus, each device in the chain may
        modify one or more signals before passing them on.

        Characteristic of {RS-485}, of {Apple}'s {LocalTalk}, and of
        various industrial control networks; also often used to
        describe {Thinwire} {Ethernet} ({10base2}).

        (1997-01-07)

daisywheel printer

        <printer> A kind of {impact printer} where the characters are
        arranged on the ends of the spokes of a wheel (resembling the
        petals on a daisy).

        The wheel (usually made of plastic) is rotated to select the
        character to print and then an electrically operated hammer
        mechanism bends the selected spoke forward slightly,
        sandwiching an ink ribbon between the character and the paper,
        as in a typewriter.

        One advantage of this arrangement over that of a typewriter is
        that different wheels may be inserted to produce different
        {typefaces}.

        (1998-04-28)

dangling pointer

        <programming> A reference that doesn't actually lead anywhere.
        In {C} and some other languages, a pointer that doesn't
        actually point at anything valid.  Usually this happens
        because it formerly pointed to something that has moved or
        disappeared, e.g. a {heap}-allocated block which has been freed
        and reused.

        Used as jargon in a generalisation of its technical meaning;
        for example, a local phone number for a person who has since
        moved is a dangling pointer.

DANTE

        A company established by the national research networks in
        Europe to provide international network services.

DAP Fortran

        ["Efficient High Speed Computing with the Distributed Array
        Processor", P.M. Flanders et al, pp.113-127 (1977)].

        [Same as Fortran- Plus?]

DAPLEX

        ["The Functional Data Model and the Data Language DAPLEX",
        D.W. Shipman, ACM Trans Database Sys, 6(1):140-173 (Mar
        1981)].

DARE

        Differential Analyzer REplacement.  A family of simulation
        languages for continuous systems.

        ["Digital Continuous System Simulation", G.A. Korn et al, P-H
        1978].

dark-side hacker

        A criminal or malicious hacker; a {cracker}.  From George
        Lucas's Darth Vader, "seduced by the dark side of the Force".
        The implication that hackers form a sort of elite of
        technological Jedi Knights is intended.

        Opposite: {samurai}.

        (1997-04-28)

Darms

        <language, music> A music language.

        ["The Darms Project: A Status Report", R.F. Erickson,
        Computers and the Humanities 9(6):291-298 (June 1975)].

        (1995-05-12)

DARPA

        {Defense Advanced Research Projects Agency}

Dartmouth BASIC

        <language> The original {BASIC} by Kemeny and Kurtz.

        (1995-05-12)

Darwin

        1. <programming, tool> A general purpose structuring tool of
        use in building complex {distributed systems} from diverse
        components and diverse component interaction mechanisms.
        Darwin is being developed by the Distributed Software
        Engineering Section of the Department of Computing at
        {Imperial College}.  It is in essence a {declarative} binding
        language which can be used to define hierarchic compositions
        of interconnected components.  Distribution is dealt with
        orthogonally to system structuring.  The language allows the
        specification of both static structures and dynamic structures
        which evolve during execution.  The central abstractions
        managed by Darwin are components and services.  Bindings are
        formed by manipulating references to services.

        The {operational semantics} of Darwin is described in terms of
        the {Pi-calculus}, {Milner}'s calculus of mobile processes.
        The correspondence between the treatment of names in the
        Pi-calculus and the management of service references in Darwin
        leads to an elegant and concise Pi-calculus model of Darwin's
        {operational semantics}.  The model has proved useful in
        arguing the correctness of Darwin implementations and in
        designing extensions to Darwin and reasoning about their
        behaviour.

        {Distributed Software Engineering Section
        (http://www-dse.doc.ic.ac.uk/)}.  {Darwin publications
        (http://scorch.doc.ic.ac.uk/dse-papers/darwin/)}.

        E-mail: Jeff Magee <jnm@doc.ic.ac.uk>, Naranker Dulay
        <nd@doc.ic.ac.uk>.

        2. {Core War}.

        (1998-10-30)

DAS

        Digital Analog Simulator.

        Represents {analog computer} design.

        (1994-11-08)

DASD

        {Direct-Access Storage Device}

DASE

        {Distributed Application Support Environment}

DASL

        Datapoint's Advanced System Language.

        A cross between {C} and {Pascal} by Gene Hughes with custom
        features for {Datapoint} hardware (no {stack}).  It is used
        internally by Datapoint.

        (1994-11-08)

DAT

        1. {Digital Audio Tape}.

        2. {Dynamic Address Translation}.

data

        <data, data processing, jargon> /day't*/ (Or "raw data")
        Numbers, {characters}, {images}, or other method of recording,
        in a form which can be assessed by a human or (especially)
        input into a {computer}, stored and {processed} there, or
        transmitted on some {digital channel}.  Computers nearly
        always represent data in {binary}.

        Data on its own has no meaning, only when interpreted by some
        kind of {data processing system} does it take on meaning and
        become {information}.

        People or computers can find patterns in data to perceive
        information, and information can be used to enhance
        {knowledge}.  Since knowledge is prerequisite to wisdom, we
        always want more data and information.  But, as modern
        societies verge on {information overload}, we especially need
        better ways to find patterns.

        1234567.89 is data.

        "Your bank balance has jumped 8087% to $1234567.89" is
        information.

        "Nobody owes me that much money" is knowledge.

        "I'd better talk to the bank before I spend it, because of
        what has happened to other people" is wisdom.

        (1999-04-30)

data abstraction

        {abstract data type}

Data Address Generator

        <architecture> (DAG) The mechanism which generates temporary
        memory addresses for data that is transferred between memory
        and {registers} in a {Digital Signal Processor}.

        Certain {DSP} architectures incorporate more than one DAG to
        simplify the programming needed to move blocks of data between
        buffers.

        For instance, certain {Fast Fourier Transform} {algorithms}
        requiring {bit reversing}, can use the DAG for that purpose,
        or they can use two DAGS, one for Program Memory Data (PMD),
        and the other for Data Memory Data (DMD).

        (1997-08-12)

database

        1. <database> One or more large structured sets of persistent
        data, usually associated with software to update and {query}
        the data.  A simple database might be a single file containing
        many {records}, each of which contains the same set of
        {fields} where each field is a certain fixed width.

        A database is one component of a {database management system}.

        See also {ANSI/SPARC Architecture}, {atomic}, {blob}, {data
        definition language}, {deductive database}, {distributed
        database}, {fourth generation language}, {functional
        database}, {object-oriented database}, {relational database}.

        {(http://www.bus.orst.edu/faculty/brownc/lectures/db_tutor/db_tutor.htm
)}.

        2. <hypertext> A collection of {nodes} managed and stored in
        one place and all accessible via the same {server}.  {Links}
        outside this are "external", and those inside are "internal".

        On the {World-Wide Web} this is called a {web site}.

        3. All the facts and rules comprising a {logic programming}
        program.

        (1997-03-04)

database administrator

        An individual responsible for the design and management of the
        {database} and for the evaluation, selection and
        implementation of the {database management system}.  In
        smaller organisations, the data administrator and database
        administrator are often one in the same; however, when they
        are different, the database administrator's function is more
        technical.  The database administrator would implement the
        database software that meets the requirements outlined by the
        organisation's data administrator and {systems analyst}s.

database machine

        A computer or special hardware that stores and retrieves data
        from a {database}.  It is specially designed for database
        access and is coupled to the main ({front-end}) computer(s) by
        a high-speed channel.  This contrasts with a {database
        server}, which is a computer in a {local area network} that
        holds a database.  The database machine is tightly coupled to
        the main CPU, whereas the database server is loosely coupled
        via the network.

database management system

        <database> (DBMS) A suite of programs which typically manage
        large structured sets of persistent data, offering ad hoc
        query facilities to many users.  They are widely used in
        business applications.

        A database management system (DBMS) can be an extremely
        complex set of software programs that controls the
        organisation, storage and retrieval of data (fields, records
        and files) in a database.  It also controls the security and
        integrity of the database.  The DBMS accepts requests for data
        from the application program and instructs the operating
        system to transfer the appropriate data.

        When a DBMS is used, information systems can be changed much
        more easily as the organisation's information requirements
        change.  New categories of data can be added to the database
        without disruption to the existing system.

        Data security prevents unauthorised users from viewing or
        updating the database.  Using passwords, users are allowed
        access to the entire database or subsets of the database,
        called subschemas (pronounced "sub-skeema").  For example, an
        employee database can contain all the data about an individual
        employee, but one group of users may be authorised to view
        only payroll data, while others are allowed access to only
        work history and medical data.

        The DBMS can maintain the integrity of the database by not
        allowing more than one user to update the same record at the
        same time.  The DBMS can keep duplicate records out of the
        database; for example, no two customers with the same customer
        numbers (key fields) can be entered into the database.

        {Query languages} and {report writers} allow users to
        interactively interrogate the database and analyse its data.

        If the DBMS provides a way to interactively enter and update
        the database, as well as interrogate it, this capability
        allows for managing personal databases.  However, it may not
        leave an audit trail of actions or provide the kinds of
        controls necessary in a multi-user organisation.  These
        controls are only available when a set of application programs
        are customised for each data entry and updating function.

        A business information system is made up of subjects
        (customers, employees, vendors, etc.) and activities (orders,
        payments, purchases, etc.).  Database design is the process of
        deciding how to organize this data into record types and how
        the record types will relate to each other.  The DBMS should
        mirror the organisation's data structure and process
        transactions efficiently.

        Organisations may use one kind of DBMS for daily transaction
        processing and then move the detail onto another computer that
        uses another DBMS better suited for random inquiries and
        analysis.  Overall systems design decisions are performed by
        data administrators and systems analysts.  Detailed database
        design is performed by database administrators.

        The three most common organisations are the {hierarchical
        database}, {network database} and {relational database}.  A
        database management system may provide one, two or all three
        methods.  Inverted lists and other methods are also used.  The
        most suitable structure depends on the application and on the
        transaction rate and the number of inquiries that will be
        made.

        Database machines are specially designed computers that hold
        the actual databases and run only the DBMS and related
        software.  Connected to one or more mainframes via a
        high-speed channel, database machines are used in large volume
        transaction processing environments.  Database machines have a
        large number of DBMS functions built into the hardware and
        also provide special techniques for accessing the disks
        containing the databases, such as using multiple processors
        concurrently for high-speed searches.

        The world of information is made up of data, text, pictures
        and voice.  Many DBMSs manage text as well as data, but very
        few manage both with equal proficiency.  Throughout the 1990s,
        as storage capacities continue to increase, DBMSs will begin
        to integrate all forms of information.  Eventually, it will be
        common for a database to handle data, text, graphics, voice
        and video with the same ease as today's systems handle data.

        See also: {intelligent database}.

        (1998-10-07)

database manager

        The part of the database management system (DBMS) that handles
        the organisation, storage and retrieval of the data.  A
        database manager may work with traditional programming
        languages, such as COBOL and BASIC, or may work only with its
        proprietary programming language.  The terms database manager
        and database management system are used interchangeably.

        A database manager links two or more files together and is the
        foundation for developing routine business systems.  Contrast
        with file manager, which works with only one file at a time
        and is typically used interactively on a personal computer for
        managing personal, independent files, such as name and address
        lists.

database normalisation

        <database> A series of steps followed to obtain a {database}
        design that allows for efficient access and {storage} of data
        in a {relational database}.  These steps reduce data
        redundancy and the chances of data becoming inconsistent.

        A {table} in a {relational database} is said to be in normal
        form if it satisfies certain {constraints}.  {Codd}'s original
        work defined three such forms but there are now five generally
        accepted steps of normalisation.  The output of the first step
        is called First Normal Form (1NF), the output of the second
        step is Second Normal Form (2NF), etc.

        First Normal Form eliminates {repeating groups} by putting
        each into a separate table and connecting them with a
        {one-to-many relationship}.

        Second Normal Form eliminates {functional dependencies} on a
        {partial key} by putting the fields in a separate table from
        those that are dependent on the whole {key}.

        Third Normal Form eliminates functional dependencies on
        non-key fields by putting them in a separate table.  At this
        stage, all non-key fields are dependent on the key, the whole
        key and nothing but the key.

        Fourth Normal Form separates independent multi-valued facts
        stored in one table into separate tables.

        Fifth Normal Form breaks out data redundancy that is not
        covered by any of the previous normal forms.

        {(http://home.earthlink.net/~billkent/Doc/simple5.htm)}.

        [What about non-relational databases?]

        (1999-05-05)

database query language

        <database> A language in which users of a {database} can
        (interactively) formulate requests and generate reports.  The
        best known is {SQL}.

        (1998-04-15)

database server

        A stand-alone computer in a local area network that holds and
        manages the database.  It implies that database management
        functions, such as locating the actual record being requested,
        is performed in the server computer.  Contrast with file
        server, which acts as a remote disk drive and requires that
        large parts of the database, for example, entire indexes, be
        transmitted to the user's computer where the real database
        management tasks are performed.

        First-generation personal computer database software was not
        designed for a network; thus, modified versions of the
        software released by the vendors employed the file server
        concept.  Second-generation products, designed for local area
        networks, perform the management tasks in the server where
        they should be done, and consequently are turning the file
        server into a database server.

Data/BASIC

        Also known as Pick BASIC.  A BASIC-like language with database
        capabilities, the main programming language on the Pick OS.
        "The Data/BASIC Language - A Data Processing Language for
        Non-Professional Programmers", P.C. Dressen, Proc SJCC 36,
        AFIPS (Spring 1970).

DATABUS

        DATApoint BUSiness Language.

        A language like an interpreted {assembly language}, used for
        custom applications on {Datapoint} computers.

        (1995-01-16)

data bus

        <architecture> The connections between and within the {CPU},
        memory and peripherals used to carry data.  Other connections
        are the {address bus} and control signals.

        The width of the data bus is one of the main factors
        determining the processing power of a computer.  Most current
        processor designs use a 32-bit bus, meaning that 32 bits of
        data can be transferred at once.  Some processors have an
        internal data bus which is wider than their external bus in
        order to make external connections cheaper while retaining
        some of the benefits in processing power of a wider bus.

        See also {data path}.

        (1995-01-16)

data channel

        <communications> A channel (on a {BRI} or {PRI} line) used to
        carry control information, to set up connections on the
        associated {bearer channels}.  The name wasn't too bad back
        when users were sending voice (not data) over the {bearer
        channels}, but in 1997 it's quite a misnomer.

        (1997-03-10)

DATACODE I

        <language> An early system used on the {Datatron 200} series.

        [Listed in CACM 2(5):16, May 1959].

        (1994-12-06)

Datacom

        A {DBMS} from {Computer Associates International}.

        (1994-12-06)

Data Communication Equipment

        <communications, hardware> (DCE) The devices and connections
        of a communications network that connect the communication
        circuit between the data source and destination (the {Data
        Terminal Equipment} or DTE).  A {modem} is the most common
        kind of DCE.

        Before data can be transmited over a modem, the DTR (Data
        Terminal Ready) signal must be active.  DTR tells the DCE that
        the DTE is ready to transmit and receive data.

        DCE and DTE are usually connected by an {RS-232} {serial
        line}.  It is necessary to distinguish these two types of
        device because their connectors must be wired differently if a
        "straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.)
        is to be used.  DCE should have a female connector and should
        transmit on pin two and receive on pin three.  It is a curious
        fact that many {modem}s are "DTE" according to the original
        standard.

        (1995-02-28)

Data Communications Equipment

        {Data Communication Equipment}

data compression

        <algorithm> {compression}.  Probably to distinguish it from
        (electronic) {signal compression}.

        (1995-04-02)

Data definition language

        <language, database> (DDL)

        1. A language enabling the structure and instances of a
        {database} to be defined in a human-, and machine-readable
        form.

        {SQL} contains DDL commands that can be used either
        interactively, or within programming language {source code},
        to define databases and their components, e.g. CREATE and
        DROP.

        See also {Data manipulation language} (DML).

        2. A specification language for databases, based on the
        {entity-relationship model}.  It is used in the {Eli}
        {compiler-compiler} to manage type definitions.

        ["DDL Reference Manual", ECE Dept U Colorado, 1991].

        (1999-04-26)

data dictionary

        <database> A data structure that stores {meta-data}, i.e. data
        about {data}.  The term "data dictionary" has several uses.

        Most generally it is a set of {data descriptions} that
        can be shared by several applications.

        Usually it means a {table} in a {database} that stores the
        names, {field} {types}, length, and other characteristics of
        the fields in the database tables.

        An active data dictionary is automatically updated as changes
        occur in the database.  A passive data dictionary must be
        manually updated.

        In a {DBMS}, this functionality is performed by the {system
        catalog}.  The data dictionary is a more general software
        utility used by designers, users, and administrators for
        {information resource management}.

        The data dictionary may maintain information on system
        hardware, software, documentation, users, and other aspects.

        Data dictionaries are also used to document the database
        design process itself and can accumulate meta-data
        ready to feed into the system catalog.

        (1999-04-27)

data dictionary file

        <database> (DDF) A set of files describing the structure of a
        {database} file. DDFs define {database tables} and include
        information about file locations, field layouts and
        indexes. DDFs are the standard method for defining field and
        index characteristics for {Btrieve} files.

        (1997-06-03)

data driven

        A data driven architecture/language performs computations in
        an order dictated by data dependencies.  Two kinds of data
        driven computation are {dataflow} and {demand driven}.

        From about 1970 research in parallel {data driven} computation
        increased.  Centres of excellence emerged at {MIT},
        {CERT-ONERA} in France, {NTT} and {ETL} in Japan and
        {Manchester University}.

Data Driven Machine

        <language> (DDM) A {dataflow} language.

        ["The Architecture and System Method of DDM-1: A Recursively
        Structured Data Driven Machine", A. Davis, Proc 5th Ann Symp
        Comp Arch, IEEE 1978].

        (1999-04-26)

Data Encryption Algorithm

        (DEA) An {ANSI} {standard} defined in ANSI X3.92-1981.  It is
        identical to the {Data Encryption Standard} (DES).

        (1994-12-06)

Data Encryption Key

        (DEK) Used for the {encryption} of message text and for the
        computation of message integrity checks (signatures).

        See {cryptography}.

        (1994-12-06)

Data Encryption Standard

        (DES) The {NBS}'s popular, standard {encryption} algorithm.
        It is a {product cipher} that operates on 64-bit blocks of
        data, using a 56-bit key.  It is defined in {FIPS} 46-1 (1988)
        (which supersedes FIPS 46 (1977)).  DES is identical to the
        {ANSI} standard {Data Encryption Algorithm} (DEA) defined in
        ANSI X3.92-1981.

        DES has been implemented in {VLSI}.  {SunOS} provides a des
        command which can make use of DES hardware if fitted.  Neither
        the software nor the hardware are supposed to be distributed
        outside the USA.

        {Unix manual pages}: des(1), des(3), des(4).

        (1994-12-06)

data flow

        A data flow architecture or language performs a computation
        when all the {operand}s are available.  Data flow is one kind
        of {data driven} architecture, the other is {demand driven}.
        It is a technique for specifying parallel computation at a
        fine-grain level, usually in the form of two-dimensional
        graphs in which instructions that are available for concurrent
        execution are written alongside each other while those that
        must be executed in sequence are written one under the other.
        Data dependencies between instructions are indicated by
        directed arcs.  Instructions do not reference memory since the
        data dependence arcs allow data to be transmitted directly
        from the producing instruction to the consuming one.

        Data flow schemes differ chiefly in the way that they handle
        {re-entrant} code.  Static schemes disallow it, dynamic
        schemes use either "code copying" or "tagging" at every point
        of reentry.

        An example of a data flow architecture is {MIT}'s {VAL}
        machine.

data flow analysis

        <programming> A process to discover the dependencies between
        different data items manipulated by a program.  The order of
        execution in a {data driven} language is determined solely by
        the data dependencies.  For example, given the equations

                1. X = A + B
                2. B = 2 + 2
                3. A = 3 + 4

        a data-flow analysis would find that 2 and 3 must be evaluated
        before 1.  Since there are no data dependencies between 2 and
        3, they may be evaluated in any order, including in parallel.

        This technique is implemented in {hardware} in some
        {pipelined} processors with multiple {functional units}.  It
        allows instructions to be executed as soon as their inputs are
        available, independent of the original program order.

        (1996-05-13)

Data Flow Diagram

        A graphical notation used to describe how data flows between
        processes in a system.  An important tool of most {structured
        analysis} techniques.

data fork

        <file system> See {Macintosh file system}.

        (1996-03-04)

data frame

        {activation record}

Data General

        <company> A US computer manufacturer.  Responsible for the
        {Nova} {minicomputer}.

        Quarterly sales $284M, profits -$12M (Aug 1994).

        (1994-09-26)

Data General mN601

        {Data General MicroNova 601}

data glove

        <hardware, virtual reality> An input device for {virtual
        reality} in the form of a glove which measures the movements
        of the wearer's fingers and transmits them to the computer.
        Sophisticated data gloves also measure movement of the wrist
        and elbow.  A data glove may also contain control buttons or
        act as an output device, e.g. vibrating under control of the
        computer.  The user usually sees a virtual image of the
        data glove and can point or grip and push objects.

        Examples are {Fifth Dimension Technologies} (5DT)'s {5th
        Glove}, and {Virtual Technologies}' {CyberGlove}.  A cheaper
        alternative is {InWorld VR}'s {CyberWand}.

        ["Full freedom plus input", PC Magazine, Mar 14 1995,
        pp. 168-190].

        [Inventor?]

        (1995-04-04)

datagram

        A self-contained, independent entity of data carrying
        sufficient information to be {route}d from the source to the
        destination computer without reliance on earlier exchanges
        between this source and destination computer and the
        transporting {network}.

        See also {connectionless}, {frame}, {packet}.

data hierarchy

        The system of data objects which provide the {method}s for
        {information} storage and retrieval.  Broadly, a data
        hierarchy may be considered to be either natural, which arises
        from the alphabet or syntax of the language in which the
        information is expressed, or machine, which reflects the
        facilities of the computer, both hardware and software.

        A natural data hierarchy might consist of {bits},
        {characters}, words, phrases, sentences, paragraphs, and
        chapters.  One might use components bound to an application,
        such as field, record, and file, and these would ordinarily be
        further specified by having {data descriptors} such as name
        field, address field, etc.  On the other hand, a machine or
        software system might use {bit}, {byte}, {word}, {block},
        {partition}, {channel}, and {port}.

        Programming languages often provide {types} or {objects} which
        can create data hierarchies of arbitrary complexity, thus
        allowing software system designers to model language
        structures described by the linguist to greater or lesser
        degree.

        The distinction between the natural form of data and the
        facilities provided by the machine may be obscure, because
        users force their needs into the molds provided, and
        programmers change machine designs.  As an example, the
        natural data type "character" and the machine type "byte" are
        often used interchangably, because the latter has evolved to
        meet the need of representing the former.

        (1995-11-03)

Data Interchange Standards Association

        <standard> (DISA) A not-for-profit corporation that acts as
        the secretariat for {ANSI}'s {EDI} standards committee, ASC
        X12 that works on {ANSI X12}.  DISA manages ASC X12's
        membership, balloting, standards development and maintenance,
        publications, and communications with ANSI.

        (1999-09-18)

Data Jack

        <hardware> A wall-mounted or desk-mounted connector
        (frequently a wide telephone-style 8-pin {RJ-45}) for
        connecting to data cabling in a building.

        (1997-01-07)

Datakit

        <networking> A {circuit-switched} digital network, similar to
        {X.25}.  Datakit supports {host-to-host} connections and
        {RS-232} connections for {terminals}, {printers}, and {hosts}.

        Most of {Bell Laboratories} is {trunk}ed together on Datakit.
        On top of DK transport service, people run {UUCP} for
        {electronic mail} and {dkcu} for {remote login}.

        ISN is the version of Datakit supported by {AT&T} Information
        Systems.  Bell Laboratories in Holmdel, New Jersey, uses ISN
        for internal data communication.

        {(http://www.fc.net:80/phrack/files/p18/p18-9.html)}.

        ["Towards a universal data transport system", A. G. Fraser,
        IEEE Journal on Selected Areas in Communications, SAC-1(5)
        pp. 803-16, 1983].

        (1996-10-20)

Data Link Control Identifier

        <networking> (DLCI) A channel number which is attached to
        {data frames} to tell the network how to route the data.

        {Frame Relay FAQ (http://www.etinc.com/)}.

        (1997-03-01)

data link layer

        <networking> Layer two, the second lowest layer in the {OSI}
        seven layer model.  The data link layer splits data into
        {frames} (see {fragmentation}) for sending on the {physical
        layer} and receives acknowledgement frames.  It performs error
        checking and re-transmits frames not received correctly.  It
        provides an error-free virtual channel to the the {network
        layer}.  The data link layer is split into an upper sublayer,
        {Logical Link Control} (LLC), and a lower sublayer, {Media
        Access Control} (MAC).

        Example {protocols} at this layer are {ABP}, {Go Back N},
        {SRP}.

        (1995-02-14)

data link level

        {data link layer}

Data Link Provider Interface

        <networking> (DLPI) The interface that a {network driver}
        presents to the (higher level) {logical link layer} for
        driving the network at the {datagram} level in a {Unix}
        {STREAMS} environment and possibly elsewhere.

        DLPI corresponds to {ISO 8802}/2 ({LLC}) which covers both
        {connection-oriented} and {connectionless} {protocols}.

        [Is this correct?  Better explanation?]

        (1996-01-29)

Data Management Language

        <language> (DML)

        1. Any language for manipulating data or files,
        e.g. {IBM}'s {Distributed Data Management} (DDM).

        2. An early {ALGOL}-like language with lists and graphics,
        that ran on the {Honeywell 635}.

        ["DML: A Data Management Language", D.W. Bray et al, GE,
        Syracuse NY].

        (1999-06-07)

Data Manipulation Language

        <language, database> (DML, or {Data Management Language}) A
        language for the manipulation of data in a {database} by
        applications and/or directly by end-users.

        {SQL} contains DML commands such as INSERT, UPDATE, and
        DELETE.

        See also {Data Definition Language} (DDL).

        (1999-04-26)

data mart

        <database> A type of {data warehouse} designed primarily to
        address a specific function or department's needs, as opposed
        to a data warehouse which is traditionally meant to address
        the needs of the organisation from an enterprise perspective.
        In addition, a data mart often uses {aggregation} or
        summarisation of the data to enhance query performance.
        However, it is important to maintain the ability to access the
        underlying base data to enable {drill-down analysis} as
        necessary.

        (1998-04-24)

Datamation

        /day"t*-may"sh*n/ A magazine that many hackers assume all
        {suit}s read.  Used to question an unbelieved quote, as in
        "Did you read that in "Datamation?""  It used to publish
        something hackishly funny every once in a while, like the
        original paper on {COME FROM} in 1973, and Ed Post's "Real
        Programmers Don't Use Pascal" ten years later, but it has
        since become much more exclusively {suit}-oriented and boring.

data mining

        <database> Analysis of data in a {database} using tools which
        look for trends or anomalies without knowledge of the meaning
        of the data.  Data mining was invented by {IBM} who hold some
        related patents.

        [Products?]

        (1994-10-20)

data model

        <database> A mathematical formalism with a notation for
        describing data structures and a set of operations used to
        manipulate and validate that data.  For example, a data model
        might specify that a customer record contains a customer name
        and credit card number and a product record contains a product
        code and price and that there is a one-to-many relation
        between a customer and a product.

        It can be difficult to change a database layout once code has
        been written and data inserted.  A well thought-out data model
        can help reduce the need for such changes.

        The {relational model} is the most widely used data model.
        Another example is {NIAM}.

        ["Principles of Database and Knowledge-Base Systems",
        J.D. Ullman, Volume I, Computer Science Press, 1988, p. 32].

        (1998-03-17)

data packet

        {packet}

Dataparallel-C

        {C} with parallel extensions by Hatcher and Quinn of the
        University of New Hampshire.  It was based on an early version
        of {C*} and runs on the {Intel} {iPSC-2} and {nCube}.

Data Parallel Haskell

        <language, parallel> Adds Parallel Objects with arbitrary
        Dimension (PODs) and POD comprehensions to Haskell.

        {(ftp://redstar.dcs.qmw.ac.uk/cpc/jon_hill/dpGlue.ps.Z)}

        ["Data Parallel Haskell: Mixing Old and New Glue", J. Hill].

        (1995-03-30)

data path

        <architecture> A {CPU}'s internal {data bus} and {functional
        units}.  The width of the data path in bits is a major
        determiner of the processor's performance.

        (1997-07-09)

Dataphone Digital Service

        <communications, product> (DDS) The first private-line digital
        service offered by {AT&T}, with data rates typically at 2.4,
        4.8, 9.6 and 56 kilobits per second.  DDS is now part of
        AT&T's {Accunet} family of services.  Most LEC (local exchange
        carriers) and IXC (IntereXchange Carriers) offer similar
        services.

        (1995-02-28)

data processing

        <application> The input, verification, organisation, storage,
        retrieval, transformation, and extraction of {information}
        from {data}.  The term is normally associated with commercial
        applications such as stock control or payroll.

        (1995-03-30)

data rate

        <communications> The amount of {data} transferred per second
        by a communications channel or a computing or storage
        device. Typically measured in units of {bits per second}
        (bps), {bytes per second} (Bps) or {baud}.

        (1997-04-16)

data set

        <operating system, storage> An {IBM} term for a {file}.

        (1997-04-15)

data set organization

        <operating system, storage> An {IBM} term for the way a {file}
        is structured.  Examples are {partitioned}, {sequential} or
        {VSAM}.

        (1997-04-15)

Datastorm Technologies, Inc.

        <company> Suppliers of {Procomm}.

        Address: Columbia MO, USA.

        (1995-04-04)

data striping

        <storage> Segmentation of logically {sequential} data, such as
        a single file, so that segments can be written to multiple
        physical devices (usually {disk drives}) in a {round-robin}
        fashion.  This technique is useful if the processor is capable
        of reading or writing data faster than a single disk can
        supply or accept it.  While data is being transferred from the
        first disk, the second disk can locate the next segment.

        Data striping is used in some modern {databases}, such as
        {Sybase}, and in certain {RAID} devices under hardware
        control, such as {IBM}'s {RAMAC} array subsystem (9304/9395).

        Data striping is different from, and may be used in
        conjunction with, {mirroring}.

        (1996-10-17)

Data Structures Language

        <language> A dialect of {MAD} with extensions for lists and
        graphics, on {Philco 212}.

        ["A Compiler Language for Data Structures", N. Laurance, Proc
        ACM 23rd Natl Conf 36 (1968)].

        (1995-02-28)

Data Terminal Equipment

        <communications, hardware> (DTE) A device which acts as the
        source and/or destination of data and which controls the
        communication channel.  DTE includes terminals, computers,
        {protocol converters}, and {multiplexors}.

        DTE is usually connected via an {RS-232} {serial line} to
        {Data Communication Equipment} (DCE), typically a {modem}.  It
        is necessary to distinguish these two types of device because
        their connectors must be wired differently if a
        "straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.)
        is to be used.  DTE should have a male connector and should
        transmit on pin three and receive on pin two.  It is a curious
        fact that many {modems} are actually "DTE" according to the
        original standard.

        (1995-02-28)

DATA-TEXT

        <tool> A system from {Harvard} for numerical computations in
        the Social Sciences.

        ["DATA-TEXT Primer", D.J. Armor, Free Press 1972].

        (1994-12-06)

DATATRIEVE

        A query and report system for use with DEC's VMS system (RMS,
        VAX Rdb/VMS or VAX DBMS).

data type

        {type}

DataViews

        {Graphical user interface} development software from
        {V.I.Corporation}, aimed at constructing
        {platform}-independent interactive views of dynamic data.

        (1994-12-07)

DataVis

        A {dataflow} language for scientific {visualisation}.

        ["Data Flow Visual Programming Languages", D. Hils, J Vis
        Langs and Comput, Dec 1991].

        (1994-12-06)

data warehouse

        <database> 1. A generic term for a system for storing,
        retrieving and managing large amounts of any type of data.
        Data warehouse software often includes sophisticated
        {compression} and {hashing} techniques for fast searches, as
        well as advanced filtering.

        2. A {database}, often remote, containing recent snapshots of
        corporate data.  Planners and researchers can use this
        database freely without worrying about slowing down day-to-day
        operations of the production database.

        Compare {data mart}.

        (1998-04-30)

data warehousing

        {data warehouse}

date

        <convention, data> A string unique to a time duration of 24
        hours between 2 successive midnights defined by the local time
        zone.  The specific representation of a date will depend on
        which calendar convention is in force; e.g., Gregorian,
        Islamic, Japanese, Chinese, Hebrew etc. as well as local
        ordering conventions such as UK: day/month/year, US:
        month/day/year.

        Inputting and outputting dates on computers is greatly
        complicated by these {localisation} issues which is why they
        tend to operate on dates internally in some unified form such
        as seconds past midnight at the start of the first of January
        1970.

        Many software and hardware representations of dates allow only
        two digits for the year, leading to the {year 2000} problem.

        {Unix manual page}: date(1), ctime(3).

        (1997-07-11)

DAU

        /dow/ [German Fidonet] D"ummster Anzunehmender User.  A German
        acronym for stupidest imaginable user.  From the
        engineering-slang GAU for Gr"osster Anzunehmender Unfall
        (worst foreseeable accident), especially of a LNG tank farm
        plant or something with similarly disastrous consequences.  In
        popular German, GAU is used only to refer to worst-case
        nuclear accidents such as a core meltdown.

        See {cretin}, {loser} and {weasel}.

        (1994-12-06)

daughter

        <mathematics, data> (Or "child", "successor") In a {tree}, a
        {node} pointed to by a {parent}, i.e. another node closer to
        the {root node}.

        (1998-11-14)

David Turner

        Professor David A Turner.  One of the pioneers of modern
        {functional language}s.  He designed several languages,
        including, {SASL} (1976), {KRC} (1981) and {Miranda}, many of
        which were implemented using {combinator}s and the {S-K
        reduction machine} which he defined.

        He coined the name "{ZF expression}" for the {list
        comprehension}.

        He set up a company, {Research Software} Limited to market
        {Miranda}.

        E-mail: <dat@ukc.ac.uk>.

        (1994-12-06)

day mode

        See {phase} (sense 1).  Used of people only.

DAZIX

        Daisy/Cadnetix Corporation.

        A supplier of digital electronic {CAE} systems.

        (1994-12-06)

DB

        {database}

DB2

        <database> A {relational database} from {IBM}.

        When running under IBM's MVS ({Multiple Virtual Storage})
        {operating system}, DB2 is implemented on top of {VSAM} and
        uses its underlying data structures.

        DB2, later called "DB2 Universal DataBase", also runs under
        {windows NT}, {AIX}, {Solaris} and, most recently, {Linux}.

        [Details?  Was there a "DB1"?]

        (1999-02-01)

DB-25

        <hardware> The standard 25-pin "D-type" connector used for
        {RS-232} serial communication.

        {DB-9} is a common alternative, especially on {personal
        computers}.

        (1996-12-08)

DB-9

        <hardware> The standard 9-pin connector used for {RS-232}
        serial communication (in place of {DB-25}).

        (1996-12-08)

DBA

        {database administrator}

dBASE

        <tool, product, language> A {DBMS} from {Ashton-Tate
        Corporation} and the language used by it.

        The first release was dBASE II, ca 1980.  There never was a
        "dBASE I".  Later versions: {dBASE III}, dBASE III+, and dBASE
        IV.

        {Visual dBASE} is a graphical development environment.

        (1996-11-05)

DBC

        <language, parallel> A {data-parallel} {bit-serial} {C} based
        on {MPL}.  SRC, Bowie MD.

        E-mail: <maya@super.org>.

        (1995-05-01)

DBCS

        <character> (IBM) double-byte character set.

        A {character set} that uses 16 bits to represent a character.

        (1995-03-21)

dBFAST

        {dBASE} dialect for {MS-DOS} and {MS-Windows}.

DBH

        {Denis Howe}

DBMS

        {database management system}

DBPL

        A {procedural language} with {relational database} constructs.
        A successor to {Pascal/R} and {Modula/R}.

        ["DBPL Report", J.W. Schmidt et al, DBPL-Memo 111-88,
        Fachbereich Informatik, Johann Wolfgang Goethe-Universitaet,
        Frankfurt, Germany, 1988].

        (1994-12-07)

DBRI

        {Dual Basic Rate Interface}

dBXL

        A {dBASE}-like {interpreter}/language for {MS-DOS} from
        {WordTech}, Orinda, CA.

        (1994-12-07)

DC

        <language, tool> The {Unix} {arbitrary precision} {postfix}
        calculator and its language.

        Here is an example program which prints out {factorial}s:

                echo "[la1+dsa*pla2220>y]sy0sa1lyx" | dc

        {Unix manual page}: dc(1).

        {bc} provides a somewhat more readable syntax which is
        compiled into dc.  There is also a {GNU DC}.

        (1995-03-17)

DC1

        {control-Q}

DC2

        {Device Control 2}

DC3

        {Control-S}

DC4

        {Device Control 4}

DCA

        1. Defense Communications Agency.  See {DISA}.

        2. {Document Content Architecture} from {IBM}.

DCALGOL

        Data Communications ALGOL.  A superset of {Burroughs Extended
        ALGOL} used for writing Message Control Systems.

DCC

        <networking> {Direct Client to Client Protocol}.

DCDL

        Digital Control Design Language.  A language for simulating
        computer systems.

        ["DCDS Digital Simulating System", H. Potash et al, Proc FJCC
        35, AFIPS (Fall 1969)].

DCE

        1. {Data Communication Equipment}.

        2. Data Circuit-terminating Equipment.

        3. {Distributed Computing Environment} from {OSF}.

DCG

        {Definite Clause Grammar}

DCI

        {Display Control Interface}

DCL

        1. DIGITAL Command Language.  The interactive command and
        scripting language for VAX/VMS.

        2. Delphi Common LISP.  An implementation of Common LISP that
        has been used as a basis for CLOS.

DCOM

        {Distributed Component Object Model}

DCP

        {definitional constraint programming}

D. C. Power Lab

        The former site of {SAIL}.  This name was very funny because
        the obvious connection to electrical engineering was
        nonexistent - the lab was named after a Donald C. Power.
        Compare {Marginal Hacks}.

        [But did DCP's parents realise the joke?]

DCS

        {Digital Cellular System}

DCT

        {Discrete Cosine Transform}

DD

        1. <storage> {double density}.

        2. {Data Dictionary}.

        (1998-08-28)

dd

        A {Unix} copy command with special options suitable for
        block-oriented devices; it was often used in heavy-handed
        system maintenance, as in "Let's "dd" the {root partition}
        onto a tape, then use the {boot PROM} to load it back on to a
        new disk".

        The Unix "dd" was designed with a weird, distinctly non-Unixy
        keyword option syntax reminiscent of {IBM} {System/360} JCL
        (which had an elaborate DD "Dataset Definition" specification
        for I/O devices); though the command filled a need, the
        interface design was clearly a prank.

        The jargon usage is now very rare outside Unix sites and now
        nearly obsolete even there, as "dd" has been {deprecated} for
        a long time (though it has no exact replacement).  The term
        has been displaced by {BLT} or simple English "copy".

        (1995-02-03)

DDB

        {device independent bitmap}

DDCMP

        {Digital Data Communications Message Protocol} ({DEC}).

DDE

        {Dynamic Data Exchange}

DDE Manager

        An {Oracle} product that lets {Microsoft Windows}
        applications that support the {Dynamic Data Exchange} (DDE)
        {protocol} act as front end tools for Oracle.  It allows
        applications like {Excel}, {Word}, {Ami Professional}, {WingZ}
        and {ToolBook} to query, update, graph and report information
        stored in Oracle.

DDIF

        Digital Document Interchange Format.  A CDA specification for
        representing compound documents in revisable format; a DEC
        standard for document encoding.

DDL

        1. ["A Digital System Design Language (DDL)", J.R. Duley, IEEE
        Trans on Computers c-17(9), pp. 850-861, Sep 1968].

        2. <language, games> An {adventure} language developed by
        M. Urban, C. Kostanick et al of the {UCLA} Computer Club.  DDL
        was the the forerunner of {ADL}.

        3. {Data Definition Language}.

        4. {Document Description Language}.

        5. {Dynamic Data Exchange}.  (Originally "Linking").

        (1997-06-05)

DDM

        1. <protocol, database> {Distributed Data Management}.

        2. <language> {Data Driven Machine}.

        (1999-06-07)

DDN

        {Defense Data Network}

DDP

        {Distributed Data Processing}

DDS

        1. {Digital Data Service}.

        2. {Digital Data System}.

        3. {Dataphone Digital Service}.

DDT

        1. Generic term for a program that assists in debugging other
        programs by showing individual machine instructions in a
        readable symbolic form and letting the user change them.  In
        this sense the term DDT is now archaic, having been widely
        displaced by "debugger" or names of individual programs like
        "{adb}", "{sdb}", "{dbx}", or "{gdb}".

        2. Under {MIT}'s fabled {ITS} {operating system}, DDT (running
        under the alias HACTRN) was also used as the {shell} or top
        level command language used to execute other programs.

        3. Any one of several specific debuggers supported on early
        {DEC} hardware.  The {DEC} {PDP-10} Reference Handbook (1969)
        contained a footnote on the first page of the documentation
        for DDT that illuminates the origin of the term:

        Historical footnote: DDT was developed at {MIT} for the
        {PDP-1} computer in 1961.  At that time DDT stood for "DEC
        Debugging Tape".  Since then, the idea of an on-line debugging
        program has propagated throughout the computer industry.  DDT
        programs are now available for all DEC computers.  Since media
        other than tape are now frequently used, the more descriptive
        name "Dynamic Debugging Technique" has been adopted, retaining
        the DDT abbreviation.  Confusion between DDT-10 and another
        well known pesticide, dichloro-diphenyl-trichloroethane
        (C14-H9-Cl5) should be minimal since each attacks a different,
        and apparently mutually exclusive, class of bugs.

        (The "tape" referred to was, incidentally, not magnetic but
        paper.)  Sadly, this quotation was removed from later editions
        of the handbook after the {suit}s took over and DEC became
        much more "businesslike".

        The history above is known to many old-time hackers.  But
        there's more: Peter Samson, compiler of the original {TMRC}
        lexicon, reports that he named "DDT" after a similar tool on
        the {TX-0} computer, the direct ancestor of the PDP-1 built at
        {MIT}'s Lincoln Lab in 1957.  The debugger on that
        ground-breaking machine (the first transistorised computer)
        rejoiced in the name FLIT (FLexowriter Interrogation Tape).

de

        <networking> The {country code} for Germany.

        (1999-01-27)

DEA

        {Data Encryption Algorithm}

DEACON

        Direct English Access and CONtrol.  English-like query system.
        Sammet 1969, p.668.

dead

        1. Non-functional; {down}; {crash}ed.  Especially used of
        {hardware}.

        2. At {XEROX PARC}, software that is working but not
        undergoing continued development and support.

DEADBEEF

        <convention, storage> /ded-beef/ The {hexadecimal} pattern
        used to fill words of freshly allocated memory under a number
        of {IBM} environments including the {RS/6000}; equal to
        decimal 3,735,928,559 (unsigned) or -559,038,737 (32-bit
        signed).  As in "Your program is DEADBEEF" (meaning gone,
        aborted, flushed from memory).

        (1998-06-29)

dead code

        <programming> (Or "infeasible path", "{grunge}") Any part of a
        program that can never be accessed because all calls to it
        have been removed, or because it is guarded by a control
        structure that provably must always transfer control somewhere
        else.  The presence of dead code may reveal either logical
        errors due to alterations in the program or significant
        changes in the assumptions and environment of the program (see
        also {software rot}); a good compiler should report dead code
        so a maintainer can think about what it means.  Sometimes it
        simply means that an *extremely* defensive programmer has
        inserted {can't happen} tests which really can't happen - yet.

        Synonym {grunge}.

        (1996-05-22)

deadlock

        <parallel> A situation where two or more {processes} are
        unable to proceed because each is waiting for one of the
        others to do something.  A common example is a program
        communicating to a server, which may find itself waiting for
        output from the server before sending anything more to it,
        while the server is similarly waiting for more input from the
        controlling program before outputting anything.  (It is
        reported that this particular flavour of deadlock is sometimes
        called a "starvation deadlock", though the term "starvation"
        is more properly used for situations where a program can never
        run simply because it never gets high enough priority.
        Another common flavour is "constipation", in which each
        process is trying to send stuff to the other but all buffers
        are full because nobody is reading anything).  See {deadly
        embrace}.

        Compare: {livelock}.  See also {safety property}, {liveness
        property}.

        (1998-07-05)

deadly embrace

        <parallel> Same as {deadlock}, though usually used only when
        exactly two processes are involved.  This is the more popular
        term in Europe, while {deadlock} predominates in the United
        States.

        (1998-07-05)

dead tree

        <jargon> Paper.  See also {tree-killer}.

        (1998-03-18)

dead tree edition

        <publication, jargon> The paper version of a publication
        available in both paper and electronic forms, as in: "The dead
        tree edition of the San Francisco Chronicle".

        (1997-04-17)

deamon

        <spelling> It's spelled "{daemon}".

        (1996-12-13)

death code

        A routine whose job is to set everything in the computer -
        {register}s, memory, flags - to zero, including that portion
        of memory where it is running; its last act is to stomp on its
        own "store zero" instruction.  Death code isn't very useful,
        but writing it is an interesting hacking challenge on
        architectures where the instruction set makes it possible,
        such as the {PDP-8} or the {Data General} {Nova}.

        Perhaps the ultimate death code is on the {TI 990} series,
        where all {register}s are actually in {RAM}, and the
        instruction "store immediate 0" has the {opcode} 0.  The
        {program counter} will immediately wrap around core as many
        times as it can until a user hits HALT.  Any empty memory
        location is death code.  Worse, the manufacturer recommended
        use of this instruction in startup code (which would be in
        {ROM} and therefore survive).

Death Star

        ["Star Wars" film] 1. The AT&T corporate logo, which appears
        on computers sold by AT&T and bears an uncanny resemblance to
        the Death Star in the movie.  This usage is particularly
        common among partisans of {BSD} Unix, who tend to regard the
        AT&T versions as inferior and AT&T as a bad guy.  Copies still
        circulate of a poster printed by Mt. Xinu showing a starscape
        with a space fighter labelled {4.2BSD} streaking away from a
        broken AT&T logo wreathed in flames.

        2. AT&T's internal magazine, "Focus", uses "death star" to
        describe an incorrectly done AT&T logo in which the inner
        circle in the top left is dark instead of light - a frequent
        result of dark-on-light logo images.

Debian

        <operating system> /deb'ee`n/, *not* /deeb'ee`n/ The
        non-profit volunteer organisation responsible for Debian
        {GNU}/{Linux} and Debian {GNU}/{Hurd}.  Debian's {Linux}
        distribution is dedicated to free and {open source} software;
        the main goal of the distribution is to ensure that one can
        download and install a fully-functional {operating system}
        that is completely adherent to the Debian Free Software
        Guidelines (DFSG).

        Debian was begun in August 1993 by Ian Murdock, and was
        sponsored by the {Free Software Foundation} from November 1994
        to November 1995.  The name Debian is a contraction of DEB(ra)
        and IAN Murdock.

        Debian's packaging system (dpkg) is similar to other popular
        packaging systems like {RPM}.  There are over 2200 packages of
        precompiled software available in the main (free) section of
        the Debian 2.1 distribution alone -- this is what sets Debian
        apart from many other Linux distributions.  The high quality
        and huge number of official packages (most Debian systems'
        /usr/local/ remains empty -- almost everything most Linux
        users want is officially packaged) are what draw many people
        to use Debian.

        Another unique aspect to the Debian project is the open
        development; pre-releases are made available from Day 1 and if
        anyone wishes to become a Debian developer, all that is needed
        is proof of identification and a signed {PGP} or {GPG} key.
        There are over 400 Debian developers all around the world --
        many developers have never met face-to-face, and most
        development talks take place on the many {mailing lists} and
        the {IRC} network.

        {Home (http://www.debian.org/)}.

        {Debian Linux archives (ftp://ftp.debian.org/debian)}.

        (1999-02-23)

Debian GNU/Linux

        {Debian}

deboursification

        <jargon> Removal of {bogus} or irrelevant {newsgroups} from
        the Newsgroups header of a {followup}.  The term applies
        particularly to the removal of frivolous groups added by one
        of the Kooks.

        See also: {sneck}.

        [Sam Spade anti-{spam} software].

        (1999-09-15)

De Bruijn graph

        <mathematics> A class of {graphs} with elegant properties.

        De Bruijn graphs are especially easy to use for {routing},
        with shifting of source and destination addresses.

        [What properties?  How are they used in routing?]

        (1998-04-28)

De Bruijn notation

        A variation of lambda notation for specifying functions using
        numbers instead of names to refer to formal parameters.  A
        reference to a formal parameter is a number which gives the
        number of lambdas (written as \ here) between the reference
        and the lambda which binds the parameter.  E.g. the function \
        f . \ x . f x would be written \ . \ . 1 0.  The 0 refers to
        the innermost lambda, the 1 to the next etc.  The chief
        advantage of this notation is that it avoids the possibility
        of name capture and removes the need for alpha conversion.
        [N.G. De Bruijn, "Lambda Calculus Notation with Nameless
        Dummies: A Tool for Automatic Formula Manipulation, with
        Application to the Church-Rosser Theorem", Indag Math. 34, pp
        381-392]

debugging

        <programming> Attempting to determine the cause of the
        symptoms of malfunctions detected by testing or by frenzied
        user complaints.

        The term is said to have been coined by {Grace Hopper}, based
        on the term "{bug}".

        (1999-06-29)

DEC

        {Digital Equipment Corporation}

dec

        <programming> /dek/ decrement, decrease by one.  Especially
        used by {assembly language} programmers, as many assembly
        languages have a "dec" {mnemonic}.

        Opposite: {inc}.

DEC Alpha

        <processor> A {RISC} {microprocessor} from {DEC}.  In November
        1995, the Alpha was purportedly the fastest non-research chip
        used in commonly available {workstations}.  It is
        {superpipelined} and {superscalar}.  In February 1996 it was
        clocked at 200 MHz and in March 1998 at 666 MHz.

        (1998-03-17)

decay

        [Nuclear physics] An automatic conversion which is applied to
        most array-valued expressions in {C}; they "decay into"
        pointer-valued expressions pointing to the array's first
        element.  This term is not used in the official standard for
        the language.

DECdesign

        A software analysis and design tool from {DEC} supporting
        several methodologies.  Now replaced by {Teamwork}.

        (1994-09-05)

DECdns

        Distributed Naming Service.

        Adopted by {OSF} as the naming service for {DCE}.

DEChead

        /dek'hed/ 1. A {DEC} {field servoid}.  Not flattering.

        2. ["deadhead"] A Grateful Dead fan working at {DEC}.

dechunker

        {chunker}

decidability

        <mathematics> A property of sets for which one can determine
        whether something is a member or not in a {finite} number of
        computational steps.

        Decidability is an important concept in {computability
        theory}.  A set (e.g. "all numbers with a 5 in them") is said
        to be "decidable" if I can write a program (usually for a
        {Turing Machine}) to determine whether a number is in the set
        and the program will always terminate with an answer YES or NO
        after a finite number of steps.

        Most sets you can describe easily are decidable, but there are
        infinitely many sets so most sets are undecidable, assuming
        any finite limit on the size (number of instructions or number
        of states) of our programs.  I.e. how ever big you allow your
        program to be there will always be sets which need a bigger
        program to decide membership.

        One example of an undecidable set comes from the {halting
        problem}.  It turns out that you can encode every program as a
        number: encode every symbol in the program as a number (001,
        002, ...) and then string all the symbol codes together.  Then
        you can create an undecidable set by defining it as the set of
        all numbers that represent a program that terminates in a
        finite number of steps.

        A set can also be "semi-decidable" - there is an {algorithm}
        that is guaranteed to return YES if the number is in the set,
        but if the number is not in the set, it may either return NO
        or run for ever.

        The {halting problem}'s set described above is semi-decidable.
        You decode the given number and run the resulting program.  If
        it terminates the answer is YES.  If it never terminates, then
        neither will the decision algorithm.

        (1995-01-13)

decidable

        {decidability}

decimal point

        <character> "." {ASCII} character 46.  Common names are:
        point; {dot}; {ITU-T}, USA: period; {ITU-T}: decimal point.
        Rare: radix point; UK: full stop; {INTERCAL}: spot.

        (1995-03-14)

decision problem

        <theory> A problem with a yes/no answer.  Determining whether
        some potential solution to a question is actually a solution
        or not.  E.g. "Is 43669" a {prime number}?".  This is in
        contrast to a "{search problem}" which must find a solution
        from scratch, e.g. "What is the millionth prime number?".

        See {decidability}.

        (1996-05-03)

decision support

        Software used to aid management decision making, typically
        relying on a {decision support database}.

        [Examples?]

        (1995-02-14)

decision support database

        A {database} from which data is extracted and analysed
        statistically (but not modified) in order to inform business
        or other decisions.  This is in contrast to an {operational
        database} which is being continuously updated.

        For example, a decision support database might provide data to
        determine the average salary of different types of workers,
        whereas an operational database containing the same data would
        be used to calculate pay check amounts.

        Often, decision support data is extracted from operation
        databases.

        (1995-02-14)

Decision Support Systems

        <application, tool> (DSS) Software tools to help with
        {decision support}.

        (1995-02-14)

decision theory

        <probability> A branch of statistics concerning strategies for
        decision making in non-{deterministic} systems.  Decision
        theory seeks to find strategies that maximise the expected
        value of a {utility function} measuring the desirability of
        possible outcomes.

        (1995-09-22)

deckle

        /dek'l/ (From "dec-" and "{nibble}"; the original spelling
        seems to have been "decle") Two {nickle}s; 10 {bit}s.
        Reported among developers for {Mattel}'s {GI 1600} (the
        {Intellivision} games processor), a chip with 16-bit wide
        {RAM} but 10-bit wide {ROM}.

        (1994-11-23)

declarative language

        A general term for a {relational language} or a {functional
        language}, as opposed to an {imperative language}.  Imperative
        (or procedural) languages specify explicit sequences of steps
        to follow to produce a result, while declarative languages
        describe relationships between variables in terms of functions
        or {inference rule}s and the language executor ({interpreter}
        or {compiler}) applies some fixed {algorithm} to these
        relations to produce a result.  The most common examples of
        declarative languages are {logic programming} languages such
        as {Prolog} and {functional language}s like {Haskell}.

        See also {production system}.

        (1994-11-23)

DECmate

        {DEC}'s original competition for the {IBM PC}.  It used the
        {Intersil 6120} {microprocessor}.

        (1994-11-23)

DECnet

        A proprietary network protocol designed by Digital Equipment
        Corporation.  The functionality of each Phase of the
        implementation, such as Phase IV and Phase V, is different.

Decomposed Petri Net

        (DPN) The basis of {concurrency} in {ConC}.

decryption

        <cryptography> Any procedure used in {cryptography} to convert
        {ciphertext} (encrypted data) into {plaintext}.

        (1995-05-10)

DECstation

        <computer> A range of {RISC} based {workstations} manufactured
        by {DEC}.

        [Details?]

        (1997-04-29)

DECT

        {Digital Enhanced Cordless Telecommunications}

DECtape

        <hardware, storage> A reel of {magnetic tape} about 4 inches
        in diameter and one inch wide.  Unlike today's {macrotapes},
        microtape drivers allowed {random access} to the data, and
        therefore could be used to support {file systems} and even for
        {swapping} (this was generally done purely for {hack value},
        as they were far too slow for practical use).  DECtape was a
        variant on {LINCtape}.

        In their heyday DECtapes were used in pretty much the same
        ways one would now use a {floppy disk}: as a small, portable
        way to save and transport files and programs.

        (1995-03-16)

DECUS

        {Digital Equipment Computer Users Society}

Decus cpp

        An almost-{ANSI C} {preprocessor} by Martin Minow.  It is
        shipped with {X11R5} (contrib/util/cpp) because some systems
        don't have a working {cpp}.

        It runs on {VMS} ({Vax C}, {Decus C}), {RSX-11M}, {RSTS/E},
        {P/OS}, {RT11}, {A/UX} and {Apollo Domain}/IX 9.6 and is
        highly portable.

        (1994-11-03)

DEC Wars

        A 1983 {Usenet} posting by Alan Hastings and Steve Tarr
        spoofing the "Star Wars" movies in hackish terms.  Some years
        later, ESR (disappointed by Hastings and Tarr's failure to
        exploit a great premise more thoroughly) posted a
        3-times-longer complete rewrite called "Unix WARS"; the two
        are often confused.

DECwindows

        DEC's windowing environment based on the {X Window System}.

DECwrite

        {DEC}'s {CDA}-based, {WYSIWYG} document processing
        application.  It can generate and import {SGML} marked-up
        documents.

DED

        Dark-Emitting Diode (that is, a burned-out LED).  Compare
        {SED}, {LER}, {write-only memory}.  In the early 1970s both
        Signetics and Texas instruments released DED spec sheets as
        {AFJ}s (suggested uses included "as a power-off indicator").

dedicated line

        <communications> A telephone line leased expressly for the
        purpose of connecting two users more-or-less permenantly..
        Such lines may be "voice grade" which provides the {bandwidth}
        and {signal to noise ratio} of ordinary {public switched
        telephone network} circuits, or specified in ways which allow
        transport of suitably encoded digital signals at faster rates.

        In some cases, lines may be physical wires between the
        communicating parties.  Over longer distances, it is common
        for the connection to be virtual, which means that although
        the two users can communicate only with each other, their
        signals and others are multiplexed, amplified, switched,
        scrambled, demultiplexed and so on in complex ways between the
        end points.

        This contrasts with a {dial-up} connection which is only
        opened when one end requires it.

        (1996-08-10)

deductive database

        <database> A combination of a conventional {database}
        containing {fact}s, a {knowledge base} containing {rule}s, and
        an {inference engine} which allows the derivation of
        {information} implied by the facts and rules.

        Commonly, the knowledge base is expressed in a subset of
        {first-order logic} and either a {SLDNF} or {Datalog}
        inference engine is used.

        (1995-04-27)

deductive tableau

        <tool> A theorem proof system consisting of a table whose rows
        contain assertions or goals.  Variables in assertions are
        implicitly universally quantified and variables in goals are
        implicitly existentially quantified.  The declarative meaning
        of a tableau is that if every instance of every assertion is
        true then some instance of at least one of the goals is true.

        (1994-12-07)

Deep Blue

        <computer> A super computer developed by researchers at {IBM}
        to explore the use of {parallel processing} to solve complex
        computing problems.  It is known as the first computer to beat
        the current chess World Grand Master.

        Deep Blue started it's life as a PhD project at {Carnegie
        Mellon University} by PhD students Feng-hsiung Hsu and Murray
        Campbell.  Chiptest, as it was known then, consisted of a
        custom designed chip hosted in a {Sun} 3/160 computer.

        The project moved over to IBM in 1989 when Hsu and Campbell
        joined IBM.  {Deep Thought}, as it was known by then, played
        for the first time against Garry Kasparov in the same year.
        The game of two matches was easily won by Kasparov.

        The next match against Kasparov took place in February 1996.
        By then the machine was again renamed, at that time it was
        known as Deep Blue.  It was also heavily re-engineered: it was
        by then running on a 32-node {RS/6000} cluster, each
        containing 8 custom designed chips.  Alas, Kasparov won again.

        The breakthrough finally happened in February 1997: with both
        the algorithm and the raw speed significantly improved, Deep
        Blue beat Kasparov 3.5:2.5.

        {HOME (http://www.chess.ibm.com)}.

        (1997-06-16)

deep hack mode

        See {hack mode}.

deep magic

        [possibly from C. S. Lewis's "Narnia" books] An awesomely
        arcane technique central to a program or system, especially
        one neither generally published nor available to hackers at
        large (compare {black art}); one that could only have been
        composed by a true {wizard}.  Compiler optimisation techniques
        and many aspects of {OS} design used to be {deep magic}; many
        techniques in cryptography, signal processing, graphics, and
        AI still are.  Compare {heavy wizardry}.  Especially found in
        comments of the form "Deep magic begins here.".  Compare
        {voodoo programming}.

deep space

        1. The notional location of any program that has gone {off the
        trolley}.  Especially used of programs that just sit there
        silently grinding long after either failure or some output is
        expected.  "Uh oh.  I should have had a prompt ten seconds
        ago.  The program's in deep space somewhere." Compare {buzz},
        {catatonic}, {hyperspace}.

        2. The metaphorical location of a human so dazed and/or
        confused or caught up in some esoteric form of {bogosity} that
        he or she no longer responds coherently to normal
        communication.

de facto standard

        A widespread consensus on a particular product or {protocol}
        which has not been ratified by any official {standard}s body,
        such as {ISO}, but which nevertheless has a large market
        share.

        The archetypal example of a de facto standard is the {IBM PC}
        which, despite is many glaring technical deficiencies, has
        gained such a large share of the {personal computer} market
        that it is now popular simply because it is popular and
        therefore enjoys fierce competition in pricing and software
        development.

        (1994-10-27)

default route

        <networking> A {routing table} entry which is used to direct
        {packets} addressed to {hosts} or {networks} not explicitly
        listed in the routing table.

        (1996-05-13)

defect

        {bug}

defect analysis

        <programming> Using defects as data for continuous quality
        improvement.  Defect analysis generally seeks to classify
        defects into categories and identify possible causes in order
        to direct process improvement efforts.

        (1996-05-13)

defect density

        <programming> The ratio of the number of {defects} to program
        length.

        (1996-05-13)

defenestration

        <humour> (From the traditional Czechoslovakian method of
        assassinating prime ministers, via SF fandom) 1. Proper karmic
        retribution for an incorrigible punster.  "Oh, ghod, that was
        *awful*!"  "Quick!  Defenestrate him!"

        2. The act of exiting a window system in order to get better
        response time from a full-screen program.  This comes from the
        dictionary meaning of "defenestrate", which is to throw
        something out a window.

        3. The act of discarding something under the assumption that
        it will improve matters.  "I don't have any disk space left."
        "Well, why don't you defenestrate that 100 megs worth of old
        core dumps?"

        (1996-05-13)

Defense Advanced Research Project Agency

        {Defense Advanced Research Projects Agency}

Defense Advanced Research Projects Agency

        <body> (DARPA, ARPA) An agency of the US Department of Defense
        responsible for the development of new technology for use by
        the military.  DARPA was established in 1958 in response to
        the Soviet launching of Sputnik, with the mission of keeping
        the US's military technology ahead of its enemies.  DARPA is
        independent from other more conventional military R&D and
        reports directly to senior DoD management.  DARPA has around
        240 personnel (about 140 technical) directly managing a $2
        billion budget.  These figures are "on average" since DARPA
        focusses on short (two to four-year) projects run by small,
        purpose-built teams.

        ARPA was its original name, then it was renamed DARPA (for
        Defense) in 1972, then back to ARPA [When?], and then,
        incredibly, back to DARPA again on 1996-03-11!

        ARPA was responsible for funding development of {ARPANET}
        (which grew into the {Internet}), as well as the {Berkeley}
        version of {Unix} and {TCP/IP}.

        {Home (http://www.darpa.mil/)}.

        {History (http://foldoc.doc.ic.ac.uk/pub/darpa)}.

        (1999-07-17)

Defense Communications Agency

        (DCA) Now called Defense Information Systems Agency (DISA).

Defense Data Network

        (DDN) A global communications network serving the US
        Department of Defense.  Composed of {MILNET}, other portions
        of the {Internet}, and classified networks which are not part
        of the {Internet}.  The DDN is used to connect military
        installations and is managed by the {Defense Information
        Systems Agency}.

        (1994-12-01)

Defense Data Network Network Information Center

        (DDN NIC or just "The NIC") The {DDN} {NIC}'s primary
        responsibility is the assignment of {Internet address}es and
        {Autonomous System number}s, the administration of the root
        domain, and providing information and support services to the
        {DDN}.  It is also a primary repository for {RFC}s.

        See also {Internet Registry}.

        (1994-12-07)

Defense Information Systems Agency

        (DISA) Formerly called the Defense Communications Agency
        (DCA), this is the government agency responsible for managing
        the {Defense Data Network} (DDN) portion of the {Internet},
        including the {MILNET}.  Currently, DISA administers the
        {DDN}, and supports the user assistance services of the DDN
        {NIC}.

        {Home (http://www.disa.mil/)}

        (1994-12-01)

Defense Trade Regulations

        <legal> The U.S. law governening munitions export and defense
        technology (F-16s, TOW missiles and {cryptology}).  According
        to the U.S. (and Canada) cryptography is a munition and people
        who export it can be charged as though they were exporting
        bombs or state secrets.  People have been.

        See also {EFF}.

        (1995-06-19)

deferral

        Waiting for quiet on the {Ethernet}.

definite clause

        {Horn clause}

definite sentence

        A collection of {definite clause}s.

definitional constraint programming

        <language> (DCP) A declarative, programming paradigm which
        integrates {concurrent constraint programming}, {constraint
        logic programming} and {functional programming}.  In this
        setting a concurrent constraint language becomes a
        coordination system that organises the concurrent interaction
        of parallel functional computations.  The language is also a
        generalisation of parallel {functional programming} languages,
        such as {Id}, where {constraint}s and constraint abstractions
        are reused to define new constraints, as the means of
        programming logical variables for parallel coordination.

        {Goffin} is a DCP language.

        (1995-03-28)

deflate

        <file format, compression> A {compression} {standard} derived
        from {LZ77}; it is reportedly used in {zip}, {gzip}, {PKZIP},
        and {png}, among others.

        Unlike {LZW}, deflate compression does not use patented
        compression {algorithms}.

        Used as a verb to mean to compress (not decompress!) a file
        which has been compressed using deflate compression.  The
        opposite, {inflate}, means to decompress data which has been
        deflated.

        Deflate is described in {RFC 1951}.

        (1997-06-21)

deflate compression

        {deflate}

deflate/inflate compression

        {deflate}

deforestation

        <programming> A technique invented by {Phil Wadler} for
        eliminating intermediate data structures built and passed
        between composed functions in {function languages}.

        (1997-06-21)

defrag

        {defragment}

defragment

        <tool, file system> /dee-frag(-ment)'/ (Or "defrag") To
        coalesce files and free space on a {file system}.

        As modern file systems are used and files are deleted and
        created, the total free space becomes split into smaller
        non-contiguous blocks (composed of "{clusters}" or "{sectors}"
        or some other unit of allocation).  Eventually new files being
        created, and old files being extended, cannot be stored each
        in a single contiguous block but become scattered across the
        file system.  This degrades performance as multiple {seek}
        operations are required to access a single fragmented file.

        Defragmenting consolidates each existing file and the free
        space into a continuous group of sectors.  Access speed will
        be improved due to reduced seeking.

        The rate of fragmentation depends on the {algorithm} used to
        allocate space and the number and position of free sectors.  A
        nearly-full file system will fragment more quickly.

        {MSDOS} and {Microsoft Windows} use the simplest algorithm to
        allocate free clusters and so fragmentaton occurs quickly.  A
        disk should be defragmented before fragmentation reaches 10%.

        (1997-08-29)

defunct process

        {zombie process}

degree

        The degree (or valency) of a node in a graph is the number of
        edges joined to it.

degrees of freedom

        <robotics> The number of independent parameters required to
        specify the position and orientation of an object.  Often used
        to classify {robot} arms.  For example, an arm with six
        degrees of freedom could reach any position close enough and
        could orient it's end effector (grip or tool etc.) at any
        angle about the three perpendicular axes.

dehose

        /dee-hohz/ To clear a {hosed} condition.

DEK

        {Data Encryption Key}

Delaunay triangulation

        <mathematics, graphics> (After B. Delaunay) For a {set} S of
        points in the {Euclidean plane}, the unique {triangulation}
        DT(S) of S such that no point in S is inside the circumcircle
        of any triangle in DT(S).  DT(S) is the dual of the {voronoi
        diagram} of S.

delayed control-transfer

        A technique used on the {SPARC} which attempts to reduce the
        effect of {pipeline break}s by executing the instruction after
        a branch instruction (the "delay instruction" in the "delay
        slot").  If there is no useful instruction which can be placed
        in the delay slot then the "annul bit" on the control-transfer
        instruction can be set, preventing execution of the delay
        instruction (unless the control-transfer is conditional and is
        taken).

        If the delay instruction is also a control-transfer
        instruction then it gets more complicated.  Both
        control-transfer instructions are executed (but not the
        following instruction) and, assuming they are both taken,
        control is transferred briefly to the destination of the first
        and then immediately to the destination of the second.

delay instruction

        The instruction in a {delay slot} in a program for a processor
        which uses {delayed control-transfer}.

delay slot

        The instruction location following a control-transfer
        instruction for a processor which uses {delayed
        control-transfer}.

delete

        1. <operating system> (Or "erase") To make a file
        inaccessible.

        Usually this operation only deletes information from the
        tables the {file system} uses to locate named files; the
        file's contents still exist on {disk} and can sometimes be
        recovered by scanning the whole disk for strings which are
        known to have been in the file.  Files created subsequently on
        the same disk are quite likely to reuse the same blocks and
        thus overwrite the deleted file's data permanently.

        2. <character> The {control character} with {ASCII} code 127.
        Usually entering this character from the keyboard deletes the
        last character typed from the {input buffer}.  Sadly there is
        great confusion between {operating systems} and keyboard
        manufacturers as to whether this function should be assigned
        to the delete or {backspace} key/character.

        The choice of code 127 (binary 1111111) is not arbitrary but
        dates back to the use of {paper tape} for input.  The delete
        key rewound the tape by one character and punched out all
        seven holes, thus obliterating whatever character was there
        before.  The tape reading software ignored any delete
        characters in the input.

        (1996-12-01)

delimiter

        <character> A {character} or {string} used to separate, or
        mark the start and end of, items of data in, e.g., a
        {database}, {source code} or {text file}.

        (1997-12-23)

delint

        /dee-lint/ To modify code to remove problems detected when
        {lint}ing.  Confusingly, this process is also referred to as
        "linting" code.

Delirium

        An embedding coordinate language for parallel programming,
        implemented on {Sequent Symmetry}, {Cray}, {BBN Butterfly}.

        ["Parallel Programming with Coordination Structures", S. Lucco
        et al, 18th POPL, pp.197-208 (1991)].

Delivered Source Instruction

        <programming, unit> (DSI) One line of source code (LOC)
        developed by a project.

        DSI is the primary input to many tools for estimating software
        cost.  The term "delivered" is generally meant to exclude
        non-delivered support software such as test drivers.  However,
        if these are developed with the same care as delivered
        software, with their own reviews, test plans, documentation,
        etc., then they should be counted.  The "source instructions"
        include all program instructions created by project personnel
        and processed into {machine code} by some combination of
        preprocessors, compilers, and assemblers.  It excludes
        comments and unmodified utility software.  It includes {job
        control language}, format statements, and data declarations.

        (1996-05-29)

Dell Computer Corporation

        <company> One of the biggest US manufacturers of {IBM PC}
        compatibles.

        "From notebooks to networks", their slogan says.

        {Home (http://www.us.dell.com)}.

        (1996-05-29)

Delphi

        1. <company, communications> A US {Internet service provider}.

        [Addresses?]

        (1995-04-06)

        2. <language> {Borland}'s {Object Oriented Pascal} (OOPascal)
        {Rapid Application Development} package for {Microsoft
        Windows}.  Delphi combines visual, component-based design with
        an optimising {native code compiler} and scalable database
        access.

        (1996-05-27)

Delphi Technique

        <programming, tool> A group forecasting technique, generally
        used for future events such as technological developments,
        that uses estimates from experts and feedback summaries of
        these estimates for additional estimates by these experts
        until reasonable consensus occurs.  It has been used in
        various software cost-estimating activities, including
        estimation of factors influencing software costs.

        (1996-05-29)

Delta

        1. An expression-based language by J.C. Cleaveland, 1978.

        2. A string-processing language with single-character
        commands.  Tandem.

        3. Language for system specification of simulation execution.
        "System Description and the DELTA Language", E. Holback-Hansen
        et al, DELTA Proj Rep 4, Norweg Comput Ctr, Feb 1977.

delta

        1. A quantitative change, especially a small or incremental
        one (this use is general in physics and engineering).  "I just
        doubled the speed of my program!"  "What was the delta on
        program size?"  "About 30 percent."  (He doubled the speed of
        his program, but increased its size by only 30 percent.)

        2. [Unix] A {diff}, especially a {diff} stored under the set
        of version-control tools called SCCS (Source Code Control
        System) or RCS (Revision Control System).  See {change
        management}.

        3.  A small quantity, but not as small as {epsilon}.  The
        jargon usage of {delta} and {epsilon} stems from the
        traditional use of these letters in mathematics for very small
        numerical quantities, particularly in "epsilon-delta" proofs
        in limit theory (as in the differential calculus).  The term
        {delta} is often used, once {epsilon} has been mentioned, to
        mean a quantity that is slightly bigger than {epsilon} but
        still very small.  "The cost isn't epsilon, but it's delta"
        means that the cost isn't totally negligible, but it is
        nevertheless very small.  Common constructions include "within
        delta of ---", "within epsilon of ---": that is, "close to"
        and "even closer to".

Delta-4

        Definition and Design of an open Dependable Distributed system
        architecture.  An Esprit project investigating the achievement
        of dependability in open distributed systems, including
        real-time systems.

delta conversion

        {delta reduction}

Delta-Prolog

        A {Prolog} extension with {AND-parallelism}, {don't-know
        nondeterminism} and interprocess communication using
        {synchronous event goal}s and {distributed backtracking}.

        ["Delta-Prolog: A Distributed Logic Programming Language",
        L.M. Pereira et al, Intl Conf 5th Gen Comp Sys, Nov 1984].

delta reduction

        <theory> In {lambda-calculus} extended with constants, delta
        reduction replaces a function applied to the required number
        of arguments (a {redex}) by a result.  E.g. plus 2 3 --> 5.
        In contrast with {beta reduction} (the only kind of reduction
        in the {pure lambda-calculus}) the result is not formed simply
        by textual substitution of arguments into the body of a
        function.  Instead, a delta redex is matched against the left
        hand side of all delta rules and is replaced by the right hand
        side of the (first) matching rule.  There is notionally one
        delta rule for each possible combination of function and
        arguments.  Where this implies an infinite number of rules,
        the result is usually defined by reference to some external
        system such as mathematical addition or the hardware
        operations of some computer.  For other types, all rules can
        be given explicitly, for example {Boolean} negation:

                not True  = False
                not False = True

        (1997-02-20)

DELTASE

        A distributed processing environment concerned with
        fault-tolerant and process-control applications from the
        Esprit Delta-4 project.

demand driven

        A demand driven architecture/language performs computations
        when the result is required by some other computation.
        E.g. {Imperial College}'s {ALICE} running {HOPE}.

        See also {data flow}, {lazy evaluation}, {reduction}.

        (1995-02-16)

demand paged

        {demand paging}

demand paging

        <memory management> A kind of {virtual memory} where a {page}
        of memory will be {paged in} if an attempt is made to access
        it and it is not already present in main memory.  This
        normally involves a {memory management unit} which looks up
        the {virtual address} in a {page map} to see if it is paged
        in.  If it is not then the {operating system} will page it in,
        update the page map and restart the failed access.  This
        implies that the processor must be able to recover from and
        restart a failed memory access or must be suspended while some
        other mechanism is used to perform the paging.

        Paging in a page may first require some other page to be moved
        from main memory to disk ("paged out") to make room.  If this
        page has not been modified since it was paged in, it can
        simply be reused without writing it back to disk.  This is
        determined from the "modified" or "dirty" flag bit in the
        {page map}.  A {replacement algorithm} or policy is used to
        select the page to be paged out, often this is the {least
        recently used} (LRU) {algorithm}.

        {Prepaging} is generally more efficient than demand paging.

        (1998-04-24)

DeMarco

        Tom DeMarco proposed a form of {structured analysis}.

        (1995-02-16)

DeMarco/Yourdon

        {Yourdon/Demarco}

demented

        Yet another term of disgust used to describe a program.  The
        connotation in this case is that the program works as
        designed, but the design is bad.  Said, for example, of a
        program that generates large numbers of meaningless error
        messages, implying that it is on the brink of imminent
        collapse.

        (1994-12-07)

Demeter

        A {CASE} tool developed mainly by Karl Lieberherr.

        ["Contributions to Teaching Object-Oriented Design and
        Programming" Aug/Sep 1988 issue of JOOP, OOPSLA '89
        Proceedings].

        (1994-12-07)

demigod

        <person> A hacker with years of experience, a national
        reputation, and a major role in the development of at least
        one design, tool, or game used by or known to more than half
        of the hacker community.  To qualify as a genuine demigod, the
        person must recognisably identify with the hacker community
        and have helped shape it.  Major demigods include {Ken
        Thompson} and {Dennis Ritchie} (co-inventors of {Unix} and
        {C}) and {Richard Stallman} (inventor of {EMACS}).  In their
        hearts of hearts, most hackers dream of someday becoming
        demigods themselves, and more than one major software project
        has been driven to completion by the author's veiled hopes of
        apotheosis.

        See also {net.god}, {true-hacker}.

        (1994-10-27)

De-Militarised Zone

        <networking> (DMZ) (From the military term for an area between
        two opponents where fighting is prevented) DMZ {Ethernets}
        connect networks and computers controlled by different bodies.
        They may be external or internal.  External DMZ Ethernets link
        regional networks with {routers} to internal networks.
        Internal DMZ Ethernets link local nodes with routers to the
        regional networks.

        Compare {red zone}.

        (1995-02-23)

demo

        /de'moh/ 1. A demonstration of a product, often of an early
        version or prototype.  A demo is a far more effective way of
        inducing bugs to manifest themselves than any number of {test}
        runs, especially when important people are watching.

        2. {demo version}.

        3. A program written to demonstrate the programmer's coding
        ability and/or the power of the computer it runs on.  Such
        demos are nearly always written in {machine code} and
        traditionally feature scrolling text about the author, his
        friends, his code and anything else he fancies and animated
        graphics.

        (1994-11-04)

demodulate

        {demodulation}

demodulation

        <communications> To recover the {signal} from the {carrier}.
        For example, in a radio broadcast using {amplitude modulation}
        the audio signal is transmitted as the mean amplitude of a
        radio-frequency carrier so demodulation requires a circuit
        which measures the amplitude and filters out the carrier.
        There are many other kinds of {modulation} and corresponding
        demodulation.

        (1998-07-29)

demo mode

        ({Sun}) 1. The state of being {heads down} in order to finish
        code in time for a {demo}, usually due yesterday.

        2. <games> (Or "attract mode") A mode in which video games sit
        by themselves running through a portion of the game.  Some
        serious {app}s have a demo mode they use as a screen saver, or
        may go through a demo mode on startup (for example, the
        {Microsoft Windows} opening screen - which lets you impress
        your neighbors without actually having to put up with
        {Microsloth Windows}).

        (1995-02-22)

demon

        1. <operating system> (Often used equivalently to {daemon},
        especially in the {Unix} world, where the latter spelling and
        pronunciation is considered mildly archaic).  A program or
        part of a program which is not invoked explicitly, but that
        lies dormant waiting for some condition(s) to occur.

        At {MIT} they use "demon" for part of a program and "daemon"
        for an {operating system} process.

        Demons (parts of programs) are particularly common in {AI}
        programs.  For example, a {knowledge}-manipulation program
        might implement {inference rules} as demons.  Whenever a new
        piece of knowledge was added, various demons would activate
        (which demons depends on the particular piece of data) and
        would create additional pieces of knowledge by applying their
        respective inference rules to the original piece.  These new
        pieces could in turn activate more demons as the inferences
        filtered down through chains of logic.  Meanwhile, the main
        program could continue with whatever its primary task was.
        This is similar to the {triggers} used in {relational
        databases}.

        The use of this term may derive from "Maxwell's Demons" -
        minute beings which can reverse the normal flow of heat from a
        hot body to a cold body by only allowing fast moving molecules
        to go from the cold body to the hot one and slow molecules
        from hot to cold.  The solution to this apparent thermodynamic
        paradox is that the demons would require an external supply of
        energy to do their work and it is only in the absence of such
        a supply that heat must necessarily flow from hot to cold.

        Walt Bunch believes the term comes from the demons in Oliver
        Selfridge's paper "Pandemonium", MIT 1958, which was named
        after the capital of Hell in Milton's "Paradise Lost".
        Selfridge likened neural cells firing in response to input
        patterns to the chaos of millions of demons shrieking in
        Pandemonium.

        2. <company> {Demon Internet} Ltd.

        3. A {program generator} for {differential equation} problems.

        [N.W. Bennett, Australian AEC Research Establishment,
        AAEC/E142, Aug 1965].

        (1998-09-04)

Demon Internet Ltd.

        <company> One of the first company to provide public
        {Internet} access in the UK.

        The staff of Demon Systems Ltd., an established software
        house, started Demon Internet on 1992-06-01 and it was the
        first system in the United Kingdom to offer low cost full
        {Internet} access.  It was started with the support of about
        100 founder members who discussed the idea on {Compulink
        Information Exchange}, and were brave enough to pay a year's
        subscription in advance.  They aimed to have 200 members in
        the first year to cover costs, ignoring any time spent.  After
        about two weeks they realised they needed nearer 400.  By
        November 1993 they had over 2000 subscribers and by August
        1994 they had about 11000 with 20% per month growth.  All
        revenues have been reinvested in resources and expansion of
        service.

        Demon link to {Sprintlink} in the United States making them
        totally independent.  They peer with {EUNet} and {PIPEX} to
        ensure good connectivity in Great Britain as well as having
        links to the {JANET}/{JIPS} UK academic network.  A direct
        line into the {Department of Computing, Imperial College,
        London (http://sunsite.doc.ic.ac.uk)} from their Central
        London {Point of Presence} (PoP) (styx.demon.co.uk) gives
        access to the biggest {FTP} and {Archie} site in Europe.

        Demon provide local call access to a large proportion of the
        UK.  The central London {PoP} provides {leased line}
        connections at a cheaper rate for those customers in the
        central 0171 area.  Further lines and {PoP}s are being added
        continuously.

        Subscribers get allocated an {Internet Address} and can choose
        a {hostname} within the demon.co.uk {domain}.  They can have
        any number of e-mail address at that host.

        In October 1994 Demon confirmed a large contract with the
        major telecommunications provider {Energis}.  They will supply
        guaranteed bandwidth to Demon's 10Mb/s {backbone} from several
        cities and towns.  Several {PoP}s will be phased out and
        replaced with others during 1995.

        E-mail: <internet@demon.net>.

        {(ftp://ftp.demon.co.uk/)}

        {Home (http://www.demon.co.uk/)}.

        {Usenet} newsgroup: {news:demon.announce}.

        Telephone: +44 (181) 349 0063.

        Address: Demon Internet Ltd., 42 Hendon Lane, Finchley, London
        N3 1TT, UK.

        (1994-11-08)

DeMorgan's theorem

        <logic> A logical {theorem} which states that the {complement}
        of a {conjunction} is the {disjunction} of the complements or
        vice versa.  In symbols:

                not (x and y) = (not x) or (not y)
                not (x or y)  = (not x) and (not y)

        E.g. if it is not the case that I am tall and thin then I am
        either short or fat (or both).  The theorem can be extended to
        combinations of more than two terms in the obvious way.

        The same laws also apply to sets, replacing logical complement
        with set complement, conjunction ("and") with set
        intersection, and disjunction ("or") with set union.

        A ({C}) programmer might use this to re-write

                if (!foo && !bar) ...
        as
                if (!(foo || bar)) ...

        thus saving one operator application (though an {optimising
        compiler} should do the same, leaving the programmer free to
        use whichever form seemed clearest).

        (1995-12-14)

demo version

        1. An early, barely-functional version of a program which
        can be used for demonstration purposes as long as the operator
        uses *exactly* the right commands and skirts its numerous
        bugs, deficiencies, and unimplemented portions.

        2. A special version of a finished program (frequently with
        some features crippled) which is distributed at little or no
        cost to the user for enticement purposes.  See {crippleware}.

        (1994-11-04)

Denis Howe

        <person> Denis B. Howe.  Editor of the {Free On-line
        Dictionary of Computing}.

        {Curriculum vitae (http://foldoc.doc.ic.ac.uk/denis-cv.html)}

        E-mail: Denis Howe <dbh@doc.ic.ac.uk>.

        Telephone: +44 (171) 606 7080 x8161.

        (1995-12-13)

Dennis Ritchie

        Dennis M. Ritchie, co-author of the {Unix} {operating system},
        inventor of the {C} programming language and {demigod}.

        See also {K&R}, {Core War}, {If you want X, you know where to
        find it}.

denotational semantics

        <theory> A technique for describing the meaning of programs in
        terms of mathematical {functions} on programs and program
        components.  Programs are translated into functions about
        which properties can be proved using the standard mathematical
        theory of functions, and especially {domain theory}.

        Compare {axiomatic semantics}, {operational semantics},
        {standard semantics}.

        (1996-08-21)

Denotational Semantics Language

        <specification, language> (DSL) The {specification language}
        used by the {SIS} {compiler generator}.

        ["SIS - Semantics Implementation System", P.D. Mosses, TR
        DAIMI MD-30, Aarhus U, Denmark].

        (1996-10-13)

Department of Defense

        <body> (DoD) The US military body responsible for sponsoring
        many software engineering standards.

        (1996-05-29)

Department of Defense Network

        <networking> (DDN) A military subset of the {Internet}, which
        includes {ARPAnet}.

        (1994-12-07)

depeditate

        /dee-ped'*-tayt/ [by (faulty) analogy with "decapitate"]
        Humorously, to cut off the feet of.  When one is using some
        computer-aided typesetting tools, careless placement of text
        blocks within a page or above a rule can result in chopped-off
        letter descenders.  Such letters are said to have been
        depeditated.

dependability

        See {software reliability}.

dependable software

        See {software reliability}.

deprecated

        Said of a program or feature that is considered obsolescent
        and in the process of being phased out, usually in favour of a
        specified replacement.  Deprecated features can,
        unfortunately, linger on for many years.  This term appears
        with distressing frequency in standards documents when the
        committees writing the documents realise that large amounts of
        extant (and presumably happily working) code depend on the
        feature(s) that have passed out of favour.

        See also {dusty deck}.

        (1995-04-19)

depth-first search

        <algorithm> A graph search {algorithm} which extends the
        current path as far as possible before {backtracking} to the
        last {choice point} and trying the next alternative path.
        Depth-first search may fail to find a solution if it enters a
        cycle in the graph.  This can be avoided if we never extend a
        path to a node which it already contains.

        Opposite of {breadth first search}.  See also {iterative
        deepening}.

        (1995-04-19)

DER

        {Distinguished Encoding Rules}

dereference

        <programming> To access the thing to which a pointer points,
        i.e. to follow the pointer.  E.g. in {C}, the declarations

                int i;
                int *p = &i;

        declare i as an integer and p as a pointer to integer.  p is
        initialised to point at i ("&i" is the address of i - the
        inverse of "*").  The expression *p dereferences p to yeild i
        as an {lvalue}, i.e. something which can appear either on the
        left of an {assignment} or anywhere an integer expression is
        valid.  Thus

                *p = 17;

        would set i to 17.  *p++ is not the same as i++ however since
        it is parsed as *(p++), i.e. increment p (which would be an
        invalid thing to do if it was pointing to a single int, as in
        this example) then dereference p's old value.

        The {C} operator "->" also dereferences its left hand argument
        which is assumed to point to a {structure} or {union} of which
        the right hand argument is a {member}.

        At first sight the word "dereference" might be thought to mean
        "to cause to stop referring" but its meaning is well
        established in jargon.

        (1998-12-15)

de-rezz

        <jargon> /dee-rez'/ (Or "derez") "de-resolve" via the film
        "Tron".  1. To disappear or dissolve; the image that goes with
        it is of an object breaking up into raster lines and static
        and then dissolving.  Occasionally used of a person who seems
        to have suddenly "fuzzed out" mentally rather than physically.
        Usage: extremely silly, also rare.  This verb was actually
        invented as *fictional* hacker jargon, and adopted in a spirit
        of irony by real hackers years after the fact.

        2. The Macintosh resource decompiler.  On a Macintosh, many
        program structures (including the code itself) are managed in
        small segments of the program file known as "resources"; "Rez"
        and "DeRez" are a pair of utilities for compiling and
        decompiling resource files.  Thus, decompiling a resource is
        "derezzing".  Usage: very common.

derived type

        <programming> A type constructed from {primitive type}s or
        other derived types using a {type constructor function}.  This
        term is usually applied to {procedural language}s such as {C}
        or {Ada}.  C's derived types are the {array}, function,
        pointer, {struct}ure and {union}.

        (1995-02-16)

DES

        {Data Encryption Standard}

descender

        <text> A lowercase letter that extends below the base line,
        such as "g", "j", or "p".  Also used to denote the part of the
        letter extending below the base line.  Compare {ascender}.

        (1998-03-27)

descent function

        If a {recursive} function is of the form

                f x = ... f (d x) ...

        then d is known as the descent function.

Descriptive Top-Level Specification

        (DTLS) A language used in {POSIX} and {TRUSIX}.

        (1994-11-11)

descriptor

        <operating system> An integer, string or other small data
        value which refers to one of several objects allocated to a
        program by the {operating system}, usually the {kernel}.  A
        common example is a {Unix} {file descriptor} which is a small
        integer that identifies an I/O channel.  Another example is a
        reference to an area of memory (e.g. {shared memory}).

        Compare {capability}.

        (1998-02-06)

design

        <process> The approach that engineering (and some other)
        disciplines use to specify how to create or do something.  A
        successful design must satisfies a (perhaps informal)
        {functional specification} (do what it was designed to do);
        conforms to the limitations of the target medium (it is
        possible to implement); meets implicit or explicit
        requirements on performance and resource usage (it is
        efficient enough).

        A design may also have to satisfy restrictions on the design
        process itself, such as its length or cost, or the tools
        available for doing the design.

        In the {software life-cycle}, design follows {requirements
        analysis} and is followed by implementation.

        ["Object-Oriented Analysis and Design with Applications", 2nd
        ed., Grady Booch].

        (1996-12-08)

Design In Real Time

        <programming> (Dirt) A user {interface builder} for the {X
        Window System} by R. Hesketh.

        (1994-12-07)

design pattern

        <programming> A description of an {object-oriented design}
        technique which names, abstracts and identifies aspects of a
        design structure that are useful for creating an
        object-oriented design.  The design pattern identifies
        {classes} and {instances}, their roles, collaborations and
        responsibilities.  Each design pattern focuses on a particular
        object-oriented design problem or issue.  It describes when it
        applies, whether it can be applied in the presence of other
        design constraints, and the consequences and trade-offs of its
        use.

        {Home
        (http://st-www.cs.uiuc.edu/users/patterns/patterns.html)}.

        ["Design Patterns: Elements of Reusable Object-Oriented
        Software", Erich Gamma, Richard Helm, Ralph Johnson, and John
        Vlissides].

        (1997-07-21)

design recovery

        <process> A subtask of {reverse engineering} in which domain
        knowledge, external information, and deduction of fuzzy
        reasoning are added to the observations of the subject system
        to identify meaningful higher level abstractions beyond those
        obtained directly by examining the system itself.

        In other words, design recovery aims to work out what a system
        or component was designed to do rather than just examining its
        subcomponents and their interrelationships.

        (1996-12-08)

Design System language

        J. Gaffney, Evans & Sutherland 1976.  Interpretive FORTH-like
        language for 3d graphics databases.  Earliest forerunner of
        both Interpress and PostScript.  Mentioned in PostScript
        Language Reference Manual, Adobe Systems, A-W 1985.

desk check

        <programming> To {grovel} over hardcopy of {source code},
        mentally simulating the {control flow}; a method of catching
        bugs.  No longer common practice in this age of on-screen
        editing, fast compiles, and sophisticated debuggers - though
        some maintain stoutly that it ought to be.

        Compare {dry run}, {eyeball search}, {vdiff}, {vgrep}.

        (1996-05-13)

desktop database

        {Macintosh file system}

Desktop Management Interface

        <standard, operating system> (DMI) A {specification} from the
        {Desktop Management Task Force} (DMTF) that establishes a
        standard {framework} for managing networked {desktop} systems
        and {servers}, to enable remote manageability and define a
        model for filtering events and describing {interfaces} for
        {remoteability}.

        DMI provides a common path for technical support, IT managers,
        and individual users to access information about all aspects
        of a PC - including processor type, installation date,
        attached printers and other peripherals, power sources, and
        maintenance history.  DMI provides a common format for
        describing PC products to aid vendors, systems integrators,
        and end users in enterprise desktop management.

        {Version} 2.0 was released in April 1996.

        [Reference?]

        (1999-10-07)

Desktop Management Task Force

        <body> (DMTF) The industry consortium that develops, supports,
        and maintains standards for systems management of {PC} systems
        and products, to reduce total cost of ownership.  These
        include the {Desktop Management Interface} (DMI), the
        most-widely used management standard today.

        The DMTF is participating in an industry effort to create a
        standard for management over the {Internet}.  They are
        defining an {object-oriented} common information model (CIM).

        (1999-10-07)

desktop manager

        A {user interface} to system services, usually {icon} and
        {menu} based like the {Macintosh} {Finder}, enabling the user
        to run {application program}s and use a {file system}
        without directly using the command language of the {operating
        system}.

        (1994-12-07)

desktop publishing

        <text, application> (DTP) Using computers to lay out text and
        graphics for printing in magazines, newsletters, brochures,
        etc.  A good DTP system will provide, among other things,
        facilities to fit text into irregular shapes in a variety of
        fonts and sizes.

        {(http://www.cs.purdue.edu/homes/gwp/dtp/dtp.html)}

        [Other features?  Usenet newsgroup?  Software?]

        (1995-01-05)

DESQview

        A system from {Quarterdeck Office Systems} implementing
        {multitasking} under {MS-DOS}.

destructor

        <programming> A {function} provided by a {class} in {C++} and
        some other {object-oriented languages} to delete an object,
        the inverse of a {constructor}.

        (1998-04-28)

DESY

        Deutsches Electronen Synchrotron Laboratory, Hamburg, Germany.

DETAB

        DEcision TABle.

        A {decision table} {COBOL} preprocessor written by A. Chapman
        in 1964.

        Versions: DETAB 65, DETAB X.

        [Sammet 1969, p. 315].

        (1994-12-07)

deterministic

        1. <probability> Describes a system whose time evolution can
        be predicted exactly.

        Contrast {probabilistic}.

        2. <algorithm> Describes an {algorithm} in which the correct
        next step depends only on the current state.  This contrasts
        with an algorithm involving {backtracking} where at each point
        there may be several possible actions and no way to chose
        between them except by trying each one and backtracking if it
        fails.

        (1995-09-22)

deterministic automaton

        <theory> A {finite-state automaton} in which the overall
        course of the computation is completely determined by the
        program, the starting state, and the initial inputs.  The
        class of problems solvable by such automata is the class P
        (see {polynomial-time algorithm}).

        (1996-05-03)

DETOL

        <language> {Directly Executable Test Oriented
        Language}.

        (1995-09-29)

development

        The process of analysis, design, coding and testing software.

Developmental Test and Evaluation

        <programming> (DT&E) Activity which focuses on the
        technological and engineering aspects of a system or piece of
        equipment.

        (1996-05-13)

development environment

        <programming, tool> An integrated suite of {tools} to aid the
        {development} of {software} in a particular {language} or for
        a particular {application}.  Usually, this consists of a
        {compiler} and {editor} and may also include one or more of a
        {debugger}, {profiler}, and {source code} manager.

        See also: {IDE}.

        (1999-08-01) 

device

        {peripheral}

Device Control

        <character> One of the four {ASCII} characters, {DC1}, {DC2},
        {DC3}, and {DC4}, once used to remotely control equipment
        (e.g. a {paper tape} reader) via electromagnetic switches.
        The characters were usually paired, DC1/DC3 turning one device
        on/off, and DC2/DC4 another.

        [Other examples of equipment?]

        (1996-08-20)

Device Control 1

        {Control-Q}

Device Control 2

        <character> (DC2) The {mnemonic} for {ASCII} character 18, one
        of the four {Device Control} characters.

        (1996-06-28)

Device Control 3

        {Control-S}

Device Control 4

        <character> (DC4) The {mnemonic} for {ASCII} character 20, one
        of the four {Device Control} characters.

        (1996-06-28)

device driver

        <operating system> {Software} to control a hardware component
        or {peripheral} device of a computer such as a {magnetic
        disk}, {magnetic tape} or printer.

        A device driver is responsible for accessing the hardware
        {register}s of the device and often includes an {interrupt
        handler} to service interrupts generated by the device.

        Device drivers often form part of the lowest level of the
        {operating system} {kernel}, with which they are linked when
        the kernel is built.  Some more recent systems have loadable
        device drivers which can be installed from files after the
        {operating system} is running.

        (1994-10-27)

device independent bitmap

        <graphics, file format> (DIB) An {image} format in which the
        sequence and depth of {pixels} in the file is not specifically
        related to their layout in any particular device.  This allows
        any device dependent bitmap (DDB) image to be converted to or
        DIB format without loss of information, and this can then
        later be converted to other DDB formats for, e.g., printing or
        display.  Rather than requiring converters from each DDB
        format to all other formats, only converters to and from DIB
        are needed.

        DIB images are normally transferred in {metafiles}, {bmp}
        files, and the {clipboard}.

        Transferring colour bitmaps from one device to another was not
        possible in versions of {Microsoft Windows} earlier than 3.0.
        {Application programs} can build DIB images without any
        interaction with Windows.  If Windows lacks a drawing
        primitive, the application can simulate it directly into the
        DIB instead of using the existing {graphics device interface}
        (GDI) primitives.  Unfortunately, under Windows versions 3.0
        and 3.1, {GDI} cannot perform output operations directly to a
        DIB.

        Conversion between DIB and DDB is performed by the {device
        driver}.  Where the driver does not have this facility, the
        conversion is performed by GDI but only in monochrome.  DIBs
        are slower to use than device dependent bitmaps due to the
        conversions required.

        (1996-09-20)

Devil Book

        <publication> "The Design and Implementation of the {4.3BSD}
        Unix Operating System", by Samuel J. Leffler, Marshall Kirk
        McKusick, Michael J. Karels, and John S. Quarterman
        (Addison-Wesley Publishers, 1989, ISBN 0-201-06196-1).

        The standard reference book on the internals of {BSD} {Unix}.
        So called because the cover has a picture depicting a little
        devil (a visual play on {daemon}) in sneakers, holding a
        pitchfork (referring to one of the characteristic features of
        Unix, the "{fork}(2)" {system call}).

        (1996-12-03)

/dev/null

        /dev-nuhl/ [The Unix null device, used as a {data sink}] A
        notional "black hole" in any information space being
        discussed, used, or referred to.  A controversial posting, for
        example, might end "Kudos to rasputin@kremlin.org, flames to
        /dev/null".  See {bit bucket}.

devo

        /dee'voh/ (In-house jargon at {Symbolics}) A person in a
        development group.  See also {doco} and {mango}.

        (1994-11-04)

DEX

        A cross between {Modula-2} and {C} by W. van Oortmerssen.

        {Amiga version 1.2
        (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff743/TurboDEX.lzh)}.

DFA

        Deterministic Finite-state Automaton.  See {Finite State
        Machine}.

DFC

        A {dataflow} language.

        ["Data Flow Language DFC: Design and Implementation",
        S. Toshio et al, Systems and Computers in Japan, 20(6):1- 10
        (Jun 1989)].

DFD

        {Data Flow Diagram}

DFS

        1. <algorithm> {Depth-First Search}.

        2. <file system> {Distributed File System}.

DFT

        {discrete Fourier transform}

DGL

        1. Data Generation Language.  A tool for generating test data
        for hardware or software systems.

        2. Distributed {GL}.

DG/L

        1. Descriptive Geometry Language.  Early CAD/CAE language,
        used light pen.  "Interactive Graphic Consoles - Environment
        and Software", R.L.  Beckermeyer, Proc FJCC 37 (1970).

        2. Data General ca 1973-1974.  Derivative of ALGOL 60,
        developed from DG's ALGOL-5, used as the systems language
        under {AOS} and {RDOS} for the DG Eclipse family of computers.
        Replaced by PL/I in the early 80's.  Data General manual
        093-000229-01.

DHCP

        {Dynamic Host Configuration Protocol}

Dhrystone

        <benchmark> A short {synthetic benchmark} program by Reinhold
        Weicker <weicker.muc@sni.de>, <weicker.muc@sni-usa.com>,
        intended to be representative of system (integer) programming.
        It is available in {ADA}, {Pascal} and {C}.

        The current version is Dhrystone 2.1.  The author says,
        "Relying on MIPS V1.1 (the result of V1.1) numbers can be
        hazardous to your professional health."

        Due to its small size, the memory system outside the {cache}
        is not tested.  Compilers can too easily optimise for
        Dhrystone.  String operations are somewhat over-represented.

        {Sources (ftp://netlib.att.com:/netlib/benchmark/)} (files
        dhry-ada.Z, dhry-c.Z and dhry-pascal.Z).

        {Results
        (http://performance.netlib.org/performance/html/dhrystone.data.col0.htm
l)}
        and {(ftp://ftp.nosc.mil/pub/aburto/dhry.tbl)}.

        (1994-11-14)

DHSD

        {Duplex High Speed Data}

DHTML

        {Dynamic HTML}

DIALOG

        1. A commercial bibliographic database and retrieval service
        from DIALOG Information Services.

        2. Interactive mathematics using a {graphics tablet} by
        Illinois Inst Tech, 1966.

        ["DIALOG: A Conversational Programming System with a Graphical
        Orientation", S.H. Cameron et al, CACM 10:349-357 (1967).
        Sammet 1969, p.255-258].

dialup

        A temporary, as opposed to dedicated, connection between
        machines established over a telephone line using {modem}s.

DIAMAG

        An interactive extension of {ALGOL}.

        [Sammet 1969, p.195].

diameter

        The diameter of a {graph} is the maximum value of the minimum
        distance between any two nodes.

Diamond

        One of five pedagogical languages based on Markov algorithms,
        used in "Nonpareil, a Machine Level Machine Independent
        Language for the Study of Semantics", B. Higman, ULICS Intl
        Report No ICSI 170, U London (1968).  (cf. Brilliant,
        Nonpareil, Pearl[3], Ruby[2]).

DIANA

        Descriptive Intermediate Attributed Notation for Ada.

        A {de facto standard} intermediate language for {Ada}
        programs, developed by Goos and Wulf at CMU in Jan 1981.
        DIANA is an {attributed tree} representation, with an abstract
        interface defined in {Interface Description Language} (Nestor,
        Lamb and Wulf, CMU, 1981; Snodgrass(?), 1989(?)).  DIANA
        resulted from a merger of {AIDA} and {TCOL.Ada}.

        ["DIANA - An Intermediate Language for Ada", G.T. Goos et al,
        LNCS 161, Springer 1983].

        (1994-11-11)

DIB

        {device independent bitmap}

DIBOL

        Digital Interactive Business Oriented Language.

        DEC, 1970.

        FORTRAN syntax with BCD arithmetic.

        Versions for PDP-8 and RT-11.

        ANSI X3.165-1988.

dickless workstation

        <abuse> Extremely pejorative hackerism for "{diskless
        workstation}".

        (1995-03-28)

Dick Size War

        {penis war}

DICOM

        <medical, standard> (From Digital Imaging and COmmunications
        in Medicine) A {standard} developed by ACR-NEMA (American
        College of Radiology - National Electrical Manufacturer's
        Association) for communications between medical imaging
        devices.  It conforms to the {ISO reference model} for network
        communications and incorporates {object-oriented} design
        concepts.

        (1995-03-29)

Dictionary APL

        {Sharp APL}

dictionary flame

        [{Usenet}] An attempt to sidetrack a debate away from issues
        by insisting on meanings for key terms that presuppose a
        desired conclusion or smuggle in an implicit premise.  A
        common tactic of people who prefer argument over definitions
        to disputes about reality.  Compare {spelling flame}.

Dictionary of Computing

        {Free On-line Dictionary of Computing}

DID

        {Direct Inward Dialing}

diddle

        1. To work with or modify in a not particularly serious
        manner.  "I diddled a copy of {ADVENT} so it didn't
        double-space all the time."  "Let's diddle this piece of code
        and see if the problem goes away."

        See {tweak} and {twiddle}.

        2. The action or result of diddling.

        See also {tweak}, {twiddle}, {frob}.

        (1995-01-31)

die

        1. <jargon> {crash}.  Unlike {crash}, which is used primarily
        of hardware, this verb is used of both hardware and software.

        See also {go flatline}, {casters-up mode}.

        2. <electronics> An unpackaged {integrated circuit}.

        (1996-05-28)

die horribly

        <jargon> The software equivalent of {crash and burn}, and the
        preferred emphatic form of {die}.  "The converter choked on an
        FF in its input and died horribly".

        (1996-05-28)

diff

        /dif/ 1. A change listing, especially giving differences
        between (and additions to) different versions of a piece of
        source code or documentation (the term is often used in the
        plural "diffs").  "Send me your diffs for the Jargon File!"

        Compare {vdiff}.

        2. Specifically, such a listing produced by the diff {Unix}
        command, especially when used as input to the {patch} utility
        (which actually performs the modifications).  This is a common
        method of distributing patches and source updates.

        3. To compare (whether or not by use of automated tools on
        machine-readable files).

        See also {vdiff}, {mod}.

        (1995-02-10)

Difference Engine

        <computer, history> {Charles Babbage}'s design for the first
        automatic mechanical calculator.  The Difference Engine was a
        special purpose device intended for the production of
        mathematical tables.  Babbage started work on the Difference
        Engine in 1823 with funding from the British Government.  Only
        one-seventh of the complete engine, about 2000 parts, was
        built in 1832 by Babbage's engineer, Joseph Clement.  This was
        demonstrated successfully by Babbage and still works
        perfectly.  The engine was never completed and most of the
        12,000 parts manufactured were later melted for scrap.

        It was left to Georg and Edvard Schuetz to construct the first
        working devices to the same design which were successful in
        limited applications.  The Difference Engine No. 2 was finally
        completed in 1991 at the Science Museum, London, UK and is on
        display there.

        The engine used gears to compute cumulative sums in a series
        of {registers}: r[i] := r[i] + r[i+1].  However, the addition
        had the {side effect} of zeroing r[i+1].  Babbage overcame
        this by simultaneously copying r[i+1] to a temporary register
        during the addition and then copying it back to r[i+1] at the
        end of each cycle (each turn of a handle).

        {Difference Engine at the Science Museum
        (http://www.nmsi.ac.uk/on-line/treasure/plan/2ndcomp.htm#babbage)}.

        (1997-09-29)

difference equation

        A relation between consecutive elements of a sequence.  The
        first difference is

                D u(n) = u(n+1) - u(n)

        where u(n) is the nth element of sequence u.  The second
        difference is

                D2 u(n) = D (D u(n))
                        = (u(n+2) - u(n+1)) - (u(n+1) - u(n))
                        = u(n+2) - 2u(n+1) + u(n)

        And so on.  A recurrence relation such as

                u(n+2) + a u(n+1) + b u(n) = 0

        can be converted to a difference equation (in this case, a
        second order linear difference equation):

                D2 u(n) + p D u(n) + q u(n) = 0

        and vice versa.  a, b, p, q are constants.

        (1995-02-10)

differential

        <hardware> {differential line}.

differential driver

        <hardware> An electronic device (commonly an {integrated
        circuit}), containing two amplifiers, used to drive a
        {differential line}.

        (1995-03-14)

differential line

        <hardware> A kind of electrical connection using two wires,
        one of which carries the normal signal (V) and the other
        carries an inverted version the signal (-V).  A differential
        amplifier at the reciever subtracts the inverted signal from
        the normal signal to yeild a signal proportional to V.  This
        subtraction is intended to cancel out any noise induced in the
        wires, on the assmption that the same level of noise will have
        been induced in both wires.  {Twisted pair} wiring is often
        used to try to ensure that this is the case.

        The two wires might be connected at the receiver to separate
        {analogue to digital converters} and the subtraction performed
        digitally.

        The {RS-422} {serial line} {standard} specifies differential
        drivers and recievers, whereas the earlier {RS-232} standard
        does not.

        Opposite: {single ended}.

        (1995-03-08)

Diffie-Hellman

        <cryptography> A {public-key encryption} {key exchange
        algorithm}.

        {FAQ (http://www.rsa.com/rsalabs/faq/html/3-6-1.html)}.

        (1999-03-15)

digerati

        <jargon> (Or "digirati".  By analogy with "literati" - people
        knowledgeable about literature) People knowledgeable about
        computers, "computer literate".

        [Newsweek, March 1995?].

        (1995-05-07)

digest

        A periodical collection of messages which have been posted to
        a {newsgroup} or {mailing list}.  A digest is prepared by a
        {moderator} who selects articles from the group or list,
        formats them and adds a contents list.  The digest is then
        either mailed to an alternative {mailing list} or posted to an
        alternative newsgroup.

        Some {news reader}s and {electronic mail} programs provide
        commands to "undigestify" a digest, i.e. to split it up into
        individual articles which may then be read and saved or
        discarded separately.

Digex

        {Digital Express Group, Inc.}

DigiCash

        <company> A company, started in April 1990, which aims to
        develop and license products to support electronic payment
        methods including {chip card}, software only, and hybrid.

        {Ecash} is their trial form of software-only electronic money.

        {Home (http://www.digicash.com/home.html)}

        (1995-04-10)

Digicom

        {(ftp://ftp.whnet.com/pub/wolfgang)},
        {(ftp://softmodem.whnet.com/pub/wolfgang)},
        {(ftp://ftp.netcom.com/pub/wolfgang)}.
        {(http://ftp.whnet.com/wolfgang/)}.

        [Description?]

digirati

        {digerati}

digit

        An employee of Digital Equipment Corporation.  See also
        {VAX}, {VMS}, {PDP-10}, {TOPS-10}, {DEChead}, {double
        DECkers}, {field circus}.

Digital

        <company> Common abbreviation for {Digital Equipment
        Corporation}.

        (1995-12-18)

digital

        <data> A description of {data} which is stored or transmitted
        as a sequence of discrete symbols from a finite set, most
        commonly this means {binary} data represented using electronic
        or electromagnetic signals.

        The opposite is {analogue}.

        (1998-10-28)

digital audio

        <multimedia, file format> A sequence of discrete samples taken
        from a continuous sound ({audio}) waveform.  Tens of thousands
        of samples are taken each second.  Each sample represents the
        intensity of the sound pressure wave at that instant.  Apart
        from the sampling frequency, the other parameter is the
        digital encoding of each sample including the number of {bit}s
        used.  The encoding may be linear, logarithmic or {mu-law}.

        Digital audio is typically created by taking 16-bit samples
        over a spectrum of 44.1 thousand cycles per second (kHz), this
        means that CD quality sound requires 1.4 million bits of data
        per second.  Digital telephone systems use lower sample rates.

        {Filename extension}: .au ({Unix}), .snd ({MS-DOS}, {MS
        Windows}).

        See also {Audio IFF}, {MP3}, {wav}.

        {Usenet} newsgroups: alt.binaries.sounds.*.

        A {FAQ} on audio file formats is available.  {Part 1
        (ftp://ftp.cwi.nl/pub/audio/AudioFormats.part1)}, {Part 2
        (ftp://ftp.cwi.nl/pub/audio/AudioFormats.part2)}.

        (1999-07-30)

Digital Audio Tape

        <storage, music> (DAT) A format for storing music on magnetic
        tape, developed in the mid-1980s by {Sony} and {Philips}.  As
        digital music was popularized by {compact disc}s, the need for
        a digital recording format for the consumer existed.  The
        problem is that digital music contains over 5 megabytes of
        data per minute before error correction and supplementary
        information.  Before DAT, the only way to record digitally was
        to use a video or a reel-to-reel recorder.

        DAT uses a rotary-head (or "helical scan") format, where the
        read/write head spins diagonally across the tape like a video
        cassette recorder.  Thus the proper name is "R-DAT", where "R"
        for rotary distinguishes it from "S-DAT", a stationary design
        that did not make it out of the laboratories.  Studio
        reel-to-reel decks are able to use stationary heads because
        they can have wider tape and faster tape speeds, but for the
        desired small medium of DAT the rotary-head compromise was
        made despite the potential problems with more moving parts.

        Most DAT recorders appear to be a cross between a typical
        analog cassette deck and a {compact disc} player.  In addition
        to the music, one can record subcode information such as the
        number of the track (so one can jump between songs in a
        certain order) or absolute time (counted from the beginning of
        the tape).  The tape speed is much faster than a regular deck
        (one can rewind 30 minutes of music in 10-25 seconds), though
        not quite as fast as a compact disc player.  DAT decks have
        both analog and digital inputs and outputs.

        DAT tapes have only one recordable side and can be as long 120
        minutes.

        DAT defines the following recording modes with the following
        performance specifications...

           2 channel 48KHz Sample rate, 16-bit linear encoding
           120 min max.
           Frequency Response 2-22KHz (+-0.5dB)
           SN = 93 dB   DR = 93 dB

           2 channel 44.1Khz Sample rate, 16-bit linear encoding
           120 min max
           Frequency Response 2-22KHz (+-0.5dB)
           SN = 93 dB   DR = 93 dB

           2 channel 32KHz Sample Rate, 12-bit non-linear encoding
           240 min max
           Frequency Response 2-14.5KHz (+-0.5dB)
           SN = 92 dB   DR = 92 dB

           4 channel 32KHz (not supported by any deck)

        DAT is also used for recording computer data.  Most computer
        DAT recorders use DDS format which is the same as audio DAT
        but they usually have completely different connectors and it
        is not always possible to read tapes from one system on the
        other.  Computer tapes can be used in audio machines but are
        usually more expensive.  You can record for two minutes on
        each metre of tape.

        (1995-02-09)

digital carrier

        <hardware, communications> A medium which can carry {digital}
        signals; broadly equivalent to the {physical layer} of the
        {OSI} seven layer model of networks.  Carriers can be
        described as {baseband} or {broadband}.  A baseband carrier
        can include direct current (DC), whereas broadband carriers
        are modulated by various methods into frequency bands which do
        not include DC.

        Sometimes a {modem} (modulator/demodulator) or {codec}
        (coder/decoder) combines several channels on one transmission
        path.  The combining of channels is called {multiplexing}, and
        their separation is called demultiplexing, independent of
        whether a modem or codec bank is used.  Modems can be
        associated with {frequency division multiplexing} (FDM) and
        codecs with {time division multiplexing} (TDM) though this
        grouping of concepts is somewhat arbitrary.

        If the medium of a carrier is copper telephone wire, the
        circuit may be called {T1}, {T3}, etc. as these designations
        originally described such.

        T1 carriers used a restored polar line coding scheme which
        allowed a baseband signal to be transported as broadband and
        restored to baseband at the receiver.  T1 is not used in this
        sense today, and indeed it is often confused with the {DS1}
        signal carried.

        (1996-03-31)

digital dashboard

        <software> A personalised desktop {portal} that focuses on
        {business intelligence} and {knowledge management}.

        {Microsoft}'s version has a launch screen including stock
        quotes, voice mail and e-mail messages, a calendar, a weather
        forecast, traffic information, access to news feeds, customer
        and sales data, and Internet conferences.  A digital dashboard
        might previously have been thought of as an executive
        information system.  In the future, digital dashboards could
        be available on {personal digital assistants} and cellular
        phones.

        ["Gates pitches 'digital dashboards' to bevy of top CEOs", Bob
        Trott, pub. InfoWorld Electric, 1999-05-19].

        (1999-09-14)

Digital Data Service

        <communications> (DDS) The class of service offered by
        telecommunications companies for transmitting digital data as
        opposed to voice.

        (1995-02-28)

Digital Enhanced Cordless Telecommunications

        <communications, standard> (DECT, formerly ".. European ..) A
        {standard} developed by the {European Telecommunication
        Standard Institute} from 1988, governing pan-European {digital
        mobile telephony}.  DECT covers wireless {PBX}s, {telepoint},
        residential {cordless telephones}, wireless access to the
        {public switched telephone network}, Closed User Groups
        (CUGs), {Local Area Networks}, and wireless {local loop}.

        DECT defines only the radio connection between two points and
        can be used for remote access to public and private networks.
        Other mobility standards, such as {GSM}, {TACS}, and {DCS
        1800} add the necessary switching, signaling, and management
        functions that are not specified by DECT.

        The DECT Common Interface radio standard is a {multicarrier}
        {time division multiple access}, {time division duplex}
        (MC-TDMA-TDD) radio transmission technique using ten {radio
        frequency} channels from 1880 to 1930 MHz, each divided into
        24 time slots of 10ms, and twelve {full duplex} accesses per
        {carrier}, for a total of 120 possible combinations.

        A DECT base station (an RFP, Radio Fixed Part) can transmit
        all 12 possible accesses (time slots) simultaneously by using
        different frequencies or using only one frequency.  All
        signaling information is transmitted from the RFP within a
        multiframe (16 frames).  {Voice} signals are digitally encoded
        into a 32 kbit/s signal using {Adaptive Differential Pulse
        Code Modulation}.

        The {handover} process is requested autonomously by the
        portable terminal and the Radio Fixed Parts, according to the
        carrier signal levels.  A "Generic Access Profile" defines a
        minimum set of requirements for the support of speech
        telephony.

        {(http://www.italtel.it/catalog/data/inglese/capc_5.htm)}.

        (1999-04-13)

digital envelope

        <cryptography>

        {(http://www.rsa.com/rsalabs/faq/html/2-2-4.html)}.

        [Summary?]

        (1999-03-16)

Digital Equipment Computer Users Society

        (DECUS) A world wide organisation of information technology
        professionals interested in the products, services, and
        technologies of {Digital Equipment Corporation} and related
        vendors.  Membership in the US chapter is free and provides
        participants with the means to enhance their professional
        development, forums for technical training, mechanisms for
        obtaining up-to-date information, advocacy programs, and
        opportunities for informal disclosure and interaction with
        professional colleagues of like interest.

        Address: 334 South Street, SHR3-1/T25, Shrewsbury, MA
        01545-4195, USA.

        Telephone: +1 (800) DECUS55.

        (1995-02-08)

Digital Equipment Corporation

        <company> (DEC) A computer manufacturer and software vendor.

        Before the {killer micro} revolution of the late 1980s,
        hackerdom was closely symbiotic with DEC's pioneering
        {time-sharing} machines.  The first of the group of hacker
        cultures nucleated around the {PDP-1} (see {TMRC}).
        Subsequently, the {PDP-6}, {PDP-10}, {PDP-20}, {PDP-11} and
        {VAX} were all foci of large and important hackerdoms, and DEC
        machines long dominated the {ARPANET} and {Internet} machine
        population.

        DEC was the technological leader of the minicomputer era
        (roughly 1967 to 1987), but its failure to embrace
        {microcomputers} and {Unix} early cost it heavily in profits
        and prestige after {silicon} got cheap.  However, the
        {microprocessor} design tradition owes a heavy debt to the
        {PDP-11} {instruction set}, and every one of the major
        general-purpose microcomputer {operating systems} so far
        (CP/M, {MS-DOS}, {Unix}, {OS/2}) were either genetically
        descended from a DEC OS, or incubated on DEC {hardware} or
        both.  Accordingly, DEC is still regarded with a certain wry
        affection even among many hackers too young to have grown up
        on DEC machines.  The contrast with {IBM} is instructive.

        Quarterly sales $3923M, profits -$1746M (Aug 1994).

        DEC was taken over by {Compaq Computer Corporation} in 1998.

        {Home (http://www.digital.com/.html)}.

        (1999-06-03)

Digital Equipment Corporation Network

        <networking> (DECNET) {Ethernet} software used on {DEC}
        computers such as the {Vax}.

        [More details?]

        (1999-06-03)

Digital European Cordless Telecommunications

        {Digital Enhanced Cordless Telecommunications}

Digital Express Group, Inc.

        (Digex) The largest {Internet provider} in the Washington
        metropolitan area with {POP}s in Maryland, Virginia, New
        Jersey, New York and California.

        {(http://www.digex.net)}

        (1994-10-25)

Digital Lempel Ziv 1

        <algorithm> (DLZ1) A {Lempel-Ziv compression} {algorithm}
        which maps variable length input strings to variable length
        output symbols.  During compression, the algorithm builds a
        dictionary of strings which is accessed by means of a {hash
        table}.  Compression occurs when input data matches a string
        in the table and is replaced with the output symbol.

        DLZ1 is used on {Digital Linear Tape}.

        (1997-04-05)

Digital Library Initiative

        A project to research digital libraries which aims to provide
        real collections to real users (high school students,
        University researchers and students, users in public
        libraries).  The project is sponsored jointly by three US
        federal funding agencies, led by the National Science
        Foundation.

        The {University of Michigan}, one of the six sites selected in
        1994 to collaborate, will provide collections on earth and
        space sciences.  The project, known there as the University of
        Michigan Digital Library Project (UMDL), is a large,
        multi-year project headed by Daniel Atkins, Dean of the School
        of Information and Library Studies.

        {UMDL (http://http2.sils.umich.edu/UMDL/HomePage.html)}

        (1995-02-23)

Digital Linear Tape

        <storage> (DLT) A kind of {magnetic tape} drive
        originally developed by {DEC} and now marketed by {Quantum}.

        DLT drives implement the {Digital Lempel Ziv 1} (DLZ1)
        {compression} {algorithm} in a combination of {hardware} and
        {firmware}.  They use a popular chip by {Stac} (now {hi/fn})
        to do the string searching.  Counting, sorting and {Huffman
        encoding} are done in firmware (with hardware support for the
        Huffman algorithm?).

        In April 1997 DLT drives can transfer 5 {megabytes} per second
        and can store 35 {gigabytes} on a single cartridge.
        Compression might roughly double these figures.

        (1997-04-05)

Digital Multimeter

        <electronics> (DMM) A peice of test equipment used for
        measuring voltage, current, resistance, and possibly other
        electircal quantities and displaying the value in number form.

        (1997-02-12)

Digital Research

        <company> The company which developed {CP/M}, the {operating
        system} used on many of the first generation 8-bit
        {microprocessor}-based {personal computers}.  Digital Research
        also produced {DR-DOS}.

        Address: Santa Cruz, CA, USA.

        (1998-03-17)

digital service unit

        <communications> (DSU or "data service unit") A device used in
        digital transmission for connecting a CSU (Channel Service
        Unit) to {Data Terminal Equipment} (a terminal or computer),
        in the same way that a {modem} is used for connection to an
        analogue medium.

        A DSU provides a standard interface to a user's terminal which
        is compatible with {modem}s and handles such functions as
        signal translation, regeneration, reformatting, and timing.
        The transmitting portion of the DSU processeses the customers'
        signal into bipolar pulses suitable for transmission over the
        digital facility.  The receiving portion of the DSU is used
        both to extract timing information and to regenerate mark and
        space information from the received bipolar signal.

        (1995-01-30)

Digital Signal Processing

        (DSP) Computer manipulation of analog signals (commonly sound
        or {image}) which have been converted to digital form
        (sampled).

        (1994-12-07)

Digital Signal Processing Language

        <language> (DSPL) A {C}-derived {DSP} language.

        ["The Programming Language DSPL", A. Schwarte & H. Hanselmann,
        Proc PCIM 90, 1990].

        (1994-12-01)

digital signature

        <cryptography> Extra data appended to a message which
        identifies and authenticates the sender and message data using
        {public-key encryption}.

        The sender uses a {one-way hash function} to generate a
        hash-code of about 32 bits from the message data.  He then
        encrypts the hash-code with his private key.  The receiver
        recomputes the hash-code from the data and decrypts the
        received hash with the sender's public key.  If the two
        hash-codes are equal, the receiver can be sure that data has
        not been corrupted and that it came from the given sender.

        (1995-02-07)

digital signatures

        {digital signature}

Digital Signature Standard

        <cryptography, standard> The {NIST}'s {standard} for {digital
        signatures} (authenticating both a message and the signer)
        that was first announced in 1991.  It is based on an
        {algorithm} using {discrete logarithms}, which is a variant of
        the {Elgamal algorithm} with Schnorr's improvements.  DSS's
        security is currently considered very strong - comparable to
        {RSA}.  It is estimated that DSS's 1024-bit keys would take
        1.4E16 {MIPS}-years to crack.

        (1995-11-16)

Digital Simulation Language

        <language> (DSL) Extensions to {FORTRAN} to simulate {analog
        computer} functions.  Version DSL/90 ran on the {IBM 7090}.

        ["DSL/90 - A Digital Simulation Program for Continuous System
        Modelling", Proc SJCC 28, AFIPS, Spring 1966].

        [Sammet 1969, p 632].

        (1996-10-13)

Digital Simultaneous Voice and Data

        <communications> (DSVD) A technique supported by some {modems}
        for multiplexing compressed speech with digital data for
        transmission over a normal telephone line.

        DSVD isn't standardised yet, so generally you have to have the
        same make of modem at both ends for it to work.

        [How does it work?  Which modems?  References?]

        (1997-06-05)

DIGITAL Standard MUMPS

        (DSM) {DEC}'s version of {MUMPS}.

        (1995-01-10)

Digital Subscriber Line

        <communications, protocol> (DSL, or Digital Subscriber Loop,
        xDSL - see below) A family of {digital} {telecommunications}
        {protocols} designed to allow high speed data communication
        over the existing {copper} telephone lines between end-users
        and telephone companies.

        When two conventional {modems} are connected through the
        telephone system ({PSTN}), it treats the communication the
        same as voice conversations.  This has the advantage that
        there is no investment required from the telephone company
        (telco) but the disadvantage is that the {bandwidth} available
        for the communication is the same as that available for voice
        conversations, usually 64 kb/s ({DS0}) at most.  The
        {twisted-pair} copper cables into individual homes or offices
        can usually carry significantly more than 64 kb/s but the
        telco needs to handle the signal as digital rather than
        analog.

        There are many implementation of the basic scheme, differing
        in the communication {protocol} used and providing varying
        {service levels}.  The throughput of the communication can be
        anything from about 128 kb/s to over 8 Mb/s, the communication
        can be either symmetric or asymmetric (i.e. the available
        bandwidth may or may not be the same {upstream} and
        {downstream}).  Equipment prices and service fees also vary
        considerably.

        The first technology based on DSL was {ISDN}, although ISDN is
        not often recognised as such nowadays.  Since then a large
        number of other protocols have been developed, collectively
        referred to as xDSL, including {HDSL}, {SDSL}, {ADSL}, and
        {VDSL}.  As yet none of these have reached very wide
        deployment but wider deployment is expected for 1998-1999.

        {(http://www.cyberventure.com/~cedpa/databus-issues/v38n1/xdsl.html)}.

        {2Wire DSL provider lookup (www.2Wire.com)}.

        ["Data Cooks, But Will Vendors Get Burned?", "Supercomm
        Spotlight On ADSL" & "Lucent Sells Paradine", Wilson & Carol,
        Inter@ctive Week Vol. 3 #13, p1 & 6, June 24 1996].

        (1999-08-31)

Digital Subscriber Loop

        {Digital Subscriber Line}

Digital Switched Network

        <communications> (DSN) The completely digital version of the
        {PSTN}.

        (1997-07-18)

Digital to Analog Converter

        <electronics> (DAC) A device which takes a digital value and
        outputs a voltage which is proportional to the input value.

        Typical uses include digital generation of audio signals or
        conversion of a {bitmap image} to a signal to drive a {CRT}.

        (1998-02-15)

Digital Versatile Disc

        <storage> (DVD, formerly "Digital Video Disc") An optical
        storage medium with improved capacity and bandwidth compared
        with the {Compact Disc}.  DVD, like CD, was initally marketed
        for entertainment and later for computer users.  [When was it
        first available?]

        A DVD can hold a full-length film with up to 133 minutes of
        high quality video, in {MPEG-2} format, and audio.

        The first DVD drives for computers were read-only drives
        ("DVD-ROM").  These provide over seven times the storage
        capacity of CD-ROM (4.7 GBytes).  DVD-ROM drives read existing
        {CD-ROM}s and music CDs and are compatible with installed
        sound and video boards.  Additionally, the DVD-ROM drive can
        read DVD films using an advanced (MPEG-2) video board,
        required to decode the high resolution video format.

        The first drives, using a single-layer disc of 4.7GB, were
        expected to be available during the second half of 1996 from
        {Toshiba}, {Philips}, {Sony}, {Hitachi} and others.  In 1997,
        dual-layer discs were expected to increase the disc capacity
        to 8.5 GB.  Double-sided, dual-layer discs will eventually
        increase the capacity to 17 GB.

        Write-once DVD-R ("recordable") drives record a 3.9GB DVD-R
        disc that can be read on a DVD-ROM drive.  The first DVD-R
        drive was expected by mid 1997.

        By the end of 1997, the rewritable DVD-RAM (by false analogy
        with {random access memory}) drive was expected to become
        available.  DVD-RAM drives read and write to a 2.6 GB DVD-RAM
        disc, read and write-once to a 3.9GB DVD-R disc, and read a
        4.7 GB or 8.5 GB DVD-ROM.  Also, it was expected that a
        DVD-RAM disc would be readable on both the DVD-R and DVD-ROM
        drives.

        {Background (http://www.tacmar.com/dvd_background.htm)}.  {RCA
        home (http://www.imagematrix.com/DVD/home.html)}.
        {(http://www.zdnet.com/products/special/current/dvd.html)}.
        {(http://www.zdnet.com/products/special/current/dvdsum.html)}.

        [Did this happen as predicted?  Current state?]

        (1999-07-08)

Digital Video Disc

        {Digital Versatile Disc}

Dijkstra's guarded command language

        <language> A language invented by {Edsger Dijkstra} ca. 1974.
        It introduced the concept of {guards} and {committed choice
        nondeterminism} ({don't care nondeterminism}).  Described and
        used in ["A Discipline of Programming", E. Dijkstra, P-H
        1976].

        (1994-12-07)

dike

        To remove or disable a portion of something, as a wire from a
        computer or a subroutine from a program.  A standard slogan is
        "When in doubt, dike it out".  (The implication is that it is
        usually more effective to attack software problems by reducing
        complexity than by increasing it.)  The word "dikes" is widely
        used among mechanics and engineers to mean "diagonal cutters",
        especially the heavy-duty metal-cutting version, but may also
        refer to a kind of wire-cutters used by electronics
        technicians.  To "dike something out" means to use such
        cutters to remove something.  Indeed, the TMRC Dictionary
        defined dike as "to attack with dikes".  Among hackers this
        term has been metaphorically extended to informational objects
        such as sections of code.

DIL

        {Dual In-Line Package}

Dilbert

        <humour> A cartoon computer worker drawn by Scott Adams
        <scottadams@aol.com>, who works in Silicon Valley.  The
        cartoon became so popular he left his day job.  The cartoon
        satirises typical corporate life, especially that which
        revolves around computers.

        See also: {BOFH}.

        {Home (http://www.unitedmedia.com/comics/dilbert/)}.

        (1996-10-11)

Dilberted

        <jargon> To be exploited and oppressed by your boss.  Derived
        from the experiences of {Dilbert}, the geek-in-hell comic
        strip character.  "I've been dilberted again.  The old man
        revised the specs for the fourth time this week."

        (1997-03-29)

DIM

        {DIM statement}

DIMATE

        <language> Depot Installed Maintenance Automatic Test
        Equipment.  A language for programming {automatic test
        equipment}.  It Runs on the {RCA 301}.

        ["A Simple User-Oriented Source Language for Programming
        Automatic Test Equipment", B.H. Scheff, CACM 9(4) (Apr 1966)].

        [Sammet 1969, p. 647].

        (1996-01-07)

DIMM

        {Dual In-Line Memory Module}

DIM statement

        <programming> (From "dimension") A {keyword} in most versions
        of the {BASIC} programming language that declares the size of
        an {array}.  E.g.

                DIM A(100)

        declares a one-dimensional array with 101 numeric elements
        (including A(0)).

        {Visual Basic} uses the DIM (or "Dim") statement for any
        variable declaration, even {scalars}, e.g.

        Dim DepartmentNumber As Integer

        which declares a single (scalar) variable of type Integer.

        (1999-03-26)

DIN

        Deutsche Institut fuer Normung.  The German standardisation
        body, a member of {ISO}.

DIN-8

        <hardware> An 8-pin round connector, sometimes used for
        {RS-232} serial communication when space is restricted, such
        as on {laptop computers}.

        (1996-12-08)

ding

        1. Synonym for {feep}.  Usage: rare among hackers, but
        commoner in the {Real World}.

        2. "dinged": What happens when someone in authority gives you
        a minor bitching about something, especially something
        trivial.  "I was dinged for having a messy desk."

Dining Philosophers Problem

        <parallel> (DPP) A problem introduced by {Dijkstra} concerning
        resource allocation between processes.  The DPP is a model and
        universal method for testing and comparing theories on
        resource allocation.  Dijkstra hoped to use it to help create
        a layered {operating system}, by creating a machine which
        could be consider to be an entirely {deterministic}
        {automaton}.

        The problem consists of a finite set of processes which share
        a finite set of resources, each of which can be used by only
        one process at a time, thus leading to potential {deadlock}.

        The DPP visualises this as a number of philosophers sitting
        round a dining table with a fork between each adjacent pair.
        Each philosopher may arbitrarily decide to use either the fork
        to his left or the one to his right but each fork may only be
        used by one philosopher at a time.

        Several potential solutions have been considered.

        Semaphores - a simple, but unfair solution where each
        resources is a {binary semaphore} and additional semaphores
        are used to avoid deadlock and/or {starvation}.

        Critical Regions - each processor is protected from
        interference while it exclusively uses a resource.

        Monitors - the process waits until all required resources are
        available then grabs all of them for use.

        The best solution allows the maximum parallelism for any
        number of processes (philosophers), by using an array to track
        the process' current state (i.e. hungry, eating, thinking).
        This solution maintains an array of semaphores, so hungry
        philosophers trying to acquire resources can block if the
        needed forks are busy.

        (1998-08-09)

dink

        /dink/ Said of a machine that has the {bitty box} nature; a
        machine too small to be worth bothering with - sometimes the
        system you're currently forced to work on.  First heard from
        an {MIT} hacker working on a {CP/M} system with 64K, in
        reference to any {6502} system, then from fans of 32 bit
        architectures about 16-bit machines.  "GNUMACS will never work
        on that dink machine."  Probably derived from mainstream
        "dinky", which isn't sufficiently pejorative.

        See {macdink}.

        (1994-10-31)

DinnerBell

        An {object-oriented} {dataflow} language with {single
        assignment}.

        ["Object-Oriented Load Distribution in DinnerBell", S. Kono
        <kono@csl.sony.co.jp> et al, in TOOLS Pacific 90].

        (1994-10-31)

DINO

        {Data parallel} superset of {C}.

        {(ftp://ftp.cs.colorado.edu/pub/cs/distribs/dino/)}

        ["The DINO Parallel Programming Language", M. Rosing et al, J
        Parallel Dist Comp 13(9):30-42 (Sep 1991)].

        ["DINO Parallel Programming Language", M. Rosing et al,
        CU-CS-457-90, U Colorado, April 1990].

dinosaur

        1. Any hardware requiring raised flooring and special power.
        Used especially of old {minicomputer}s and {mainframe}s, in
        contrast with newer {microprocessor}-based machines.

        In a famous quote from the 1988 Unix EXPO, {Bill Joy} compared
        the liquid-cooled mainframe in the massive {IBM} display with
        a grazing dinosaur "with a truck outside pumping its bodily
        fluids through it".  IBM was not amused.

        Compare {big iron}; see also {dinosaurs mating}.

        2. [IBM] A very conservative user; a {zipperhead}.

dinosaur pen

        A traditional {mainframe} computer room complete with raised
        flooring, special power, its own ultra-heavy-duty air
        conditioning, and a side order of Halon fire extinguishers.

        See {boa}.

        (1995-11-17)

dinosaurs mating

        <humour> The activity said to occur when yet another {big
        iron} merger or buy-out occurs; reflects a perception by
        hackers that these signal another stage in the long, slow
        dying of the {mainframe} industry.  Also described as
        "elephants mating": lots of noise and action at a high level,
        with an eventual outcome in the somewhat distant future.

        In its glory days of the 1960s, it was "{IBM} and the Seven
        Dwarves": {Burroughs}, {Control Data}, {General Electric},
        {Honeywell}, {NCR}, {RCA}, and {Univac}.  Early on, RCA sold
        out to Univac and GE also sold out, and it was "IBM and the
        BUNCH" (an acronym for Burroughs, Univac, NCR, Control Data,
        and Honeywell) for a while.  Honeywell was bought out by Bull.

        Univac in turn merged with {Sperry} to form Sperry/Univac,
        which was later merged (although the employees of Sperry
        called it a hostile takeover) with Burroughs to form {Unisys}
        in 1986 (this was when the phrase "dinosaurs mating" was
        coined).  In 1991 {AT&T} absorbed NCR, only to spit it out
        again in 1996.  Unisys bought {Convergent Technologies} in
        1988 and later others.

        More such earth-shaking unions of doomed giants seem
        inevitable.

        [More dates?]

        (1998-07-10)

diode

        <hardware, electronics> A {semiconductor} device which
        conducts electric current run in one direction only.  This is
        the simplest kind of semiconductor device, it has two
        terminals and a single PN junction.  One diode can be used as
        a {half-wave rectifier} or four as a {full-wave rectifier}.

        (1995-03-14)

Diophantine equation

        <mathematics> Equations with {integer} coefficients to which
        integer solutions are sought.  Because the results are
        restricted to integers, different {algorithms} must be used
        from those which find {real} solutions.

        [More details?]

        (1998-08-27)

DIP

        1. {Dual In-line Package}.

        2. {Document Image Processing}.

Direct-Access Storage Device

        <hardware> (DASD) {IBM} {mainframe} terminology for a {disk
        drive}, in contrast with a tape drive which is a sequential
        access device.

        (1995-03-01)

Direct Client to Client Protocol

        <networking> (DCC) An {IRC} {protocol} created to allow users
        to chat privately and to send and receive files directly
        instead of having to go thorugh the IRC servers.  DCC protects
        users from being monitored by IRC Server operators that have
        enabled conversation logging.  It also allows much more
        efficient use of available {bandwidth} as the data does not
        need to be {broadcast} all over the world just to reach a
        specific user.

        The available DCC commands include DCC CHAT (direct user to
        user chat), DCC SEND (direct user to user file send) and DCC
        GET (file acknowledgement from a receiver).

        (1995-04-12)

Direct Connection

        A re-seller of {Internet} connections to the {PIPEX}
        {backbone}.

directed acyclic graph

        (DAG) A {directed graph} containing no cycles.  This means
        that if there is a route from node A to node B then there is
        no way back.

        (1994-12-07)

directed graph

        (digraph) A graph with one-way edges.

        See also {directed acyclic graph}.

        (1994-11-11)

Directed Oc

        <language> (Doc) A language related to {Oc}.

        ["Programming Language Doc and Its Self-Description, or 'X=X
        Is Considered Harmful'", M. Hirata, Proc 3rd Conf Japan Soc
        Soft Sci Tech, pp. 69-72, 1986].

        (1999-10-08)

directed set

        <theory> A {set} X is directed under some {relation}, <= (less
        than or equal), if it is non-empty and if for any two elements
        x and y there exists an element z such that x <= z and y <= z.
        I.e. all pairs have an {upper bound}.

        (1994-11-11)

Direct Inward Dialing

        <communications> (DID) A service offered by telephone
        companies which allows the last 3 or 4 digits of a phone
        number to be transmitted to the destination {exchange}.

        For example, a company could have 10 incoming lines, all with
        the number 234 000.  If a caller dials 234 697, the call is
        sent to 234 000 (the company's exchange), and the digits 697
        are transmitted.  The company's exchange then routes the call
        to extension 697.  This gives the impression of 1000 direct
        dial lines, whereas in fact there are only 10.  Obviously,
        only 10 at a time can be used.

        This system is also used by {fax servers}.  Instead of an
        exchange at the end of the 234 000 line, a computer running
        fax server software and {fax modem} cards uses the last three
        digits to identify the recipient of the fax.  This allows 1000
        people to have their own individual fax numbers, even though
        there is only one 'fax machine'.

        {Dictionary of PC Hardware and Data Communications Terms
        (http://www.ora.com/reference/dictionary/terms/D/Direct_Inward_Dialing.
htm)}

        (1997-06-29)

directional coupler

        <communications> (tap) A {passive} device used in {cable}
        systems to divide and combine radio frequency signals.  A
        directional coupler has at least three ports: line in, line
        out, and the tap.  The signal passes between line in and line
        out ports with loss referred to as the {insertion loss}.  A
        small portion of the signal power applied to the line in port
        passes to the tap port.  A signal applied to the tap port is
        passed to the line in port less the tap attenuation value.
        The tap signals are isolated from the line out port to prevent
        reflections.  A signal applied to the line out port passes to
        the line in port and is isolated from the tap port.  Some
        devices provide more than one tap output line (multi-taps).

        (1995-12-23)

Directly Executable Test Oriented Language

        <language> (DETOL) A simple language to control a specific
        type of test equipment.

        ["Improved DETOL Programming Manual for the Series 5500
        Automatic Test System", Pub. 5500-31-0-1, AAI Corporation  Sep
        1973].

        (1995-09-29)

direct mapped cache

        <architecture> A {cache} where the cache location for a given
        address is determined from the middle address bits.  If the
        {cache line} size is 2^n then the bottom n address bits
        correspond to an offset within a cache entry.  If the cache
        can hold 2^m entries then the next m address bits give the
        cache location.  The remaining top address bits are stored as
        a "tag" along with the entry.

        In this scheme, there is no choice of which block to flush on
        a cache miss since there is only one place for any block to
        go.  This simple scheme has the disadvantage that if the
        program alternately accesses different addresses which map to
        the same cache location then it will suffer a cache miss on
        every access to these locations.  This kind of {cache
        conflict} is quite likely on a multi-processor.  See also
        {fully associative cache}, {set associative cache}.

Direct Memory Access

        <architecture> (DMA) A facility of some architectures which
        allows a peripheral to read and write memory without
        intervention by the CPU.  DMA is a limited form of {bus
        master}ing.

        (1996-08-23)

directory

        <file system> A node in a hierarchical {file system} which
        contains zero or more other nodes - generally, {files} or
        other directories.

        Compare {folder}.

        (1997-04-10)

Directory Access Protocol

        X.500 protocol used for communication between a Directory User
        Agent and a Directory System Agent.

directory service

        <software> A software system that responds to requests for
        information about entities, e.g. people in an organisation.

        {X.500} and {Network Information Service} (NIS) are examples
        of directory services.

        (1999-09-11)

Directory System Agent

        (DSA) The software that provides the {X.500} Directory Service
        for a portion of the directory information base.  Generally,
        each DSA is responsible for the directory information for a
        single organisation or organisational unit.

        (1994-12-07)

Directory User Agent

        (DUA) The software that accesses the {X.500} Directory Service
        on behalf of the directory user.  The directory user may be a
        person or another software element.

        (1994-12-07)

DirectX

        <programming, hardware> A new {Microsoft} programming
        interface {standard} for {Windows 95}.  DirectX gives (games)
        programmers a standard way to gain direct access to enhanced
        hardware features under Windows 95 instead of going via the
        Windows 95 {GDI}.  Some DirectX code runs faster than the
        equivalent under {MS DOS}.

        DirectX promises performance improvements for graphics, sound,
        video, 3D, and network capabilites of games, but only where
        both hardware and software support DirectX.

        DirectX 2 introduced the Direct3D interface.

        Current version (Feb 1998): 5.  Version 8 is also available
        but not widespread.

        {(http://www.nfinity.com/~swhalen/directx.html)}.

        (1998-02-15)

Dirt

        {Design In Real Time}

dirtball

        ({XEROX PARC}) A small, perhaps struggling outsider; not in
        the major or even the minor leagues.  For example, "Xerox is
        not a dirtball company".

        Outsiders often observe in the PARC culture an institutional
        arrogance which usage of this term exemplifies.  The
        brilliance and scope of PARC's contributions to computer
        science have been such that this superior attitude is not much
        resented.  - ESR

        (1994-12-07)

dirty power

        Electrical mains voltage that is unfriendly to the delicate
        innards of computers.  Spikes, {drop-outs}, average voltage
        significantly higher or lower than nominal, or just plain
        noise can all cause problems of varying subtlety and severity
        (these are collectively known as {power hit}s).

DISA

        1. <body> {Defense Information Systems Agency}.

        2. <standard> {Data Interchange Standards Association}.

        (1999-09-18)

disc

        <storage, spelling> British spelling of "{disk}", normally
        only used for "{compact disc}".

        (1995-07-30)

disc drive

        {disc}

disclaimer

        <networking> Statement ritually appended to many {Usenet}
        postings (sometimes automatically, by the posting software)
        reiterating the fact (which should be obvious, but is easily
        forgotten) that the article reflects its author's opinions and
        not necessarily those of the organisation running the computer
        through which the article entered the network.

        (1995-07-30)

disconnect

        {SCSI reconnect}

Discordianism

        <recreation> /dis-kor'di-*n-ism/ The veneration of {Eris},
        also known as Discordia; widely popular among hackers.
        Discordianism was popularised by Robert Shea and Robert Anton
        Wilson's novel "Illuminatus!" as a sort of self-subverting
        Dada-Zen for Westerners - it should on no account be taken
        seriously but is far more serious than most jokes.  Consider,
        for example, the Fifth Commandment of the Pentabarf, from
        "Principia Discordia": "A Discordian is Prohibited of
        Believing What he Reads."  Discordianism is usually connected
        with an elaborate conspiracy theory/joke involving
        millennia-long warfare between the anarcho-surrealist
        partisans of Eris and a malevolent, authoritarian secret
        society called the Illuminati.

        See {Religion}, {Church of the SubGenius}, and {ha ha only
        serious}.

        (1997-04-12)

discrete cosine transform

        <mathematics> (DCT) A technique for expressing a waveform as a
        weighted sum of cosines.

        The DCT is central to many kinds of {signal processing},
        especially video {compression}.

        Given data A(i), where i is an integer in the range 0 to N-1,
        the forward DCT (which would be used e.g. by an encoder) is:

         B(k) =    sum    A(i) cos((pi k/N) (2 i + 1)/2)
                i=0 to N-1

        B(k) is defined for all values of the frequency-space variable
        k, but we only care about integer k in the range 0 to N-1.
        The inverse DCT (which would be used e.g. by a decoder) is:

         AA(i)=    sum    B(k) (2-delta(k-0)) cos((pi k/N)(2 i + 1)/2)
                k=0 to N-1

        where delta(k) is the {Kronecker delta}.

        The main difference between this and a {discrete Fourier
        transform} (DFT) is that the DFT traditionally assumes that
        the data A(i) is periodically continued with a period of N,
        whereas the DCT assumes that the data is continued with its
        mirror image, then periodically continued with a period of 2N.

        Mathematically, this transform pair is exact, i.e. AA(i) ==
        A(i), resulting in {lossless coding}; only when some of the
        coefficients are approximated does compression occur.

        There exist fast DCT {algorithms} in analogy to the {Fast
        Fourier Transform}.

        (1997-03-10)

discrete Fourier transform

        <mathematics> (DFT) A {Fourier transform}, specialized to the
        case where the {abscissas} are integers.

        The DFT is central to many kinds of {signal processing},
        including the analysis and {compression} of video and {sound}
        information.

        A common implementation of the DFT is the {Fast Fourier
        Transform} (FFT).

        See also {discrete cosine transform}.

        (1997-03-10)

discrete preorder

        <mathematics> A {preorder} is said to be discrete if any two
        of its elements are {incomparable}.

        (1995-09-21)

discriminated union

        <theory> The discriminated union of two sets A and B is

                A + B = {(inA, a) | a in A} U {(inB, b)| b in B}

        where inA and inB are arbitrary tags which specify which
        summand an element originates from.

        A {type} (especially an {algebraic data type}) might be
        described as a discriminated union if it is a {sum type} whose
        objects consist of a tag to say which part of the union they
        belong to and a value of the corresponding type.

        (1995-04-25)

Disiple

        A {DSP} language.

        ["A Compiler that Easily Retargets High Level Language
        Programs for Different Signal Processing Architectures", J.E.
        Peters & S.M. Dunn, Proc ICASSP 89, pp.1103-1106, (May 1989)].

disjoint union

        In {domain theory}, a union (or sum) which results in a domain
        without a least element.

Disjunctive Normal Form

        (DNF) A logical formula consisting of a {disjunction} of
        {conjunction}s where no conjunction contains a disjunction.
        E.g. the DNF of (A or B) and C is (A and C) or (B and C).

        (1994-12-07)

disk

        <storage> 1. {magnetic disk}.

        2. {compact disc}.

        3. {optical disk}.

        Note: the american spelling, "disk", is normal for most
        computer disks whereas "compact disc", having come to
        computers via the audio world, is correctly spelled with a
        "c", indeed, this spelling is part of the CD standard.

        (1995-07-30)

disk controller

        <hardware, storage> (Or "hard disk controller", HDC) The
        circuit which allows the {CPU} to communicate with a {hard
        disk}, {floppy disk} or other kind of {disk drive}.

        The most common disk controllers in use are {IDE} and {SCSI}
        controllers.  Most home {personal computers} use IDE
        controllers.  High end PCs, {workstations} and network {file
        servers} mostly have {SCSI adaptors}.

        (1998-03-16)

disk drive

        <hardware, storage> (Or "hard disk drive", "hard drive",
        "floppy disk drive", "floppy drive") A {peripheral} device
        that reads and writes {hard disks} or {floppy disks}.  The
        drive contains a motor to rotate the disk at a constant rate
        and one or more read/write heads which are positioned over the
        desired {track} by a servo mechanism.  It also contains the
        electronics to amplify the signals from the heads to normal
        digital logic levels and vice versa.

        In order for a disk drive to start to read or write a given
        location a read/write head must be positioned radially over
        the right track and rotationally over the start of the right
        sector.

        Radial motion is known as "{seek}ing" and it is this which
        causes most of the intermittent noise heard during disk
        activity.  There is usually one head for each disk surface and
        all heads move together.  The set of locations which are
        accessible with the heads in a given radial position are known
        as a "{cylinder}".  The "{seek time}" is the time taken to
        seek to a different cylinder.

        The disk is constantly rotating (except for some {floppy disk}
        drives where the motor is switched off between accesses to
        reduce wear and power consumption) so positioning the heads
        over the right sector is simply a matter of waiting until it
        arrives under the head.  With a single set of heads this
        "{rotational latency}" will be on average half a revolution
        but some big drives have multiple sets of heads spaced at
        equal angles around the disk.

        If seeking and rotation are independent, access time is seek
        time + rotational latency.  When accessing multiple tracks
        sequentially, data is sometimes arranged so that by the time
        the seek from one track to the next has finished, the disk has
        rotated just enough to begin accessing the next track.

        See also {sector interleave}.

        The disks may be {removable disks}; floppy disks always are,
        removable hard disks were common on {mainframes} and
        {minicomputers} but less so on {microcomputers} until the mid
        1990s(?) with products like the {Zip Drive}.

        A {CD-ROM} drive is not usually referred to as a disk drive.

        Two common interfaces for disk drives (and other devices) are
        {SCSI} and {IDE}.  {ST506} used to be common in microcomputers
        (in the 1980s?).

        (1997-04-15)

disk duplexing

        <hardware, storage> A variation on {disk mirroring} where, as
        well as redundant {disk drives}, a second {disk controller} or
        {host adapter} is also present.

        (1996-02-22)

diskette

        {floppy disk}

disk farm

        <jargon> (Or "{laundromat}") A large room or rooms filled with
        {disk drives} (especially {washing machines}).

        (1995-03-27)

diskless workstation

        <computer, networking> A {personal computer} or {workstation}
        which has neither a {hard disk} nor {floppy disk} drive and
        which performs all file access via a {local area network}
        connection to a {file server}.  The lowest level {bootstrap}
        code is stored in {non-volatile storage}.  This uses a simple
        {protocol} such as {BOOTP} to request and {download} more
        sophisticated boot code and eventually, the {operating
        system}.

        The archtypal product was the {3Station} developed by Bob
        Metcalfe at {3Com}.  Another example was the {Sun} 3/50.

        Diskless workstations are ideal when many users are running
        the same application.  They are small, quiet, more reliable
        than products with disks, and help prevent both the theft of
        data and the introduction of viruses since the software and
        data available on them is controlled by the network
        administrator or system administrator.  They do however rely
        on a server which becomes a disadvantage if it is heavily
        loaded or {down}.

        See also {breath-of-life packet}.

        (1995-03-28)

disk mirroring

        <hardware, storage> Use of one or more {mirrors} of a {hard
        disk}.

        (1996-02-17)

Disk Operating System

        <operating system> (DOS) The original {disk operating system}
        from {IBM}.

        DOS was the low-end OS of choice on the {IBM 360}, the
        high-end system was called just "{OS}".  DOS had a smaller
        {kernel} and less functionality than OS and could run on the
        typical 32K 360/30 and 64K 360/40 class machines.

        DOS was a successor to {TOS}.

        (1999-01-20)

disk operating system

        <operating system> (DOS) The name of a number of {operating
        systems} which include facilities for storing files on disk.
        Such a system must handle physical disk I/O, the mapping of
        file names to disk addresses and protection of files from
        unauthorised access (in a {multi-user} system).

        A DOS should present a uniform interface to different storage
        device such as {floppy disks}, {hard disks} and {magnetic
        tape} drives.  It may also provide some kind of locking to
        prevent unintentional simultaneous access by two processes to
        the same file (or {record}).

        (1998-07-08)

disk striping

        {data striping}

Dislang

        <language>

        ["Dislang: A Distributed Programming Language/System", C. Li
        et al, Proc 2nd Intl Conf Distrib Comp Sys, IEEE 1981,
        pp. 162-172].

        (1995-05-10)

display

        1. <hardware> {monitor}.

        2. <language> A vector of pointers to {activation record}s.
        The Nth element points to the activation record containing
        variables declared at {lexical depth} N.  This allows faster
        access to variables from outer {scope}s than the alternative
        of linked activation records (but most variable accesses are
        either local or global or occasionally to the immediately
        enclosing scope).  Displays were used in some {ALGOL}
        implementations.

        (1996-02-22)

display hack

        <graphics> A program with the same approximate purpose as a
        kaleidoscope: to make pretty pictures.  Famous display hacks
        include {munching squares}, {smoking clover}, the {BSD Unix}
        "rain(6)" program, "worms(6)" on miscellaneous Unixes, and the
        {X} "kaleid(1)" program.  Display hacks can also be
        implemented without programming by creating text files
        containing numerous escape sequences for interpretation by a
        video terminal; one notable example displayed, on any VT100, a
        Christmas tree with twinkling lights and a toy train circling
        its base.  The {hack value} of a display hack is proportional
        to the aesthetic value of the images times the cleverness of
        the algorithm divided by the size of the code.  Synonym
        {psychedelicware}.

        (1995-05-10)

Display PostScript

        An extended form of {PostScript} permitting its interactive
        use with {bitmap display}s.

display standard

        <hardware> {IBM} and others have introduced a bewildering
        plethora of graphics and text display {standards} for {IBM
        PCs}.  The standards are mostly implemented by plugging in a
        video display board (or "{graphics adaptor}") and connecting
        the appropriate monitor to it.  Each new standard subsumes its
        predecessors.  For example, an {EGA} board can also do {CGA}
        and {MDA}.

        With the {PS/2}, IBM introduced the {VGA} standard and built
        it into the main system board {motherboard}. VGA is also
        available as a plug-in board for PCs from third-party vendors.
        Also with the PS/2, IBM introduced the {8514} high-resolution
        graphics standard.  An 8514 adaptor board plugs into the PS/2,
        providing a dual-monitor capability.

        Graphics software has to support the major IBM graphics
        standards and many non-IBM, proprietary standards for
        high-resolution displays.  Either software vendors provide
        {display drivers}, or display vendors provide drivers for the
        software package.  In either case, switching software or
        switching display systems is fraught with compatibility
        problems.

         Display    Resolution Colours Sponsor  Systems

         MDA        720x350 T     2     IBM     PC
         CGA        320x200       4     IBM     PC
         EGA        640x350      16     IBM     PC
         PGA        640x480     256     IBM     PC

         Hercules   729x348       2   non-IBM   PC

         MCGA       720x400 T
                    320x200 G   256             PS/2

         VGA        720x400 T
                    640x480 G    16

         SVGA       800x600      16     VESA

         XVGA      1024x768     256     (IBM name: 8514)

        T: text,  G: graphics.

        More colours are available from third-party vendors for some
        display types.

        See also {MDA}, {CGA}, {EGA}, {PGA}, {Hercules}, {MCGA},
        {VGA}, {SVGA}, {8514}, {VESA}.

display standards

        {display standard}

display terminal

        {visual display unit}

Dissociated Press

        [Play on "Associated Press"; perhaps inspired by a reference
        in the 1949 Bugs Bunny cartoon "What's Up, Doc?"]  An
        algorithm for transforming any text into potentially humorous
        garbage even more efficiently than by passing it through a
        {marketroid}.  The algorithm starts by printing any N
        consecutive words (or letters) in the text.  Then at every
        step it searches for any random occurrence in the original
        text of the last N words (or letters) already printed and then
        prints the next word or letter.  {EMACS} has a handy command
        for this.  Here is a short example of word-based Dissociated
        Press applied to an earlier version of the {Jargon File}:

        wart:  A small, crocky {feature} that sticks out of
        an array (C has no checks for this).  This is relatively
        benign and easy to spot if the phrase is bent so as to be
        not worth paying attention to the medium in question.

        Here is a short example of letter-based Dissociated Press
        applied to the same source:

        window sysIWYG:  A bit was named aften /bee't*/ prefer
        to use the other guy's re, especially in every cast a
        chuckle on neithout getting into useful informash speech
        makes removing a featuring a move or usage actual
        abstractionsidered interj. Indeed spectace logic or problem!

        A hackish idle pastime is to apply letter-based Dissociated
        Press to a random body of text and {vgrep} the output in hopes
        of finding an interesting new word.  (In the preceding
        example, "window sysIWYG" and "informash" show some promise.)
        Iterated applications of Dissociated Press usually yield
        better results.  Similar techniques called "travesty
        generators" have been employed with considerable satirical
        effect to the utterances of {Usenet} flamers; see {pseudo}.

distfix

        <programming> ("distributed {fixity}"?) A description of an
        {operator} represented by multiple symbols before, between,
        and/or after the arguments.

        The classical example is the {C} conditional operator, "?:"
        which is written

                E1 ? E2 : E3

        If E1 is true it returns E2 otherwise it returns E3.  Several
        {functional programming languages}, e.g. {Hope}, {Haskell},
        have similar operators ("if E1 then E2 else E3").

        {Objective C} {messages} are effectively distfix operator
        applications:

                getRow:row andColumn:col ofCell:cell

        is a message with three arguments, row, col, and cell.

        (1997-01-21)

Distributed Component Object Model

        <programming> (DCOM) {Microsoft}'s extension of their
        {Component Object Model} (COM) to support objects distributed
        across a {network}.  DCOM has been submitted to the {IETF} as
        a draft standard.  Since 1996, it has been part of {Windows
        NT} and is also available for {Windows 95}.

        Unlike {CORBA}, which runs on many {operating systems}, DCOM
        is currently (Dec 1997) only implemented by {Microsoft} for
        {Microsoft Windows} and by {Software AG}, under the name
        "{EntireX}", for {Unix} and {IBM} {mainframes}.  DCOM serves
        the same purpose as {IBM}'s {DSOM} {protocol}.

        DCOM is broken because it's an {object model} that has no
        provisions for {inheritance}, one of the major reasons for
        {object oriented programming} in the first place.

        [Details?  URL?]

        (1999-02-05)

Distributed Computing Environment

        (DCE) An architecture consisting of {standard} programming
        interfaces, conventions and {server} functionalities
        (e.g. naming, distributed file system, {remote procedure call})
        for distributing applications transparently across networks of
        {heterogeneous} computers.  DCE is promoted and controlled by
        the {Open Software Foundation} (OSF).

        {Usenet} newsgroup: {news:comp.soft-sys.dce}.

        {(http://www.dstc.edu.au/AU/research_news/dce/dce.html)}

        (1994-12-07)

distributed database

        A collection of several different {database}s that looks like
        a single {database} to the user.  An example is the {Internet}
        {Domain Name System} (DNS).

        (1994-12-07)

Distributed Data Management

        <protocol, database> (DDM) An {IBM} {data} {protocol}
        architecture for data management services across {distributed}
        systems in an {SNA} environment.

        DDM provides a common {data management language} for data
        interchange among different IBM system platforms.

        Products supporting DDM include {AS/400}, {System/36},
        {System/38} and {CICS/DDM}.

        On the AS/400,  DDM controls remote file processing.
        DDM enables application programs running on one AS/400
        system to access data files stored on another system
        supporting DDM. Similarly, other systems that have DDM can
        access files in the database of the local AS/400 system.
        DDM makes it easier to distribute file processing between two
        or more systems.

        {OS/400 Distributed Data Management V3R6 Reference
        (http://as400bks.rochester.ibm.com/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/QB
JALH00/CCONTENTS)}.

        (1999-04-26)

Distributed Eiffel

        ["Distributed Eiffel: A Language for Programming
        Multi-Granular Distributed Objects on the Clouds Operating
        System", L. Gunaseelan et al, IEEE Conf Comp Langs, 1992].

        (1994-12-07)

Distributed Logic Programming

        <language> (DLP) A {logic programming} language similar to
        {Prolog}, combined with parallel {object orientation} similar
        to {POOL}.  DLP supports distributed {backtracking} over the
        results of a {rendezvous} between {object}s.  {Multi-threaded}
        objects have autonomous activity and may simultaneously
        evaluate {method} calls.

        ["DLP: A Language for Distributed Logic Programming",
        A. Eliens, Wiley 1992].

        (1996-01-07)

Distributed Management Environment

        (DME) An {OSF} {standard}.  It had reached the {RFT} stage.

        (1995-02-22)

distributed memory

        <architecture> The kind of memory in a {parallel processor}
        where each processor has fast access to its own local memory
        and where to access another processor's memory it must send a
        message via the inter-processor network.

        Opposite: {shared memory}.

        (1995-03-22)

Distributed Network Operating System

        <operating system> (DNOS) A proprietary {operating system} for
        {Texas Instruments} {990}-series {minicomputers}.

        (1996-04-01)

Distributed Operating Multi Access Interactive Network

        (DOMAIN) The proprietary network {protocol} used by {Apollo}
        {workstation}s.

        (1995-02-16)

Distributed Processes

        (DP) The first {concurrent} language based on {remote
        procedure call}s.

        ["Distributed Processes: A Concurrent Programming Concept",
        Per Brinch Hansen CACM 21(11):934-940 (Nov 1978)].

        (1994-12-02)

Distributed Queue Dual Bus

        <networking, standard> (DQDB) An {IEEE} {standard} for
        {metropolitan area network}s.

        [Details?]

        (1995-03-28)

Distributed Smalltalk

        ["The Design and Implementation of DIstributed Smalltalk",
        J. Bennett, SIGPLAN Notices 22(12):318-330 (Dec 1980)].

        (1994-12-02)

distributed system

        A collection of (probably heterogeneous) automata whose
        distribution is transparent to the user so that the system
        appears as one local machine.  This is in contrast to a
        network, where the user is aware that there are several
        machines, and their location, storage replication, load
        balancing and functionality is not transparent.  Distributed
        systems usually use some kind of {client-server} organisation.

        Distributed systems are considered by some to be the "next
        wave" of computing.

        {Distributed Computing Environment} is the {Open Software
        Foundation}'s software architecture for distributed systems.

        {(http://www.dstc.edu.au/AU/research_news/dist-env.html)}

        (1994-12-06)

distributed systems

        {distributed system}

distribution

        1. <software> A software source tree packaged for
        distribution; but see {kit}.

        2. <messaging> A vague term encompassing {mailing list}s and
        {Usenet} {newsgroup}s (but not {BBS} {fora}); any
        topic-oriented message channel with multiple recipients.

        3. <messaging> An information-space domain (usually loosely
        correlated with geography) to which propagation of a {Usenet}
        message is restricted; a much-underused feature.

distributive lattice

        <theory> A {lattice} for which the {least upper bound} (lub)
        and {greatest lower bound} (glb) operators distribute over one
        another so that

                a lub (b glb c) == (a lub c) glb (a lub b)

        and vice versa.

        ("lub" and "glb" are written in {LateX} as {\sqcup} and
        {\sqcap}).

        (1998-11-09)

disusered

        ({Usenet}) Said of a person whose account on a computer has
        been removed, especially for cause rather than through normal
        attrition.  "He got disusered when they found out he'd been
        {cracking} through the school's {Internet} access."  The verb
        "disuser" is less common.  Both usages probably derive from
        the DISUSER account status flag on {VMS}; setting it disables
        the account.

        (1994-12-08)

dithering

        A technique used in {computer graphics} to create additional
        colors and shades from an existing {palette} by interspersing
        {pixel}s of different colours.  On a {monochrome} display,
        areas of grey are created by varying the proportion of black
        and white pixels.  In color displays, colors and textures are
        created by varying the proportions of existing colors.  The
        different colours can either be distributed randomly or
        regularly.  The higher the {resolution} of the display, the
        smoother the dithered colour will appear to the eye.

        Dithering is used to create patterns for use as backgrounds,
        fills and shading, as well as for creating {halftones} for
        printing.  It is also used in {anti-aliasing} in order to make
        jagged lines appear smoother on screen.

        (1994-11-02)

Ditto Drive

        <hardware, storage> The Ditto {tape drives} range in capacity
        from 120 {megabytes} to 1.6 {gigabytes} ({data compression}
        can roughly double these figures).  The newer devices are
        designed for special tapes, though they will read standard
        tape types.

        The largest of tape stores up 3.2 {GB}.  Using an enhanced
        {floppy drive} card the transfer rate approaches the claimed
        19 {MB}/minute.  External {parallel} port versions are also
        available.

        {Compatibility details
        (http://www.iomega.com/support/techs/ditto/3040.html)}.

        (1997-03-26)

diverge

        If a series of approximations to some value get progressively
        further from it then the series is said to diverge.

        The {reduction} of some term under some {evaluation strategy}
        diverges if it does not reach a {normal form} after a finite
        number of reductions.

        (1994-12-08)

divisor

        A quantity that evenly divides another quantity.

        Unless otherwise stated, use of this term implies that the
        quantities involved are integers.  (For non-integers, the more
        general term {factor} may be more appropriate.)

         Example: 3 is a divisor of 15.
         Example: 3 is not a divisor of 14.

        (1997-03-07)

dj

        <networking> The {country code} for Djibouti.

        (1999-01-27)

DJGPP

        <tool> A 32-bit {GNU} {C}/{C++}/etc development system for
        {MS-DOS}.

        {Home (http://www.delorie.com/djgpp/)}

        Address: DJ Delorie, Rochester, NH, USA.

        (1995-04-10)

DjVu

        <application, compression, file format, graphics, World-Wide
        Web> (pronounced like "deja vu") An {image compression}
        {algorithm} and software developped by {Yann LeCun}'s research
        group at {AT&T Labs}, which provides high {resolution}
        {digital images} for distribution over the {Internet}.  DjVu
        is five to 20 times more efficient than {JPEG} or {GIF}.  A
        free {web browser} {plug-in} allows users to display DjVu
        images.

        {Home (http://djvu.research.att.com/)}.

        (1999-10-07)

DK

        {Datakit}

dk

        <networking> The {country code} for Denmark.

        (1999-01-27)

DL/1

        Query language, linear keyword.

DLC

        {Data Link Control}

DLCI

        {Data Link Control Identifier}

        [Is this correct?]

        (1997-03-01)

DLE

        <character> Data Link Escape, the {mnemonic} for {ASCII} 16.

        (1996-06-24)

DLG

        (DFA-based Lexical analyser Generator) The {lexical analyser}
        generator in the {Purdue Compiler-Construction Tool Set}.

DL/I

        The data manipulation language of IMS.

DLL

        1. {Data Link Layer}.

        2. {Dynamically linked library}.

        3. Dial Long Line equipment.

DLM

        Distributed Lock Manager on distributed VMS systems.

DLP

        <language> {Distributed Logic Programming}.

        (1996-01-07)

DLPI

        {Data Link Provider Interface}

DLT

        {Digital Linear Tape}

DLUR/DLUS

        <networking> Dependent Logical Unit Requester/Server.  The
        DLUR function is an {APPN} enhancement for an end node or
        network node that supports dependent {LU}s.  The DLUS function
        is a product feature of an {interchange node} or a {T5}
        network node supporting {session services} extensions.

        {(http://booksrv2.raleigh.ibm.com/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/DLU
R7/)}.

        (1997-05-08)

DLZ1

        {Digital Lempel Ziv 1}

dm

        <networking> The {country code} for Dominica.

        (1999-01-27)

DMA

        {Direct Memory Access}

DMAD

        Diagnostic Machine Aid-Digital.  A system for functional
        testing of digital devices.

        ["DMAD M/MM Manual", BR-8392, Raytheon Co. (Oct 1973)]

        (1994-11-02)

dmake

        Required by {uC++}.

        {(ftp://plg.uwaterloo.ca/pub/dmake/dmake38.tar.Z)}

        [What is it?]

        (1994-11-02)

DMALGOL

        {ALGOL} with extensions to interface to {DMS II}, the
        {Burroughs} {database}.

        (1995-02-22)

DME

        {Distributed Management Environment}

DMI

        {Desktop Management Interface}

DML

        <language>

        1. {Data Manipulation Language}.

        2. {Data Management Language}.

        3. ["DML: A Meta-language and System for the Generation of
        Practical and Efficient Compilers from Denotational
        Specifications", M. Pettersson et al, IEEE Conf Comp Langs,
        1992].

        (1999-04-27)

DMM

        {Digital Multimeter}

DMTF

        {Desktop Management Task Force}

DMZ

        {De-Militarised Zone}

DNA computing

        <architecture> The use of DNA molecules to encode
        computational problems.  Standard operations of molecular
        biology can then be used to solve some {NP-hard} {search
        problems} in parallel using a very large number of molecules.
        The exponential scaling of NP-hard problems still remains, so
        this method will require a huge amount of DNA to solve large
        problems.

        [L. M. Adleman, "Molecular Computation of Solutions to
        Combinatorial Problems", Science 266:1021-1024, 1994].

        (1997-02-11)

DNF

        {disjunctive normal form}

DNIS

        {Dialled Number Identification Service}

DNOS

        {Distributed Network Operating System}

DNS

        1. {Domain Name System}.

        2. Distributed Name Service.  See {DECdns}.

do

        1. <programming> {repeat loop}.

        2. <networking> The {country code} for Dominican Republic.

        (1999-06-10)

DOA

        <jargon> Dead on arrival.  A piece of {hardware} has never
        worked.

        (1996-11-28)

Doc

        {Directed Oc}

doc

        /dok/ Common spoken and written shorthand for "documentation".
        Often used in the plural "docs" and in the construction "doc
        file" (i.e. documentation available on-line).

DOCMaker

        <text, tool, product> An application for the {Apple}
        {Macintosh} which creates stand-alone, self-running document
        {files}.  It features scrollable and re-sizable windows,
        graphics, varied text styles and {fonts}, full printing
        capability, and links to other {software} and {information}.

        Companies such as Federal Express, GTE, {Hewlett-Packard},
        {Iomega}, {Adobe Systems, Inc.}, {Apple Computer} and
        {Aladdin} use DOCMaker to distribute disk-based
        {documentation} with their products.

        {(http://www.hsv.tis.net/~greenmtn/docm1.html)}

        (1998-01-27)

doco

        <jargon> /do'koh/ 1. (In-house jargon at Symbolics) A
        documentation writer.

        See also {devo} and {mango}.

        2. (UK) A short technical document.  A "doco" is often not the
        documentation passed to management.

        Compare {doc}.

        (1999-10-08)

document

        A term used on some systems (e.g. {Intermedia}) for a
        {hypertext} {node}.  It is sometimes used for a collection of
        nodes on related topics, possibly stored or distributed as
        one.

documentation

        The multiple kilograms of macerated, pounded, steamed,
        bleached, and pressed trees that accompany most modern
        software or hardware products (see also {tree-killer}).
        Hackers seldom read paper documentation and (too) often resist
        writing it; they prefer theirs to be terse and on-line.  A
        common comment on this predilection is "You can't {grep} dead
        trees".  See {drool-proof paper}, {verbiage}, {treeware}.

Document Examiner

        <hypertext, tool> A high-performance {hypertext} system by
        {Symbolics} that provides on-line access to their user
        documentation.

        (1995-04-16)

Document Image Processing

        (DIP) Storage, management and retrieval of {image}s.

        (1994-11-11)

Document Style Semantics and Specification Language

        (DSSSL) An {ISO} {standard} under preparation, addressing the
        {semantics} of high-quality composition in a manner
        independent of particular formatting systems or processes.
        DSSSL is intended as a complementary standard to {SGML} for
        the specification of semantics.

Document Type Definition

        <text, standard> (DTD) The definition of a document type in
        {SGML}, consisting of a set of {mark-up} tags and their
        interpretation.

        {HTML DTD (http://www.w3.org/pub/WWW/MarkUp/Cougar/HTML.dtd)}.

        (1994-12-08)

DOCUS

        Display Oriented Computer Usage System.  Interactive system
        using push buttons.  Sammet 1969, p.678

DoD

        {Department of Defense}

DoD-1

        Unofficial name of the language that became Ada.

dodgy

        Synonym with {flaky}.  Preferred outside the US

DOD-STD-2167A

        <standard> A {DoD} {standard} specifying the overall process
        for the development and documentation of mission-critical
        software systems.

        (1996-05-28)

DoD-STD-2168

        <standard> A {DoD} {standard} for software quality assurance
        procedures.

        (1996-05-29)

DOE

        Distributed Object Environment: a distributed object-oriented
        application framework from SunSoft.

DOF

        {degrees of freedom}

dogcow

        /dog'kow/  See {Moof}.

dogpile

        ({Usenet}, probably from mainstream "puppy pile") When many
        people post unfriendly responses in short order to a single
        posting, they are sometimes said to "dogpile" or "dogpile on"
        the person to whom they're responding.  For example, when a
        religious missionary posts a simplistic appeal to alt.atheism,
        he can expect to be dogpiled.

        (1994-12-08)

dogwash

        /dog'wosh/ (A quip in the "urgency" field of a very optional
        software change request, ca. 1982.  It was something like
        "Urgency: Wash your dog first") A project of minimal priority,
        undertaken as an escape from more serious work.  Many games
        and much {freeware} get written this way, including {this
        dictionary}.

        (1994-12-08)

DOL

        Display Oriented Language.  Subsystem of DOCUS.  Sammet 1969,
        p.678.

dollar

        $

        Common: {ITU-T}: dollar sign.  Rare: currency symbol;
        buck; cash; string (from BASIC); escape (when used as the echo
        of ASCII ESC); ding; cache; {INTERCAL}: big money.

        (1995-03-06)

do loop

        {repeat loop}

domain

        1. <mathematics> In the theory of functions, the set of
        argument values for which a {function} is defined.

        See {domain theory}.

        2. <networking> On the {Internet}, "domain" is most commonly
        used to refer to a group of computers whose {hostnames} share
        a common suffix, the domain name.  The last component of this
        is the {top-level domain}.

        See {administrative domain}, {Domain Name System}, {fully
        qualified domain name}.

        3. {Distributed Operating Multi Access Interactive Network}.

        4. <programming> A specific phase of the {software life cycle}
        in which a developer works.  Domains define developers' and
        users' areas of responsibility and the scope of possible
        relationships between products.

        5. The subject or market in which a piece of software is
        designed to work.

        (1997-12-26)

domain address

        <networking> The name of a {host} on the {Internet} belonging
        to the {hierarchy} of Internet {domain}s.

        (1994-10-27)

Domain Analysis

        <systems analysis> 1. Determining the operations, data
        objects, properties and {abstractions} appropriate for
        designing solutions to problems in a given {domain}.

        2. The {domain engineering} activity in which domain knowledge
        is studied and formalised as a domain definition and a domain
        specification.  A {software reuse} approach that involves
        combining software components, subsystems, etc., into a single
        application system.

        3. The process of identifying, collecting organising,
        analysing and representing a {domain model} and software
        architecture from the study of existing systems, underlying
        theory, emerging technology and development histories within
        the domain of interest.

        4. The analysis of systems within a domain to discover
        commonalities and differences among them.

        (1997-12-26)

domain architecture

        <systems analysis> A generic, organisational structure or
        design for software systems in a {domain}.  The domain
        architecture contains the designs that are intended to satisfy
        requirements specified in the {domain model}.  A domain
        architecture can be adapted to create designs for software
        systems within a domain and also provides a framework for
        configuring {assets} within individual software systems.

        (1997-12-26)

Domain Architecture Model

        <systems analysis> A set of software architectures generic to
        a {domain} that define organising frameworks for constructing
        new application designs and implementations within the domain,
        consistent with the domain requirements model.

        (1997-12-26)

domain calculus

        <database> A form of {relational calculus} in which {scalar}
        variables take values drawn from a given {domain}.

        Examples of the domain calculus are {ILL}, {FQL}, {DEDUCE} and
        the well known {Query By Example} (QBE).  {INGRES} is a
        {relational DBMS} whose {DML} is based on the relational
        calculus.

domain engineering

        <systems analysis> 1. The development and evolution of
        {domain} specific knowledge and artifacts to support the
        development and evolution of systems in the domain.  Domain
        engineering includes engineering of {domain models},
        components, methods and tools and may also include {asset
        management}.

        2. The engineering process of analysing and modeling a domain,
        designing and modeling a generic solution architecture for a
        product line within that domain, implementing and using
        reusable components of that architecture and maintaining and
        evolving the domain, architecture and implementation
        models.

        3. A reuse-based approach to defining the scope ({domain
        definition}), specifying the structure ({domain architecture})
        and building the Assets (requirements, designs, software code,
        documentation) for a class of systems, subsystems or
        applications.  Domain engineering can include domain
        definition, domain analysis, developing the domain
        architecture domain implementation.

domainist

        <jargon> /doh-mayn'ist/ 1. Said of a domain address (as
        opposed to a {bang path}) because the part to the right of the
        "@" specifies a nested series of "domains"; for example,
        esr@snark.thyrsus.com specifies the machine called snark in
        the subdomain called thyrsus within the top-level domain
        called com.  See also {big-endian}.

        2. Said of a site, mailer or routing program which knows how
        to handle domainist addresses.

        3. Said of a person (especially a site admin) who prefers
        domain addressing, supports a domainist mailer, or
        proselytises for domainist addressing and disdains {bang
        paths}.  This term is now (1993) semi-obsolete, as most sites
        have converted.

        (1995-04-21)

domain maturity

        <systems analysis> The level of stability and depth of
        understanding that has been achieved in an area for which
        {applications} are developed.

        (1997-12-26)

domain model

        <systems analysis> 1. A definition of the functions, objects,
        data, requirements, relationships and variations in a
        particular {domain}.

        2. A product of {domain analysis} which provides a
        representation of the requirements of the domain.  The domain
        model identifies and describes the structure of data, flow of
        information, functions, constraints and controls within the
        Domain that are included in software systems in the domain.
        The Domain Model describes commonalities and variabilities
        among requirements for software systems in the domain.

        (1997-12-26)

Domain Name Server

        <spelling> {Domain Name System}.

        (1997-12-15)

Domain Name System

        <networking> (DNS) A general-purpose distributed, replicated,
        data query service chiefly used on {Internet} for translating
        {hostnames} into {Internet addresses}.  Also, the style of
        {hostname} used on the Internet, though such a name is
        properly called a {fully qualified domain name}.  DNS can be
        configured to use a sequence of name servers, based on the
        domains in the name being looked for, until a match is found.

        The name resolution client (e.g. Unix's gethostbyname()
        library function) can be configured to search for host
        information in the following order: first in the local
        /etc/hosts file, second in {NIS} and third in DNS.  This
        sequencing of Naming Services is sometimes called "name
        service switching".  Under {Solaris} is configured in the file
        /etc/nsswitch.conf.

        DNS can be queried interactively using the command {nslookup}.
        It is defined in {STD 13}, {RFC 1034} and {RFC 1035}.

        Domain Name System

        {BIND} is a common DNS server.

        {Info from Virtual Office, Inc.
        (http://virtual.office.com/domains.html)}.

        (1997-12-15)

domain selection

        <systems analysis> The prioritisation and selection of one or
        more {domains} for which specific {software reuse} engineering
        projects are to be initiated.

        (1997-12-26)

Domain Software Engineering Environment

        <programming> (DSEE) A proprietary {CASE} framework and
        {configuration management} system from {Apollo}.

        (1996-05-29)

domain-specific language

        <language> A machine-processable language whose terms are
        derived from a {domain model} and that is used for the
        definition of components or software architectures supporting
        that domain.  A domain-specific language is often used as
        input to an application generator.

        (1997-12-26)

domain theory

        <theory> A branch of mathematics introduced by Dana Scott in
        1970 as a mathematical theory of programming languages, and
        for nearly a quarter of a century developed almost exclusively
        in connection with {denotational semantics} in computer
        science.

        In {denotational semantics} of programming languages, the
        meaning of a program is taken to be an element of a domain.  A
        domain is a mathematical structure consisting of a set of
        values (or "points") and an ordering relation, <= on those
        values.  Domain theory is the study of such structures.

        ("<=" is written in {LaTeX} as {\subseteq})

        Different domains correspond to the different types of object
        with which a program deals.  In a language containing
        functions, we might have a domain X -> Y which is the set of
        functions from domain X to domain Y with the ordering f <= g
        iff for all x in X, f x <= g x.  In the {pure lambda-calculus}
        all objects are functions or {application}s of functions to
        other functions.  To represent the meaning of such programs,
        we must solve the {recursive} equation over domains,

                D = D -> D

        which states that domain D is ({isomorphic} to) some {function
        space} from D to itself.  I.e. it is a {fixed point} D = F(D)
        for some operator F that takes a domain D to D -> D.  The
        equivalent equation has no non-trivial solution in {set
        theory}.

        There are many definitions of domains, with different
        properties and suitable for different purposes.  One commonly
        used definition is that of Scott domains, often simply called
        domains, which are {omega-algebraic}, {consistently complete}
        {CPO}s.

        There are domain-theoretic computational models in other
        branches of mathematics including {dynamical system}s,
        {fractal}s, {measure theory}, {integration theory},
        {probability theory} and {stochastic process}es.

        See also {abstract interpretation}, {bottom}, {pointed
        domain}.

DOMF

        Distributed Object Management Facility.

        An {OMG}-compliant object management system; part of {DOE}.
        Produced by {SunSoft}.

        (1994-11-04)

Donald Knuth

        <person> Donald E. Knuth, the author of the {TeX} document
        formatting system, {Metafont} its {font}-design program and
        the 3 volume computer science "Bible" of {algorithms}, "The
        Art of Computer Programming".

        Knuth suggested the name "{Backus-Naur Form}" and was also
        involved in the {SOL} simulation language, and developed the
        {WEB} {literate programming} system.

        See also {MIX}, {Turingol}.

        (1994-11-04)

dongle

        <hardware, security> /dong'gl/ (From "dangle" (because it
        dangles off the back of the computer)?) A security or {copy
        protection} device for commercial {microcomputer} programs
        that must be connected to an {I/O port} of the computer while
        the program is run.  Programs that use a dongle query the port
        at start-up and at programmed intervals thereafter, and
        terminate if it does not respond with the expected validation
        code.

        One common form consisted of a serialised {EPROM} and some
        drivers in a {D-25} connector shell.

        Dongles attempt to combat {software theft} by ensuring that,
        while users can still make copies of the program (e.g. for
        {backup}), they must buy one dongle for each simultaneous use
        of the program.

        The idea was clever, but initially unpopular with users who
        disliked tying up a port this way.  By 1993 almost all dongles
        passed data through transparently while monitoring for their
        particular {magic} codes (and combinations of status lines)
        with minimal if any interference with devices further down the
        line.  This innovation was necessary to allow {daisy-chained}
        dongles for multiple pieces of software.

        In 1998, dongles and other copy protection systems are fairly
        uncommon for {Microsoft Windows} software but one engineer in
        a print and {CADD} bureau reports that their {Macintosh}
        computers typically run seven dongles: After Effects, Electric
        Image, two for Media 100, Ultimatte, Elastic Reality and CADD.
        These dongles are made for the Mac's daisy-chainable {ADB}
        port.

        The term is used, by extension, for any physical electronic
        key or transferable ID required for a program to function.
        Common variations on this theme have used the {parallel port}
        or even the {joystick} port or a {dongle-disk}.

        An early 1992 advertisment from Rainbow Technologies (a
        manufacturer of dongles) claimed that the word derived from
        "Don Gall", the alleged inventor of the device.  The company's
        receptionist however said that the story was a myth invented
        for the ad.

        (1998-12-13)

dongle-disk

        /don'gl disk/ (Or "key disk") A kind of {dongle} consisting of
        a special {floppy disk} that is required in order to perform
        some task.  Some contain special coding that allows an
        application to identify it uniquely, others *are* special code
        that does something that normally-resident programs don't or
        can't.

        For example, {AT&T}'s "Unix PC" would only come up in {root
        mode} with a special boot disk.

        (1998-12-13)

Don't do that then!

        <humour> (From an old doctor's office joke about a patient
        with a trivial complaint) A stock response to a user
        complaint.  "When I type control-S, the whole system comes to
        a halt for thirty seconds."  "Well don't do that then!"

        (1998-12-13)

donuts

        (Obsolete) A collective noun for any set of memory bits.  This
        usage is extremely archaic and may no longer be live jargon;
        it dates from the days of {ferrite core memories} in which
        each bit was implemented by a doughnut-shaped magnetic
        {flip-flop}.

DOOM

        <games> A simulated 3D moster-hunting action game for {IBM
        PC}s, created and published by {id Software}.  The original
        press release was dated January 1993.  A cut-down shareware
        version v1.0 was released on 10 December 1993 and again with
        some bug-fixes, as v1.4 in June 1994.

        DOOM is similar to Wolfenstein 3d (id Software, Apogee) but
        has better {texture mapping}; walls can be at any angle, of
        any thickness and have windows; lighting can fade into the
        distance or come from point sources; floors and ceilings can
        be of any height; many surfaces are animated; up to four
        players can play over a network or two by serial link; it has
        a high {frame rate} (comparable to TV on a {486}/33); DOOM
        isn't just a collection of connected closed rooms like
        Wolfenstein but sounds can travel anywhere and alert monsters
        of your approach.

        The shareware version is available from these sites:
        {Cactus(ftp://cactus.org/pub/IHHD/multi-player/)},
        {Manitoba(ftp://ftp.cc.umanitoba.ca/pub/doom/)},
        {UK(ftp://ftp.demon.co.uk/pub/ibmpc/games/id/)},
        {South Africa(ftp://ftp.sun.ac.za/pub/msdos/games/id/)},
        {UWP ftp(ftp://archive.uwp.edu/pub/msdos/games/id/)},
        {UWP http(http://archive.uwp.edu/pub/msdos/games/id/)},
        {Finland(ftp://ftp.funet.fi/pub/msdos/games/id)},
        {Washington(ftp://wuarchive.wustl.edu/pub/MSDOS_UPLOADS/games/doom)}.

        A {FAQ} by Hank Leukart <ap641@cleveland.freenet.edu>: {UWP
        (ftp://ftp.uwp.edu/pub/msdos/games/id/home-brew/doom)},
        {Washington
        (ftp://wuarchive.wustl.edu/pub/MSDOS_UPLOADS/games/doomstuff)}.
        {FAQ on WWW (http://venom.st.hmc.edu/~tkelly/doomfaq/intro.html)}.
        {Other links (http://www.gamesdomain.co.uk/descript/doom.html)}.

        {Usenet} newsgroups: {news:rec.games.computer.doom.announce},
        {news:rec.games.computer.doom.editing},
        {news:rec.games.computer.doom.help},
        {news:rec.games.computer.doom.misc},
        {news:rec.games.computer.doom.playing}, {news:alt.games.doom},
        {news:comp.sys.ibm.pc.games.action},
        {news:comp.sys.ibm.pc.games.announce},
        {news:comp.sys.ibm.pc.games.misc}.

        Mailing List: <listserv@cedar.univie.ac.at> ("sub DOOML" in
        the message body, no subject).

        Telephone: +44 (1222) 362 361 - the UK's first multi-player
        DOOM and games server.

        (1994-12-14)

DOORS

        {Dynamic Object Oriented Requirements System}

doorstop

        Used to describe equipment that is non-functional and halfway
        expected to remain so, especially obsolete equipment kept
        around for political reasons or ostensibly as a backup.  "When
        we get another Wyse-50 in here, that ADM 3 will turn into a
        doorstop."

        Compare {boat anchor}.

Dorito Syndrome

        <humour> Feelings of emptiness and dissatisfaction triggered
        by addictive substances that lack nutritional content.  "I
        just spent six hours surfing the Web, and now I've got a bad
        case of Dorito Syndrome."

        (1997-03-30)

DORUM

        {Draft Once ReUse Many}

DOS

        <operating system> 1. {IBM}'s {Disk Operating System}.

        <operating system> 2. Any {disk operating system}.

        2. The common abbreviation for {MS-DOS}.

        (1999-01-20)

DOS/360

        <operating system> The {operating system} announced by {IBM}
        at the low end for the {System/360} in 1964 and delivered in
        1965 or 1966.

        Following the failure of {OS}, IBM designed DOS for the low
        end machines, able to run in 16KB(?) and 64KB memory.

        DOS/360 used three {memory partitions}, but it had no serious
        {memory protection}.  The three partitions were not
        specialised, but frequently one was used for {spooling}
        {punched cards} to {disk}, another one for {batch job}
        execution and another for spooling disk to printers.

        With DOS/VS, introduced in 1970, the number of partitions was
        increased, {virtual memory} was introduced and the minimum
        memory requirements increased.

        Later they released DOS/VSE and ESA/VSE.  DOS/360 successors
        are still alive today (1997) though not as popular as in the
        late 1960s.

        Contrary to the Hacker's {Jargon File}, {GECOS} was not copied
        from DOS/360.

        (1997-09-22)

DOS Protected Mode Interface

        (DPMI) The method which {Microsoft} prescribes for a {DOS}
        program to access {extended memory} under a {multitasking}
        environment, e.g. {Microsoft Windows}.  This service is
        provided by the HIMEM.SYS driver on {IBM PC}s.

        The DPMI specification was finalized in 1990.  The
        specification itself is available from {Intel Literature
        Sales}.

        VCPI (Virtual Control Program Interface), which was an
        alternative, and incompatible method for doing the same thing.

        ["Windows 3.1 Secrets", Brian Livingston, 1992, ISBN
        1-878058-43-6, pages 280-281 and 302].

        (1995-01-12)

DOS requester

        <networking> An {MS-DOS} {client} that provides transparent
        redirection of printing and file accesses to a network
        {server}.  It handles levels 3, 4 and 5 of the {Open Systems
        Interconnect} seven layer model.

        A DOS requester under {Novell NetWare} will interface to a
        {network card} driver with an {ODI} interface, and will be
        either a single executable (netx.exe) or a set of {VLM}s that
        are loaded on demand.

        In the {IBM}/{Microsoft} {LAN Manager}/{SMB} world, where
        the name {DOS redirector} is more common, there will be an
        {NDIS} interface driver and a net.exe executable.

        {NetWare Client 32 for DOS/Windows
        (http://developer.novell.com/research/appnotes/1996/may/01/)}.

        {(http://www.cad.strath.ac.uk/~davidm/projects/guide/requester.html)}.

        (1998-01-05)

dot

        <character> {decimal point}.

        See also {dot file}, {dot notation}.

        (1995-03-14)

dot address

        An {Internet address} in {dot notation}.

dot file

        <operating system, convention> A {Unix} {application program}
        configuration file.  On {Unix}, files named with a leading dot
        are not normally shown in directory listings.  Many programs
        define one or more dot files in which startup or configuration
        information may be optionally recorded; a user can customise
        the program's behaviour by creating the appropriate file in
        the current or {home directory}.

        Dot files tend to proliferate - with every nontrivial
        application program defining at least one, a user's home
        directory can be filled with scores of dot files, without the
        user really being aware of it.  Common examples are .profile,
        .cshrc, .login, .emacs, .mailrc, .forward, .newsrc, .plan,
        .rhosts, .sig, .xsession.

        See also {profile}, {rc file}.

        (1994-12-07)

dot matrix printer

        <hardware, printer> A kind of printer with a vertical column
        of up to 48 small closely packed needles or "pins" each of
        which can be individually forced forwards to press an ink
        ribbon against the paper.  The print head is repeatedly
        scanned across the page and different combinations of needles
        activated at each point.

        Dot matrix printers are noisy compared to {non-impact
        printer}s.

        [Other pin arrangements?]

        (1995-03-14)

dot notation

        {Berkeley Unix} notation for {Internet address}es.  An
        {Internet address} in dot notation consists of one to four
        numbers in {hexadecimal} (leading 0x), {octal} (leading 0) or
        decimal.  It represents a 32-bit address.  Each leading number
        represents eight bits of the address (high byte first) and the
        last number represents the rest.  E.g. address 0x25.32.0xab
        represents 0x252000ab.  By far the most common form is four
        decimal numbers, e.g. 146.169.22.42.  Many commands will accept
        an address in dot notation in place of a hostname.

        (1994-12-07)

dot pitch

        <hardware> The distance between a dot and the closest dot of
        the same colour (red, green or blue) on a color {CRT}.  Dot
        pitch is typically from 0.28 to 0.51 mm but large presentation
        monitors may go up to 1.0 mm.  The smaller the dot pitch, the
        crisper the image, 0.31 or less provides a sharp image,
        especially when displaying text.

        Dot pitch measurements between conventional tubes and {Sony}'s
        {Trinitron} tubes are roughly, but not exactly comparable.
        Sony's {CRT}s use vertical stripes, not dots, and its
        measurement is the distance between stripes, not the diagonal
        distance between dots.

        ["The Computer Glossary", Alan Freedman].

        (1995-12-14)

double bucky

        Using both the CTRL and META keys.  "The command to burn all
        LEDs is double bucky F."

        This term originated on the Stanford extended-ASCII keyboard,
        and was later taken up by users of the {space-cadet keyboard}
        at MIT.  A typical MIT comment was that the Stanford {bucky
        bits} (control and meta shifting keys) were nice, but there
        weren't enough of them; you could type only 512 different
        characters on a Stanford keyboard.  An obvious way to address
        this was simply to add more shifting keys, and this was
        eventually done; but a keyboard with that many shifting keys
        is hard on touch-typists, who don't like to move their hands
        away from the home position on the keyboard.  It was
        half-seriously suggested that the extra shifting keys be
        implemented as pedals; typing on such a keyboard would be very
        much like playing a full pipe organ.  This idea is mentioned
        in a parody of a very fine song by Jeffrey Moss called "Rubber
        Duckie", which was published in "The Sesame Street Songbook"
        (Simon and Schuster 1971, ISBN 0-671-21036-X).  These lyrics
        were written on May 27, 1978, in celebration of the Stanford
        keyboard:

                          Double Bucky

          Double bucky, you're the one!
          You make my keyboard lots of fun.
              Double bucky, an additional bit or two:
          (Vo-vo-de-o!)
          Control and meta, side by side,
          Augmented ASCII, nine bits wide!
              Double bucky!  Half a thousand glyphs, plus a few!
                  Oh,
                  I sure wish that I
                  Had a couple of
                      Bits more!
                  Perhaps a
                  Set of pedals to
                  Make the number of
                      Bits four:
                  Double double bucky!
          Double bucky, left and right
          OR'd together, outta sight!
              Double bucky, I'd like a whole word of
              Double bucky, I'm happy I heard of
              Double bucky, I'd like a whole word of you!

          - The Great Quux

        (With apologies to Jeffrey Moss.  This, by the way, is an
        excellent example of computer {filk} --- ESR).

        See also {meta bit}, {cokebottle}, and {quadruple bucky}.

        (1994-12-07)

double-click

        <operating system> To click a {mouse} button twice in rapid
        succession without moving the mouse.  Often used as a
        shortcut, combining the actions of selecting, and then opening
        a document (or activating some other kind of object) within a
        {graphical user interface}.  Some {text editors} use
        double-click to select the word under the {mouse pointer}.

        (1997-03-21)

double DECkers

        Used to describe married couples in which both partners work
        for {Digital Equipment Corporation}.

        (1994-12-07)

double density

        {floppy disk}

doubled sig

        A {sig block} that has been included twice in a {Usenet}
        article or, less commonly, in an {electronic mail} message.
        An article or message with a doubled sig can be caused by
        improperly configured software.  More often, however, it
        reveals the author's lack of experience in electronic
        communication.

        See {BIFF}, {pseudo}.

        (1994-12-07)

double quote

        <character> '"' {ASCII} character 34.  Often used in
        programming languages to delimit strings.  In {Unix} {shell}s
        and {Perl} it delimits a string inside which variable
        substitution may occur.

        Common names: quote.  Rare: literal mark; double-glitch;
        {ITU-T}: quotation marks; {ITU-T}: dieresis; dirk; {INTERCAL}:
        rabbit-ears; double prime.

        (1995-03-28)

doubly linked list

        <programming> A data structure in which each element contains
        pointers to the next and previous elements in the list, thus
        forming a bidirectional linear list.

        (1995-03-28)

DOUGLAS

        An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-07)

Douglas Engelbart

        <person> The inventor(?) of the {mouse}.

        {(http://www2.bootstrap.org/dce-bio.htm)}.

        (1999-07-18)

DOW COMPILER

        An early system on the {Datatron 200} series.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-07)

down

        1. Not operating.  "The up escalator is down" is considered a
        humorous thing to say, and "The elevator is down" always
        means "The elevator isn't working" and never refers to what
        floor the elevator is on.  With respect to computers, this
        term has passed into the mainstream; the extension to other
        kinds of machine is still hackish.

        2. "go down" To stop functioning; usually said of the
        {system}.  The message from the {console} that every hacker
        hates to hear from the operator is "System going down in 5
        minutes".

        3. "take down", "bring down" To deactivate purposely, usually
        for repair work or {PM}.  "I'm taking the system down to work
        on that bug in the tape drive."  Occasionally one hears the
        word "down" by itself used as a verb in this sense.

        See {crash}; opposite: {up}.

        (1994-12-07)

download

        <jargon> To transfer data or (especially) code from one
        computer to another.  The distinction between downloading and
        uploading is hazy but downloading often refers to transfer
        from a larger "host" system (especially a {server} or
        {mainframe}) to a smaller "client" system, especially a
        {microcomputer} or specialised peripheral.

        Opposite: {upload}.

        However, note that ground-to-space communications has its own
        usage rule for this term.  Space-to-earth transmission is
        always "down" and the reverse "up" regardless of the relative
        size of the computers involved.  So far the in-space machines
        have invariably been smaller; thus the upload/download
        distinction has been reversed from its usual sense.

        (1994-12-07)

downloading

        {download}

downsizing

        <jargon> The process of moving an {application program} from a
        {mainframe} to a cheaper system, typically a {client-server}
        system.

        (1995-03-27)

downstream

        {upstream}

down-time

        <jargon> A period of time during which a (computer) system is
        not operational, due to a malfunction or maintenance.

        (1997-06-08)

downward closed

        {closure}

Downy cocktail

        {cationic cocktail}

DP

        1. {data processing}.

        According to hackers, use of the term marks one immediately as
        a {suit}.

        See {DPer}.

        2. {dot pitch}.

        3. {Dissociated Press}.

        (1996-07-22)

DPB

        /d*-pib'/ The {PDP-10} instruction "DePosit Byte" that inserts
        some bits into the middle of some other bits.  Hackish usage
        has been kept alive by the {Common LISP} function of the same
        name.

        (1994-12-07)

DPer

        /dee-pee-er/ Data Processor.  Hackers are absolutely amazed
        that {suit}s use this term self-referentially.  *Computers*
        process data, not people!

        See {DP}.

        (1994-12-07)

dpi

        Dots per inch.

        A measure of resolution for printers, scanners and displays.

        {Laser printer}s typically reach 300 DPI, though 600 DPI is
        becoming more common.  Commercial typesetters are usually
        around 1200 DPI.

        (1995-01-05)

DPL

        DECmmp Parallel Language.

        A {C}-like parallel language for the {DECmpp} machine.

        (1994-12-07)

DPL-82

        ["DPL-82: A Language for Distributed Processing", L. Ericson,
        Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.526-531].

        (1994-12-07)

DPLL

        {Digital Phase-Locked Loop}

DPMI

        {DOS Protected Mode Interface}

DPMS

        <hardware> {Display Power Management Signaling}.

        (1995-12-11)

DPN

        {Decomposed Petri Net}

DPP

        {Dining Philosophers Problem}

d-Prolog

        <language> A version of {Prolog} extended with {defeasible
        reasoning}.

        {(ftp://aisun1.ai.uga.edu/ai.prolog/)} for {MS-DOS} and {Unix}.

        (1994-12-07)

DPS

        1. <language, text> {Display PostScript}.

        2. <language> A {real-time} language with direct
        expression of timing requests.

        ["Language Constructs for Distributed Real-Time PRogramming",
        I. Lee et al Proc IEEE Real-Time Sys Symp pp.57-66 (Dec
        1985)].

        [What does it stand for?]

        (1995-03-28)

dpSather

        {Data-parallel} {Sather}.  Fine-grained {deterministic}
        parallelism.

        E-mail: <hws@csis.dit.csiro.au>.
        {(ftp://lynx.csis.dit.csiro.au/p/pub/ather/dpsather.papers)}.

DPSK

        <communications> {Differential Phase Shift Keying}.

DQDB

        {Distributed Queue Dual Bus}

draco

        A blend of {Pascal}, {C} and {ALGOL 68} developed by Chris
        Gray in 1987.  It has been implemented for {CP/M-80} and
        {Amiga}.

        (1994-11-04)

Draft Once ReUse Many

        <jargon> (DORUM) Reusing parts of a document to produce parts
        of an entirely new document.  The term normally refers to text
        documents but the practise is equally common in programming.

        (1998-05-09)

drag and drop

        A common method for manipulating files (and sometimes text)
        under a {graphical user interface} or {WIMP} environment.  The
        user moves the pointer over an icon representing a file and
        presses a mouse button.  He holds the button down while moving
        the pointer (dragging the file) to another place, usually a
        directory viewer or an icon for some {application program},
        and then releases the button (dropping the file).  The meaning
        of this action can often be modified by holding certain keys
        on the keyboard at the same time.

        Some systems also use this technique for objects other than
        files, e.g. portions of text in a {word processor}.

        The biggest problem with drag and drop is does it mean "copy"
        or "move"?  The answer to this question is not intuitively
        evident, and there is no consensus for which is the right
        answer.  The same vendor even makes it move in some cases and
        copy in others.  Not being sure whether an operation is copy
        or move will cause you to check very often, perhaps every time
        if you need to be certain.  Mistakes can be costly.  People
        make mistakes all the time with drag and drop.  {Human
        computer interaction} studies show a higher failure rate for
        such operations, but also a higher "forgiveness rate" (users
        think "silly me") than failures with commands (users think
        "stupid machine").  Overall, drag and drop took some 40 times
        longer to do than single-key commands.

        [Erik Naggum <erik@naggum.no>]

drag-n-drop

        <spelling> Stupid spelling of {drag and drop}.

        (1996-12-13)

DRAGON

        1. An {Esprit} project aimed at providing effective support to
        {reuse} in {real-time} distributed {Ada} {application
        program}s.

        2. An implementation language used by {BTI Computer Systems}.

        E-mail: Pat Helland <helland@hal.com>.

        (1994-12-08)

dragon

        [MIT] A program similar to a {daemon}, except that it is not
        invoked at all, but is instead used by the system to perform
        various secondary tasks.  A typical example would be an
        accounting program, which keeps track of who is logged in,
        accumulates load-average statistics, etc.  Under ITS, many
        terminals displayed a list of people logged in, where they
        were, what they were running, etc., along with some random
        picture (such as a unicorn, Snoopy or the Enterprise), which
        was generated by the "name dragon".  Use is rare outside
        {MIT}, under {Unix} and most other {operating system}s this
        would be called a "background {demon}" or {daemon}.  The
        best-known Unix example of a dragon is {cron}.  At {SAIL},
        they called this sort of thing a "phantom".

Dragon Book

        <publication> The classic text "Compilers: Principles,
        Techniques and Tools", by Alfred V. Aho, Ravi Sethi, and
        Jeffrey D.  Ullman (Addison-Wesley 1986; ISBN 0-201-10088-6).
        So called because of the cover design featuring a dragon
        labelled "complexity of compiler design" and a knight bearing
        the lance "LALR parser generator" among his other trappings.
        This one is more specifically known as the "Red Dragon Book"
        (1986); an earlier edition, sans Sethi and titled "Principles
        Of Compiler Design" (Alfred V. Aho and Jeffrey D. Ullman;
        Addison-Wesley, 1977; ISBN 0-201-00022-9), was the "Green
        Dragon Book" (1977).  (Also "New Dragon Book", "Old Dragon
        Book".)  The horsed knight and the Green Dragon were warily
        eying each other at a distance; now the knight is typing
        (wearing gauntlets!) at a terminal showing a video-game
        representation of the Red Dragon's head while the rest of the
        beast extends back in normal space.

        See also {book titles}.

        (1996-12-03)

DRAGOON

        A distributed concurrent {object-oriented} {Ada}-based
        language from the {Esprit} {DRAGON} project by Colin Atkinson
        <atkinson@cl.uh.edu>, Imperial College 1989.  (Now at
        University of Houston, Clear Lake).  Object-oriented
        programming for embeddable systems.  Presently implemented as
        an Ada {preprocessor}.  E-mail: <adimaio@vms.eurokom.ie>.

        ["Object-Oriented Reuse, Concurrency and Distribution: An
        Ada-Based Approach", C. Atkinson, A-W 1991, ISBN
        0-2015-6-5277].

drain

        [IBM] Synonym for {flush}.  Has a connotation of finality
        about it; one speaks of draining a device before taking it
        off-line.

DRAM

        {dynamic random access memory}

DRAM refresh

        <storage> The operation which cycles through a {DRAM} reading
        each row and writing it back again to compensate for the
        gradual leakage of charge from the {capacitors} which store
        the data.  This may be done by the {CPU} but is often done by
        a dedicated {memory controller}.

        (1997-02-23)

Drawing eXchange Format

        (DXF) A file format for graphical information, similar to
        {IGES}.  Commonly used by {CAD} systems like {AutoCAD}.

        (1994-12-08)

dread high bit disease

        A condition endemic to PRIME (also known as "PR1ME")
        minicomputers that results in all the characters having their
        high (0x80) bit ON rather than OFF.  This of course makes
        transporting files to other systems much more difficult, not
        to mention talking to true 8-bit devices.  Folklore had it
        that PRIME adopted the reversed-8-bit convention in order to
        save 25 cents per {serial line} per machine; PRIME old-timers,
        on the other hand, claim they inherited the disease from
        Honeywell via customer NASA's compatibility requirements and
        struggled heroically to cure it.  Whoever was responsible,
        this probably qualifies as one of the most cretinous design
        tradeoffs ever made.  See {meta bit}.  A few other machines
        have exhibited similar brain damage.

DRECNET

        /drek'net/ [Yiddish/German "dreck", meaning filth] Deliberate
        distortion of DECNET, a networking protocol used in the {VMS}
        community.  So called because DEC helped write the Ethernet
        specification and then (either stupidly or as a malignant
        customer-control tactic) violated that spec in the design of
        DRECNET in a way that made it incompatible.  See also
        {connector conspiracy}.

driver

        1. <operating system> {device driver}.

        2. <programming> The {main loop} of an event-processing
        program; the code that gets commands and dispatches them for
        execution.

        3. <tool> In the {TeX} world and the computerised typesetting
        world in general, a program that translates some
        device-independent or other common format to something a real
        device can actually understand.

drivers

        {driver}

Dr. James H. Clark

        <person> The founder of {Silicon Graphics, Inc.} and
        co-founder of {Netscape Communications Corporation}.

        (1998-05-21)

droid

        <abuse, robotics> (From "android", SF terminology for a
        humanoid robot of essentially biological (as opposed to
        mechanical or electronic) construction).  A person (especially
        a low-level bureaucrat or service-business employee)
        exhibiting most of the following characteristics: (a) naive
        trust in the wisdom of the parent organisation or "the
        system"; (b) a blind-faith propensity to believe obvious
        nonsense emitted by authority figures (or computers!); (c) a
        rule-governed mentality, one unwilling or unable to look
        beyond the "letter of the law" in exceptional situations; (d)
        a paralysing fear of official reprimand or worse if Procedures
        are not followed No Matter What; and (e) no interest in doing
        anything above or beyond the call of a very
        narrowly-interpreted duty, or in particular in fixing that
        which is broken; an "It's not my job, man" attitude.

        Typical droid positions include supermarket checkout assistant
        and bank clerk; the syndrome is also endemic in low-level
        government employees.  The implication is that the rules and
        official procedures constitute {software} that the droid is
        executing; problems arise when the software has not been
        properly debugged.  The term "droid mentality" is also used to
        describe the mind-set behind this behaviour.

        Compare {suit}, {marketroid}.

        (1995-09-27)

DROOL

        <games> Dave's Recycled Object-Oriented Language.  Language
        for writing adventure games.  An updated implementation of
        AdvSys.  {multiple inheritance}, garbage collection.

        ["Dave's Recycled OO Language", David Betz, Dr. Dobbs J, Oct
        1993, pp.74-78].

drool-proof paper

        <jargon> Documentation that has been obsessively {dumbed
        down}, to the point where only a {cretin} could bear to read
        it, is said to have succumbed to the "drool-proof paper
        syndrome" or to have been "written on drool-proof paper".  For
        example, this is an actual quote from {Apple Computer}'s
        LaserWriter manual: "Do not expose your LaserWriter to open
        fire or flame."

        (1997-06-23)

drop cable

        Wiring between a computer and its {Ethernet transceiver}.
        Maximum length if full-spec is 47m.

drop-down list

        {pull-down list}

drop-down menu

        {pull-down menu}

drop-ins

        [analogy with {drop-outs}] Spurious characters appearing on a
        terminal or console as a result of {line noise} or a system
        malfunction of some sort.  Especially used when these are
        interspersed with one's own typed input.

drop on the floor

        To react to an error condition by silently discarding messages
        or other valuable data.  "The gateway ran out of memory, so it
        just started dropping packets on the floor."  Also frequently
        used of faulty mail and netnews relay sites that lose
        messages.  See also {black hole}, {bit bucket}.

drop-outs

        1. A variety of "power glitch" (see {glitch}); momentary 0
        voltage on the electrical mains.

        2. Missing characters in typed input due to software
        malfunction or system saturation (one cause of such behaviour
        under {Unix} when a bad connection to a modem swamps the
        processor with spurious character interrupts; see {screaming
        tty}).

        3. Mental glitches; used as a way of describing those
        occasions when the mind just seems to shut down for a couple
        of beats.  See {glitch}, {fried}.

DRUCO I

        Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

drugged

        (Or "on drugs") 1. Conspicuously stupid, heading toward
        {brain-damaged}.  Often accompanied by a pantomime of toking a
        joint.

        2. Of hardware, very slow relative to normal performance.

drum

        Ancient slow, cylindrical magnetic media that were once
        state-of-the-art storage devices.  Under {BSD} {Unix} the disk
        partition used for swapping is still called "/dev/drum"; this
        has led to considerable humour and not a few straight-faced
        but utterly bogus "explanations" getting foisted on {newbie}s.

        See also "{The Story of Mel}".

        (1994-12-22)

drunk mouse syndrome

        (Also "mouse on drugs") A malady exhibited by the mouse
        pointing device of some computers.  The typical symptom is for
        the mouse cursor on the screen to move in random directions
        and not in sync with the motion of the actual mouse.  Can
        usually be corrected by unplugging the mouse and plugging it
        back again.  Another recommended fix for optical mice is to
        rotate your {mouse mat} 90 degrees.

        At {Xerox PARC} in the 1970s, most people kept a can of copier
        cleaner (isopropyl alcohol) at their desks.  When the steel
        ball on the mouse had picked up enough {cruft} to be
        unreliable, the mouse was doused in cleaner, which restored it
        for a while.  However, this operation left a fine residue that
        accelerated the accumulation of cruft, so the dousings became
        more and more frequent.  Finally, the mouse was declared
        "alcoholic" and sent to the clinic to be dried out in a CFC
        ultrasonic bath.

dry run

        <programming> To execute a program by hand, writing values of
        variables and other run-time data on paper, in order to check
        its operation or to track down a {bug}.  A dry run is an
        extreme form of {desk check} and is practical only for fairly
        simple programs and small amounts of data.

        (1996-05-13)

DS0

        <communications> The zeroth {DS level}, having a transmission
        rate of 64 kilobits per second, intended to carry one voice
        channel (a phone call).

        (1998-05-18)

DS1

        <communications> A {DS level} and {framing specification} for
        synchronous digital streams, over circuits in the North
        American {digital transmission hierarchy}, at the {T1}
        transmission rate of 1544000 bits per second ({baud}).

        In the US a DS1 "frame" is composed of 24 eight-bit {bytes}
        (commonly from 24 {DS0} sources, originally digitised
        voice-grade telephone signals), plus one {framing bit} (193
        bits).  8000 bytes per second come from each source, and thus
        8000 frames per second are transported by the DS1 signal.  The
        result is 193*8000 = 1,544,000 bits per second.

        In the original standard, the framing bits continuously
        repeated the sequence 110111001000, and such a 12-frame unit
        is called a super-frame.  In voice telephony, errors are
        acceptable (early standards allowed as much as one frame in
        six to be missing entirely), so the least significant bit in
        two of the 24 streams was used for signaling between network
        equipments.  This is called {robbed-bit signaling}.

        To promote error-free transmission, an alternative called the
        extended super-frame (ESF) of 24 frames was developed.  In
        this standard, six of the 24 framing bits provide a six bit
        {cyclic redundancy check} (CRC-6), and six provide the actual
        framing.  The other 12 form a virtual circuit of 4000 bits per
        second for use by the transmission equipment, for {call
        progress signals} such as busy, idle and ringing.  DS1 signals
        using ESF equipment are nearly error-free, because the CRC
        detects errors and allows automatic re-routing of connections.

        Compare {T-carrier systems}.

        [Kenneth Sherman, "Data Communications : a user's guide",
        third edition (1990), Reston/Prentice-Hall/Simon & Schuster].

        (1996-03-30)

DS1C

        <communications> A {DS level} and {framing specification} for
        digital signals in the North American digital transmission
        hierarchy.  A DS1C signal uses 48 {PCM} channels and has a
        transmission rate of 3.15 Megabits per second, twice that of
        {DS1}.

        DS1C uses two {DS1} signals combined and sent on a 3.152
        megabit per second {carrier} which allows 64 kilobits per
        second for synchronisation and {framing} using "{pulse
        stuffing}".  The channel 2 signal is logically inverted, and a
        framing bit is stuffed in two out of three code words,
        resulting in 26-bit information units.  The channels are
        interleaved and then scrambled by the addition {modulo} 2 of
        the signal with the previous bit.  Finally the bit stream is
        combined with a control bit sequence that permits the
        {demultiplexor} to function by preceding each 52 bits with one
        DS1C framing bit.  A series of 24 such 53-bit frames forms a
        1272-bit "M-frame".

        (1995-02-07)

DS2

        <communications> A {DS level} and {framing specification} for
        digital signals in the North American digital transmission
        hierarchy.  A DS2 signal uses 96 {PCM} channels and has a
        transmission rate of 6.31 Megabits per second, twice that of
        {DS1C}.

        (1995-02-07)

DS3

        <communications> The third {DS level}, a {framing
        specification} for digital signals in the North American
        digital transmission hierarchy.  A DS3 signal has a
        transmission rate of 44.736 Megabits per second.

        DS3 is used, for example, on {T3} synchronous {Integrated
        Services Digital Network} lines.

        (1995-01-12)

DSA

        {Directory System Agent}

DSE

        {Data Structure Editor}

DSEE

        {Domain Software Engineering Environment}

DSI

        {Delivered Source Instruction}

DSL

        1. <communications> {Digital Subscriber Line}.

        2. <language> {Digital Simulation Language}.

        3. <language> {Denotational Semantics Language}.

        (1996-10-13)

DS level

        <communications> (Digital Signal or Data Service level)
        Originally an {AT&T} classification of transmitting one or
        more voice conversations in one digital data stream.  The best
        known DS levels are {DS0} (a single conversation), {DS1} (24
        conversations multiplexed), {DS1C}, {DS2}, and {DS3}.

        By extension, the DS level can refer to the raw data rate
        necessary for transmission:

         DS0      64 Kb/s
         DS1   1.544 Mb/s
         DS1C  3.15  Mb/s
         DS2   6.31  Mb/s
         DS3  44.736 Mb/s
         DS4 274.1   Mb/s

        (where K and M signify multiplication by 1000 and 1000000,
        rather than powers of two).  In this sense it can be used to
        measure of data service rates classifying the user access
        rates for various point-to-point {WAN} technologies or
        standards (e.g. {X.25}, {SMDS}, {ISDN}, {ATM}, {PDH}).

        Japan uses the US standards for DS0 through DS2 but Japanese
        DS5 has roughly the circuit capacity of US DS4, while the
        European standards are rather different (see {E1}).  In
        the US all of the transmission rates are integral multiples of
        8000 bits per second but rates above DS1 are not necessarily
        integral multiples of 1,544 kb/s.

        (1998-05-18)

DSM

        1. Data Structure Manager.

        An {object-oriented} language by J.E. Rumbaugh and M.E. Loomis
        of {GE}, similar to {C++}.  It is used in implementation of
        {CAD}/{CAE} software.  DSM is written in DSM and {C} and
        produces {C} as output.

        ["DSM: An Object-Relationship Modeling Language", A. Shah et
        al, SIGPLAN Notices 24(10):191-202 (OOPSLA '89) (Oct 1989)].

        2. {DIGITAL Standard MUMPS}.

        (1995-01-10)

DSN

        {Digital Switched Network}

DSP

        {digital signal processing}

DSP32 Assembly Language

        A high-level assembly language for the DSP32
        Programmable DSP Chip.

DSP56000

        A {digital signal processing} chip from {Motorola}.

        An assembler called {a56} and a port of {gcc} called
        {dsp56k-gcc} are available.

DSP56001

        A {digital signal processing} chip from {Motorola}.

        An assembler called {a56} is available.

dsp56165-gcc

        A port of {gcc} version 1.40 to the {Motorola} {DSP56156} and
        {DSP56000} by Andrew Sterian <asterian@eecs.umich.edu>.

        {alt.sources}

dsp56k-gcc

        {Motorola}'s port of {gcc} version 1.37.1 to the {Motorola}
        {DSP56000}.

        {Finland
        (ftp://nic.funet.fi/pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z)}.
        {Australia
        (ftp://evans.ee.adfa.oz.au/pub/micros/56k/g56k.tar.Z)}.

DSP/C

        Numerical extension to C, for DSP applications.

        ["DSP/C: A Standard High Level Language for DSP and Numeric
        Processing", K. Leary & W.  Waddington, Proc ICASSP 90, Apr
        1990, pp.1065-1068].

DSPL

        {Digital Signal Processing Language}

DSR

        {Dynamic Service Register}

DSS

        1. {Decision Support Systems}.

        2. {Digital Signature Standard}.

        (1995-11-16)

DSSSL

        {Document Style Semantics and Specification Language}

DSU

        1. <communications> {Digital Service Unit}.

        2. {Disk Subsystem Unit} ({Artecon}).

        3. <humour> {Dwarf Storage Unit}.

        (1996-12-01)

DSVD

        {Digital Simultaneous Voice and Data}

DSW

        {penis war}

DTALGOL

        Decision Table ALGOL.

        An {ALGOL} superset from {Victoria University}, Wellington
        that added {decision table}s and runs on {Burroughs Large
        System}.

        (1995-02-02)

DTD

        {Document Type Definition}

DTE

        {Data Terminal Equipment}

DT&E

        {Developmental Test and Evaluation}

DTLS

        {Descriptive Top-Level Specification}

DTMF

        {Dual Tone Multi Frequency}

DTP

        {desktop publishing}

DTS

        {Distributed Time Service}

DTSS

        <operating system> The first commercial {time-sharing} system,
        created by {Dartmouth College} and sold by {General Electric}
        around 1967.

        GE's Information Service Divsion (ISD) marketed DTSS which was
        running on a system called {GE-265} (a combination of the
        {front-end processor} the {Datanet-30} and the {GE-235}).

        DTSS was ported (and significantly improved by GE ISD around
        1965-1966 on a combination of DN-30 and {GE-635}).  This
        proprietary system, called Mk-II, later improved by GE and
        renamed Mk-III, is still working today (1997) as part of the
        GE service bureau that also includes {IBM} and {Unix}
        computers.

        (1997-09-16)

D-type

        1. <hardware> A type of computer peripheral connector so named
        because one side is shorter (with one less pin) than the other
        giving a (squarish) "D" shape.  The connectors have two rows
        of pins (or holes).  Common types are 25-way (13+12 pins) and
        9-way (5+4 pins).  They are often used for serial lines,
        especially {RS-232}.

        (1995-01-05)

        2. {D-type flip-flop}.

D-type flip-flop

        <hardware> A digital logic device that stores the status of
        its "D" input whenever its clock input makes a certain
        transition (low to high or high to low).  The output, "Q",
        shows the currently stored value.

        Compare {J-K flip-flop}.

        (1995-03-28)

DUA

        {Directory User Agent}

dual

        <mathematics> Every field of mathematics has a different
        meaning of dual.  Loosely, where there is some binary symmetry
        of a theory, the image of what you look at normally under this
        symmetry is referred to as the dual of your normal things.

        In linear algebra for example, for any {vector space} V, over
        a {field}, F, the vector space of {linear maps} from V to F is
        known as the dual of V.  It can be shown that if V is
        finite-dimensional, V and its dual are {isomorphic} (though no
        isomorphism between them is any more natural than any other).

        There is a natural {embedding} of any vector space in the dual
        of its dual:

            V -> V'': v -> (V': w -> wv : F)

        (x' is normally written as x with a horizontal bar above it).
        I.e. v'' is the linear map, from V' to F, which maps any w to
        the scalar obtained by applying w to v.  In short, this
        double-dual mapping simply exchanges the roles of function and
        argument.

        It is conventional, when talking about vectors in V, to refer
        to the members of V' as covectors.

        (1997-03-16)

DUAL-607

        An early system on the {IBM 701}.

        [CACM 2(5):16 (May 1959)].

        (1994-12-13)

dual-attached

        The form of {FDDI} interface where a device is connected to
        both FDDI token-passing rings, so that uninterrupted operation
        continues in the event of a failure of either of the rings.
        All connections to the main {FDDI} rings are dual-attached.
        Typically, a small number of critical infrastructure devices
        such as {router}s and {concentrator}s are dual-attached,
        whereas {host} computers are normally single-attached or
        {dual-homed} to a router or concentrator.

        For example, a ring could be formed between a single router
        and two concentrators (all dual-attached) then all other
        components that need to be fault-tolerant (typically file
        servers) can be {dual-homed} to both concentrators.

        (1994-12-13)

dual-homed

        <networking> A kind of connection to a {FDDI} network where a
        {host} is simultaneously connected to two separate devices in
        the same FDDI ring.  One of the connections becomes active
        while the other one is automatically blocked.  If the first
        connection fails, the backup link takes over with no
        perceptible delay.

        A dual-homed device can tolerate a fault in one of its "homes"
        whereas a {dual-attached} device can tolerate a fault in one
        of the rings.

        (1994-12-13)

Dual In-Line

        <hardware> {Dual In-Line Package}.

Dual In-line Memory Module

        <storage> Small circuit boards carrying memory {integrated
        circuits}, with signal and power pins on both sides of the
        board, in contrast to {single-in-line memory modules} (SIMM).

        The individual gold or lead connectors (pins) on SIMMs,
        although they are on both sides of the chip, are connected to
        the same memory chip, while on a DIMM, the connections on each
        side of the module connect to different chips.  This allows
        for a wider data path, as more modules can be accessed at
        once.  DIMM pins are arranged in a zigzag design to allow PCB
        tracks to pass between them.

        The 8-byte DIMM format with dual-sided contacts can
        accommodate 4- and 16-megabit {dynamic RAM} chips, and is
        predicted to handle 64- and 256-Mbit devices.  The 8-byte DIMM
        will hold up to 32 megabytes of memory using 16-Mbit DRAMs,
        but with the 256-Mbit future-generation DRAM, it will be able
        to hold a 64-Mx64 configuration.  Another variation, the
        72-pin {SO-DIMM}, is designed to connect directly to 32 bit
        data buses, and is intended for use in memory-expansion
        applications in {notebook computers}.

        A Dual in-line memory module (DIMM), as opposed to SIMMs (used
        by the majority of the PC industry) allows for a 128-bit data
        path by interleaving memory on alternating memory access
        cycles.  SIMMs on the other hand, have a 64-bit data path.
        Suppliers are unanimous in their belief that the DIMM will
        eventually replace the SIMM as the market's preferred memory
        module.

        (1996-01-28)

Dual In-Line Package

        <hardware> (DIL, DIP) The most common type of package for
        small and medium scale {integrated circuit}s, with up to about
        48 pins.  The pins hang vertically from the two long edges of
        the rectangular package, spaced at intervals of 0.1 inch.  The
        pins fit through holes in the circuit board to which they are
        soldered or into a socket.

        [More than 48 pins?]

        (1995-02-06)

dual ported

        A term used to describe memory {integrated circuit}s which can
        be accessed simultaneously via two independent address and
        data busses.

        Dual ported memory is often used in {video display} hardware,
        especially in conjunction with {Video Random Access Memory}
        (VRAM).  The two ports allow the video display hardware to
        read memory to display the contents on screen at the same time
        as the CPU writes data to other areas of the same memory.  In
        single-ported memory these two processes cannot occur
        simultanteously, the CPU must wait, thus resulting in slower
        access times.  {Cycle stealing} is one technique used to avoid
        this in single-ported {video memory}.

        (1995-01-12)

Dual Tone Multi Frequency

        <communications> (DTMF, or "touch-tone") A method used by the
        telephone system to communicate the keys pressed when
        dialling.  Pressing a key on the phone's keypad generates two
        simultaneous tones, one for the row and one for the column.
        These are decoded by the exchange to determine which key was
        pressed.

        (1995-03-28)

DUEL

        A front end to {gdb} by Michael Golan <mg@cs.princeton.edu>.
        DUEL implements a language designed for debugging {C}
        programs.  It mainly features efficient ways to select and
        display data items.  It is normally linked into the gdb
        executable, but could stand alone.  It interprets a subset of
        {C} in addition to its own language.

        Version 1.10.

        {(ftp://ftp.cs.princeton.edu/duel/)}

        (1993-03-20)

Duff's device

        The most dramatic use yet seen of {fall through} in {C},
        invented by Tom Duff when he was at Lucasfilm.  Trying to
        {bum} all the instructions he could out of an inner loop that
        copied data serially onto an output port, he decided to unroll
        it.  He then realised that the unrolled version could be
        implemented by *interlacing* the structures of a switch and a
        loop:

          register n = (count + 7) / 8;      /* count > 0 assumed */

          switch (count % 8)
          {
          case 0:        do {  *to = *from++;
          case 7:              *to = *from++;
          case 6:              *to = *from++;
          case 5:              *to = *from++;
          case 4:              *to = *from++;
          case 3:              *to = *from++;
          case 2:              *to = *from++;
          case 1:              *to = *from++;
                             } while (--n > 0);
          }

        Shocking though it appears to all who encounter it for the
        first time, the device is actually perfectly valid, legal C.
        C's default {fall through} in case statements has long been
        its most controversial single feature; Duff observed that
        "This code forms some sort of argument in that debate, but I'm
        not sure whether it's for or against."

        [For maximal obscurity, the outermost pair of braces above
        could be actually be removed - GLS]

dumbed down

        <jargon> Simplified, with a strong connotation of
        *over*simplified.  Often, a {marketroid} will insist that the
        interfaces and documentation of software be dumbed down after
        the designer has burned untold gallons of midnight oil making
        it smart.  This creates friction.

        See {user-friendly}.

        (1995-04-14)

dumb terminal

        <hardware> A type of {terminal} that consists of a keyboard
        and a display screen that can be used to enter and transmit
        data to, or display data from, a computer to which it is
        connected.  A dumb terminal, in contrast to an {intelligent
        terminal}, has no independent processing capability or
        {auxiliary storage} and thus cannot function as a stand-alone
        device.

        The dumbest kind of terminal is a {glass tty}.  The next step
        up has a minimally {addressable cursor} but no on-screen
        editing or other features normally supported by an
        {intelligent terminal}.

        Once upon a time, when glass ttys were common and addressable
        cursors were something special, what is now called a dumb
        terminal could pass for a smart terminal.

        [Examples?]

        (1995-04-14)

dump

        <operating system> 1. An undigested and voluminous mass of
        information about a problem or the state of a system,
        especially one routed to the slowest available output device
        (compare {core dump}), and most especially one consisting of
        {hexadecimal} or {octal} {runes} describing the byte-by-byte
        state of memory, mass storage, or some file.  In {elder days},
        debugging was generally done by "groveling over" a dump (see
        {grovel}); increasing use of high-level languages and
        interactive debuggers has made such tedium uncommon, and the
        term "dump" now has a faintly archaic flavour.

        2. A {backup}.  This usage is typical only at large
        {time-sharing} installations.

        {Unix manual page}: dump(1).

        (1994-12-01)

dumpster diving

        /dump'-ster di:'-ving/ 1. The practice of sifting refuse from
        an office or technical installation to extract confidential
        data, especially security-compromising information ("dumpster"
        is an Americanism for what is elsewhere called a "skip").
        Back in AT&T's monopoly days, before paper shredders became
        common office equipment, phone phreaks (see {phreaking}) used
        to organise regular dumpster runs against phone company plants
        and offices.  Discarded and damaged copies of AT&T internal
        manuals taught them much.  The technique is still rumored to
        be a favourite of crackers operating against careless targets.

        2. The practice of raiding the dumpsters behind buildings
        where producers and/or consumers of high-tech equipment are
        located, with the expectation (usually justified) of finding
        discarded but still-valuable equipment to be nursed back to
        health in some hacker's den.  Experienced dumpster-divers not
        infrequently accumulate basements full of moldering (but still
        potentially useful) {cruft}.

Dungeon

        {Zork}

dup killer

        /d[y]oop kill'r/ Software that is supposed to detect and
        delete duplicates of a message that may have reached the
        {FidoNet} system via different routes.

        See also {dup loop}.

        (1995-02-02)

duplex

        <communications> A half-duplex communication channel can, at
        any given time, carry data in either one direction or the
        other, but not both.  A full-duplex channel can carry data in
        both directions at once.  A {simplex} channel can only ever
        carry data in one direction.

        Early use of the term "duplex" arose in wireless, telegraph,
        and telephone communications, where "duplex" circuits between
        communicating terminals were capable of transmission in both
        directions, and "simplex" indicated transmission from a sender
        to a reciever, or broadcast to several potential receivers.

        In communications between computers or computing processes,
        particularly those involving human keyboarding and/or reading,
        duplex came to mean the re-transmission of a keyboard
        character to the output display.  Early input device such as
        the Teletype {ASR-33} {teleprinter}, being descended from the
        electric typewriter, print all input characters as they are
        typed.  In contrast, the {video terminal}s that have replaced
        them require that, as well as the character be transmitted to
        the receiver, it should also be displayed on the screen
        ("{echo}ed").  The echo can be effected locally, but this can
        confuse the operator because characters continue to appear on
        the screen, even when the communication circuit has failed.

        Additionally, if the echo of the character was effected by the
        remote (receiving) process, the operator could see and correct
        not only typing errors, but also transmission errors.  This
        crude but effective mechanism was called, somewhat
        misleadingly, "full duplex", and the echoing of characters by
        the sending process was called half duplex.  The terms "remote
        echo" and "local echo" are now more common.  Nearly all
        communications circuits used by computers are two-way, so the
        distinction between simplex and duplex is seldom made.

        (1995-04-12)

Duplex High Speed Data

        (DHSD) A term which describes a {full-duplex} channel that can
        carry 64 kilobits per second.

        This is the kind of service provided by an Inmarsat-B type
        portable earth station or a {leased line} (not {ISDN}).

        (1995-02-02)

dup loop

        /d[y]oop loop/ (also "dupe loop") [FidoNet] An infinite stream
        of duplicated, near-identical messages on a FidoNet {echo},
        the only difference being unique or mangled identification
        information applied by a faulty or incorrectly configured
        system or network gateway, thus rendering {dup killer}s
        ineffective.  If such a duplicate message eventually reaches a
        system through which it has already passed (with the original
        identification information), all systems passed on the way
        back to that system are said to be involved in a {dup loop}.

Durra

        Description language for coarse-grained concurrency on
        heterogeneous processors.  "Durra: A Task-level Description
        Language", M.R.  Barbacci et al, CMU/SEI-86-TR-3, CMU 1986.

dusty deck

        Old software (especially applications) which one is obliged to
        remain compatible with, or to maintain.  {DP} types call this
        "legacy code", a term hackers consider smarmy and excessively
        reverent.  The term implies that the software in question is a
        holdover from card-punch days.  Used especially when referring
        to old scientific and {number crunching} software, much of
        which was written in FORTRAN and very poorly documented but is
        believed to be too expensive to replace.  See {fossil};
        compare {crawling horror}.

DV cartridge

        <games> (Digital Video?)  A plug-in circuit cartridge required
        by some games consoles in order to play {MPEG} video material.

        (1994-11-02)

DVD

        {Digital Versatile Disc}

DVD-R

        {Digital Versatile Disc}

DVD-ROM

        {Digital Versatile Disc}

DVI

        <file format> Device independent file format.  A dvi file
        containing a description of a formatted document is the usual
        output of {TeX}.  A number of utiltiies exist to view and
        print DVI files on various systems and devices.

        (1996-11-17)

Dvorak

        <hardware> A configuration of (computer) keyboard keys
        arranged to increase the speed and ease of typing over the
        normal {qwerty} layout; the most common characters (for
        English) have been put on the home row.

        The standard {Dvorak International
        (http://www.dvorakint.org/)} layout is:

         `~  1!  2@  3#  4%  5^     6^  7&  8*  9(  0)  [\{  ]\}  \\|
             '"  ,<  .>  p   y      f   g   c   r   l   /?  +=
             a   o   e   u   i      d   h   t   n   s   -_
             ;:  q   j   k   x      b   m   w   v   z

        [Do other Dvorak-like layout standards exist for other
        languages?]

        (1998-01-15)

Dwarf Storage Unit

        <humour> (DSU) An {IBM} term for a cupboard.

        (1996-06-24)

dweeb

        An even lower form of life than the {spod}, found in much the
        same habitat as the former.  though more prevailent on {talker
        system}s.  Unlike spods, upon receiving the desired response
        to the question "Are you male or female?", dweebs will then
        engage upon a detailed description of themselves and how
        wonderful they are, often in the hopes of truly impressing the
        other with their "charm" and "wit".  Nearly all dweebs are
        male, but very few actually live up to the image that they
        present.  Dweebs, unfortunately, are often the cause of
        ill-will, and may well bring a bad reputation to the system in
        question.  They are often, however, easy to wind up and can be
        the source of great mirth to the seasoned user.

dwg

        <filename extension> The filename extension for {drawing}
        files.

        [From which program(s)?]

        (1997-01-26)

DWIM

        /dwim/ [acronym, "Do What I Mean" (not what I say)] 1. Able to
        guess, sometimes even correctly, the result intended when
        bogus input was provided.

        2. The BBNLISP/INTERLISP function that attempted to accomplish
        this feat by correcting many of the more common errors.  See
        {hairy}.

        3. Occasionally, an interjection hurled at a balky computer,
        especially when one senses one might be tripping over
        legalisms (see {legalese}).

        Warren Teitelman originally wrote DWIM to fix his typos and
        spelling errors, so it was somewhat idiosyncratic to his
        style, and would often make hash of anyone else's typos if
        they were stylistically different.  Some victims of DWIM thus
        claimed that the acronym stood for "Damn Warren's Infernal
        Machine!'.

        In one notorious incident, Warren added a DWIM feature to the
        command interpreter used at {Xerox PARC}.  One day another
        hacker there typed "delete *$" to free up some disk space.
        (The editor there named backup files by appending "$" to the
        original file name, so he was trying to delete any backup
        files left over from old editing sessions.)  It happened that
        there weren't any editor backup files, so DWIM helpfully
        reported "*$ not found, assuming you meant 'delete *'".  It
        then started to delete all the files on the disk!  The hacker
        managed to stop it with a {Vulcan nerve pinch} after only a
        half dozen or so files were lost.

        The disgruntled victim later said he had been sorely tempted
        to go to Warren's office, tie Warren down in his chair in
        front of his workstation, and then type "delete *$" twice.

        DWIM is often suggested in jest as a desired feature for a
        complex program; it is also occasionally described as the
        single instruction the ideal computer would have.  Back when
        proofs of program correctness were in vogue, there were also
        jokes about "DWIMC" (Do What I Mean, Correctly).  A related
        term, more often seen as a verb, is DTRT (Do The Right Thing);
        see {Right Thing}.

DX4

        {Intel DX4}

DXF

        {Drawing Exchange Format}

dyadic

        <programming> {binary} (describing an {operator}).

        Compare {monadic}.

        (1998-07-24)

DYANA

        {DYnamics ANAlyzer}

Dylan

        {DYnamic LANguage}

Dylperl

        A {dynamic linking} package for {Perl} by Roberto Salama
        <rs@fi.gs.com>.  Dynamically loaded functions are accessed as
        if they were user-defined functions.  This code is based on
        Oliver Sharp's May 1993 article in Dr. Dobbs Journal ("Dynamic
        Linking under Berkeley Unix").

        Posted to {news:comp.lang.perl} on 1993-08-11.

        (1993-08-11)

dynamic adaptive routing

        Automatic re{routing} of traffic based on analysis of current
        {network} conditions.  This does not include routing decisions
        based on predefined information.

        (1995-01-30)

Dynamic Address Translation

        <architecture> (DAT) Conversion of a {virtual address} into a
        {physical address}, as performed by a {memory management unit}
        and an {operating system} which supports {virtual memory}.

        (1995-01-30)

Dynamically Linked Library

        <library> (DLL) A {library} which is linked to {application
        programs} when they are loaded or run rather than as the final
        phase of {compilation}.  This means that the same block of
        library code can be shared between several {tasks} rather than
        each task containing copies of the routines it uses.  The
        executable is compiled with a library of "{stubs}" which allow
        {link errors} to be detected at {compile-time}.  Then, at
        {run-time}, either the system {loader} or the task's entry
        code must arrange for library calls to be patched with the
        addresses of the real shared library routines, possibly via a
        {jump table}.

        The alternative is to make library calls part of the
        {operating system} {kernel} and enter them via some kind of
        {trap} instruction.  This is generally less efficient than an
        ordinary {subroutine} call.  It is important to ensure that
        the version of a dynamically linked library is compatible with
        what the executable expects.

        Examples of operating systems using dynamic linking are
        {SunOS}, {Microsoft Windows} and {RISC OS} on the {Acorn}
        {Archimedes}.

        (1995-12-12)

dynamically scoped

        {dynamic scope}

dynamic analysis

        <programming> Evaluation of a program based on its execution.
        Dynamic analysis relies on executing a piece of software with
        selected test data.

        (1996-05-13)

dynamic binding

        The property of {object-oriented programming} languages where
        the code executed to perform a given operation is determined
        at run-time from the {class} of the operand(s) (the receiver
        of the message).  There may be several different classes of
        objects which can receive a given message.  An expression may
        denote an object which may have more than one possible class
        and that class can only be determined at run-time.  New
        classes may be created that can receive a particular message,
        without changing (or recompiling) the code which sends the
        message.  An class may be created that can receive any set of
        existing messages.

        {C++} implements dynamic binding using "{virtual member
        function}s".

        One important reason for having dynamic binding is that it
        provides a mechanism for selecting between alternatives which
        is arguably more robust than explicit selection by
        conditionals or {pattern matching}.  When a new {subclass} is
        added, or an existing subclass changes, the necessary
        modifications are localised: you don't have incomplete
        conditionals and broken patterns scattered all over the
        program.

        See {overloading}.

dynamic database management system

        <database> (dynamic DBMS) A {database} with "value-based"
        relationships where typically the relationship is specified at
        retrieval time and the locations of related records are
        discovered during retrieval.  Both {Independent Logical File}
        (ILF) databases and {relational databases} are value-based.

        The opposite is a {static database management system}.

        (1998-10-07)

Dynamic Data Exchange

        <language> (DDE, originally Dynamic Data Linking, DDL) A
        {Microsoft Windows} 3 {hotlink} {protocol} that allows
        {application programs} to communicate using a {client-server}
        model.  Whenever the server (or "publisher") modifies part of
        a document which is being shared via DDE, one or more clients
        ("subscribers") are informed and include the modification in
        the copy of the data on which they are working.

        (1997-06-05)

Dynamic Data Linking

        {Dynamic Data Exchange}

dynamic DBMS

        {dynamic database management system}

Dynamic Execution

        <processor> A combination of techniques - {multiple branch
        prediction}, {data flow analysis} and {speculative execution}.
        {Intel} implemented Dynamic Execution in the {P6} after
        analysing the execution of billions of lines of code.

        (1995-05-05)

Dynamic Host Configuration Protocol

        <protocol> (DHCP) A {protocol} that provides a means to
        dynamically allocate {IP address}es to computers on a {local
        area network}.  The {system administrator} assigns a range of
        IP addresses to DHCP and each client computer on the LAN has
        its {TCP/IP} software configured to request an IP address from
        the DHCP server.  The request and grant process uses a lease
        concept with a controllable time period.

        DHCP is defined in {RFC 2131}.

        {Microsoft} introduced DHCP on their {NT server} with version
        3.5 in late 1994.

        {(http://www.dhcp.org/)}.

        (1998-11-22)

Dynamic HTML

        <language, World-Wide Web> (DHTML) An extension of {HTML}
        giving greater control over the layout of page elements and
        the ability to have web pages which change and interact with
        the user without having to communicate with the server.

        DHTML was created by {Microsoft} can be viewed in {Internet
        Explorer} 4.0 and {Netscape} Communicator 4.0 but, as usual,
        Microsoft and Netscape disagree on how DHTML should be
        implemented.  The {Document Object Model} Group of the {World
        Wide Web Consortium} is developing standards for DHTML.

        {(http://www.w3c.org/DOM/)}.

        (1998-07-02)

DYnamic LANguage

        <language> (Dylan) A simple {object-oriented} {Lisp} dialect,
        most closely resembling {CLOS} and {Scheme}, developed by
        Advanced Technology Group East at {Apple Computer}.

        {Thomas} is a Dylan {compiler} implemented in {Scheme}.

        See also {Marlais}.

        E-mail: <dylan-manual-request@cambridge.apple.com>.

        ["Dylan(TM) an Object-Oriented Dynamic Language", {Apple
        Computer}, Eastern Research and Technology, April 1992].

        (1995-04-19)

dynamic link

        <compiler> A pointer from an {activation record} to the
        {activation record} for the {scope} from which the current
        scope was called at {run-time}.  This is used in a {statically
        scoped} language to restore the {environment pointer} on exit
        from a scope.  To access a {non-local variable} in a
        {dynamically scoped} language, dynamic links are followed
        until a binding for the given variable name is found.

        (1995-03-07)

Dynamic Object-Oriented Requirements System

        <programming, tool, product> (DOORS) A tool from {Quality
        Systems & Software Ltd.} for handling all kinds of
        {requirements} (in fact, any information at all) as modules
        containing trees of text objects, qualified by an arbitrary
        number of user-defined attributes, and cross-linked by
        directional links.

dynamic RAM

        {dynamic random access memory}

dynamic random access memory

        <storage> (DRAM) A type of {semiconductor} memory in which the
        information is stored in {capacitors} on a {MOS} {integrated
        circuit}.  Typically each {bit} is stored as an amount of
        electrical charge in a storage cell consisting of a capacitor
        and a {transistor}.  Due to leakage the capacitor discharges
        gradually and the memory cell loses the information.
        Therefore, to preserve the information, the memory has to be
        refreshed periodically.  Despite this inconvenience, the DRAM
        is a very popular memory technology because of its high
        density and consequent low price.

        The first commercially available DRAM chip was the {Intel
        1103}, introduced in 1970.

        The early DRAM chips up to a 16k x 1 (16384 locations of one
        bit each) model needed 3 supply voltages (+5V, -5V and +12V).
        Beginning with the 64 kilobit chips, {charge pumps} were
        included on-chip to create the necessary supply voltages out
        of a single +5V supply.  This was necessary to fit the device
        into a 16-pin {DIL} package, which was the preferred package
        at the time, and also made them easier to use.

        To reduce the pin count, thereby helping miniaturisation,
        DRAMs generally had a single data line which meant that a
        computer with an N bit wide {data bus} needed a "bank" of (at
        least) N DRAM chips.  In a bank, the address and control
        signals of all chips were common and the data line of each
        chip was connected to one of the data bus lines.

        Beginning with the 256 kilobit DRAM, a tendency towards
        {surface mount} packaging arose and DRAMs with more than one
        data line appeared (e.g. 64k x 4), reducing the number of
        chips per bank.  This trend has continued and DRAM chips with
        up to 36 data lines are available today.  Furthermore,
        together with surface mount packages, memory manufacturers
        began to offer memory modules, where a bank of memory chips
        was preassembled on a little {printed circuit} board (SIP =
        Single Inline Pin Module, SIMM = Single Inline Memory Module,
        DIMM = Dual Inline Memory Module).  Today, this is the
        preferred way to buy memory for {workstations} and {personal
        computers}.

        DRAM bit cells are arranged on a chip in a grid of rows and
        columns where the number of rows and columns are usually a
        power of two.  Often, but not always, the number of rows and
        columns is the same.  A one megabit device would then have
        1024 x 1024 memory cells.  A single memory cell can be
        selected by a 10-bit row address and a 10-bit column address.

        To access a memory cell, one entire row of cells is selected
        and its contents are transferred into an on-chip buffer.  This
        discharges the storage capacitors in the bit cells.  The
        desired bits are then read or written in the buffer.  The
        (possibly altered) information is finally written back into
        the selected row, thereby refreshing all bits (recharging the
        capacitors) in the row.

        To prevent data loss, all bit cells in the memory need to be
        refreshed periodically.  This can be done by reading all rows
        in regular intervals.  Most DRAMs since 1970 have been
        specified such that one of the rows needs to be refreshed at
        least every 15.625 microseconds.  For a device with 1024 rows,
        a complete refresh of all rows would then take up to 16 ms; in
        other words, each cell is guaranteed to hold the data for 16
        ms without refresh.  Devices with more rows have accordingly
        longer retention times.

        Many varieties of DRAM exist today.  They differ in the the
        way they are interfaced to the system - the structure of the
        memory cell itself is essentially the same.

        "Traditional" DRAMs have multiplexed address lines and
        separate data inputs and outputs.  There are three control
        signals: RAS\ (row address strobe), CAS\ (column address
        strobe), and WE\ (write enable) (the backslash indicates an
        {active low} signal).  Memory access procedes as follows:
        1. The control signals initially all being inactive (high), a
        memory cycle is started with the row address applied to the
        address inputs and a falling edge of RAS\ .  This latches the
        row address and "opens" the row, transferring the data in the
        row to the buffer.  The row address can then be removed from
        the address inputs since it is latched on-chip.  2. With RAS\
        still active, the column address is applied to the address
        pins and CAS\ is made active as well.  This selects the
        desired bit or bits in the row which subsequently appear at
        the data output(s).  By additionally activating WE\ the data
        applied to the data inputs can be written into the selected
        location in the buffer.  3. Deactivating CAS\ disables the
        data input and output again.  4. Deactivating RAS\ causes the
        data in the buffer to be written back into the memory array.

        Certain timing rules must be obeyed to guarantee reliable
        operation.  1. RAS\ must remain inactivate for a while before
        the next memory cycle is started to provide sufficient time
        for the storage capacitors to charge (Precharge Time).  2. It
        takes some time from the falling edge of the RAS\ or CAS\
        signals until the data appears at the data output.  This is
        specified as the Row Access Time and the Column Access Time.
        Current DRAM's have Row Access Times of 50-100 ns and Column
        Access Times of 15-40 ns.  Speed grades usually refer to the
        former, more important figure.

        Note that the Memory Cycle Time, which is the minimum time
        from the beginning of one access to the beginning of the next,
        is longer than the Row Access Time (because of the Precharge
        Time).

        Multiplexing the address pins saves pins on the chip, but
        usually requires additional logic in the system to properly
        generate the address and control signals, not to mention
        further logic for refresh.  Therefore, DRAM chips are usually
        preferred when (because of the required memory size) the
        additional cost for the control logic is outweighed by the
        lower price.

        Based on these principles, chip designers have developed many
        varieties to improve performance or ease system integration of
        DRAMs:

        PSRAMs (Pseudo Static Random Access Memory) are essentially
        DRAMs with a built-in address {multiplexor} and refresh
        controller.  This saves some system logic and makes the device
        look like a normal {SRAM}.  This has been popular as a lower
        cost alternative for SRAM in {embedded systems}.  It is not a
        complete SRAM substitute because it is sometimes busy when
        doing self-refresh, which can be tedious.

        {Nibble Mode DRAM} can supply four successive bits on one data
        line by clocking the CAS\ line.

        {Page Mode DRAM} is a standard DRAM where any number of
        accesses to the currently open row can be made while the RAS
        signal is kept active.

        Static Column DRAM is similar to Page Mode DRAM, but to access
        different bits in the open row, only the column address needs
        to be changed while the CAS\ signal stays active.  The row
        buffer essentially behaves like SRAM.

        {Extended Data Out DRAM} (EDO DRAM) can continue to output
        data from one address while setting up a new address, for use
        in {pipelined} systems.

        DRAM used for Video RAM ({VRAM}) has an additional long
        shift register that can be loaded from the row buffer.  The
        shift register can be regarded as a second interface to the
        memory that can be operated in parallel to the normal
        interface.  This is especially useful in {frame buffers} for
        {CRT} displays.  These frame buffers generate a serial data
        stream that is sent to the CRT to modulate the electron beam.
        By using the shift register in the VRAM to generate this
        stream, the memory is available to the computer through the
        normal interface most of the time for updating the display
        data, thereby speeding up display data manipulations.

        SDRAM (Synchronous DRAM) adds a separate clock signal to the
        control signals.  It allows more complex {state machines} on
        the chip and high speed "burst" accesses that clock a series
        of successive bits out (similar to the nibble mode).

        CDRAM (Cached DRAM) adds a separate static RAM array used for
        caching.  It essentially combines main memory and {cache}
        memory in a single chip.  The cache memory controller needs to
        be added externally.

        RDRAM (Rambus DRAM) changes the system interface of DRAM
        completely.  A byte-wide bus is used for address, data and
        command transfers.  The bus operates at very high speed: 500
        million transfers per second.  The chip operates synchronously
        with a 250MHz clock.  Data is transferred at both rising and
        falling edges of the clock.  A system with signals at such
        frequencies must be very carefully designed, and the the
        signals on the Rambus Channel use nonstandard signal levels,
        making it incompatible with standard system logic.  These
        disadvantages are compensated by a very fast data transfer,
        especially for burst accesses to a block of successive
        locations.

        A number of different refresh modes can be included in some of
        the above device varieties:

        RAS\ only refresh: a row is refreshed by an ordinary read
        access without asserting CAS\.  The data output remains
        disabled.

        CAS\ before RAS\ refresh: the device has a built-in counter
        for the refresh row address.  By activating CAS\ before
        activating RAS\, this counter is selected to supply the row
        address instead of the address inputs.

        Self-Refresh: The device is able to generate refresh cycles
        internally.  No external control signal transitions other than
        those for bringing the device into self-refresh mode are
        needed to maintain data integrity.

        (1996-07-11)

dynamic routing

        <networking> (Or "adaptive routing") {Routing} that adjusts
        automatically to network topology or traffic changes.

        (1997-05-08)

DYnamics ANAlyzer

        <language> (DYANA) An early language specialised for
        vibrational and other dynamic physical systems.

        [Sammet 1969, p. 628].

        (1997-07-20)

dynamic scope

        <language> In a dynamically scoped language, e.g. most
        versions of {Lisp}, an {identifier} can be referred to, not
        only in the block where it is declared, but also in any
        function or procedure called from within that block, even if
        the called procedure is declared outside the block.

        This can be implemented as a simple stack of (identifier,
        value) pairs, accessed by searching down from the top of stack
        for the most recent instance of a given identifier.

        The opposite is {lexical scope}.  A common implementation of
        dynamic scope is {shallow binding}.

        (1996-07-11)

dynamic scoping

        {dynamic scope}

DYNAMO

        DYNamic MOdels.  A language for continuous {simulation}
        including economic, industrial and social systems, developed
        by Phyllis Fox and A.L. Pugh in 1959.

        Versions include DYNAMO II, DYNAMO II/370, DYNAMO II/F, DYNAMO
        III and Gaming DYNAMO.

        ["DYNAMO User's Manual", A.L. Pugh, MIT Press 1976].

Dynix

        <library> A {host-based} library automation system from {Dynix
        Automated Library Systems}.  First installed in 1993, it is
        now used in over 2000 libraries worldwide.

        Dynix runs on {Unix} using the {UniVerse} post relational
        database.  The software is configurable using tables of
        parameters.  It includes modules for cataloguing, circulation,
        OPAC, acquisitions, serials, reserve book room, advance
        bookings, homebound, BiblioBus, Pac Plus for Windows, Kids
        Catalog, Dynix Online Catalog, media bookings, and community
        information.

        {(http://www.uk.dynix.com/classic.html)}

        (1995-04-28)

Dynix Automated Library Systems

        <company> The world's largest supplier of library automation
        systems with European offices in France, Germany, Ireland, the
        Netherlands and the UK.

        Dynix sell two library management systems - Horizon
        ({client/server}) and, Dynix ({host-based}).  Both have {GUI}
        or {terminal interface}s.  Dynix also sell other products and
        services for {database} enrichment, interconnectivity, and
        on-line and {CD-ROM} databases.

        {Home (http://www.uk.dynix.com/dynix.html)}

        (1995-04-28)

dynner

        <data, jargon> /din'r/ 32 {bits}, by analogy with {byte}.
        Usage: rare and extremely silly.

        See also {playte}, {tayste}, {crumb}.

        (1997-12-03)

DYSAC

        Digital Simulated Analog Computer.

        [Sammet 1969, p. 629].

DYSTAL

        DYnamic STorage ALlocation.

        Adds lists, strings, sorting, statistics and matrix operations
        to FORTRAN.  Sammet 1969, p.388.  "DYSTAL: Dynamic Storage
        Allocation Language in FORTRAN", J.M. Sakoda, in Symbol
        Manipulation Languages and Techniques, D.G. Bobrow ed, N-H
        1971, pp.302- 311.

        (1995-03-17)

dz

        <networking> The {country code} for Algeria.

        (1999-01-27)

E

        1. An extension of {C++} with {database} types and
        {persistent} {object}s.  E is a powerful and flexible
        {procedural} programming language.  It is used in the {Exodus}
        database system.

        See also {GNU E}.

        {(ftp://ftp.cs.wisc.edu/exodus/E/)}

        ["Persistence in the E Language: Issues and Implementation",
        J.E. Richardson et al, Soft Prac & Exp 19(12):1115-1150 (Dec
        1989)].

        2. <language> A {procedural language} by Wouter van
        Oortmerssen with {semantics} similar to {C}.  E features
        lists, low-level {polymorphism}, {exception} handling, quoted
        expressions, {pattern matching} and {object} {inheritance}.
        {Amiga E} is a version for the {Amiga}.

        (1999-10-05)

E1

        <communications> A European {framing specification} for the
        transmission of 30 {DS0} data streams.  By extension, it can
        also denote the transmission rate required (2.048 Mb/s).
        Unlike {DS1} it is free of {bit-robbing}.

        (1998-05-18)

EAF

        {Effort Adjustment Factor}

EAG

        {Extended Affix Grammar}

eager evaluation

        Any {evaluation strategy} where evaluation of some or all
        function arguments is started before their value is required.
        A typical example is {call-by-value}, where all arguments are
        passed evaluated.  The opposite of eager evaluation is
        {call-by-need} where evaluation of an argument is only started
        when it is required.

        The term "{speculative evaluation}" is very close in meaning
        to eager evaluation but is applied mostly to parallel
        architectures whereas eager evaluation is used of both
        sequential and parallel evaluators.

        Eager evaluation does not specify exactly when argument
        evaluation takes place - it might be done fully speculatively
        (all {redex}es in the program reduced in parallel) or may be
        done by the caller just before the function is entered.

        The term "eager evaluation" was invented by Carl Hewitt and
        Henry Baker <hbaker@netcom.com> and used in their paper ["The
        Incremental Garbage Collection of Processes", Sigplan Notices,
        Aug 1977.
        {(ftp://ftp.netcom.com/pub/hb/hbaker/Futures.html)}].  It was
        named after their "eager beaver" evaluator.

        See also {conservative evaluation}, {lenient evaluation},
        {strict evaluation}.

        (1994-12-22)

Eagle

        A {dBASE}-like dialect bundled with {Emerald Bay}, sold by
        {Migent} from 1986-1988, later renamed {Vulcan} when {Wayne
        Ratliff} reacquired the product.

EAI

        {Enterprise Application Integration}

EAPROM

        {Electrically Alterable Programmable Read Only Memory}

earliest deadline first

        <operating system, algorithm> (EDF) A strategy for {CPU} or
        disk access {scheduling}.  With EDF, the task with the
        earliest deadline is always executed first.

        {Scan-EDF} is an example.

        (1995-11-15)

Early PL/I

        <language> (EPL) A {PL/I} subset dialect by McIlroy, Morris et
        al, the first running PL/I {compiler}.  It was used by {Bell
        Labs} and {MIT} to write {Multics}.  EPL had extensions to
        handle the segment/offset nature of {Multics} pointers.

        See also {REPL}, {TMG}.

        ["EPL Reference Manual", Project MAC, April 1966].

        [Sammet 1969, p. 542].

        (1995-11-15)

EARN

        <networking> {European Academic and Research
        Network}.

        (1995-11-15)

EAROM

        Electrically Alterable Read Only Memory.

        {EEPROM}

earthquake

        (IBM) The ultimate real-world shock test for computer
        hardware.  Hackish sources at {IBM} deny the rumor that the
        San Francisco Bay Area quake of 1989 was initiated by the
        company to test quality-assurance procedures at its California
        plants.

        (1995-04-22)

Ease

        General purpose parallel programming language, combining the
        process constructs of CSP and the distributed data structures
        of Linda.  "Programming with Ease: Semiotic Definition of the
        Language", S.E. Zenith, <zenith-steven@yale.edu> Yale U
        TR-809, Jul 1990.

EASE II

        Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

EASIAC

        Early system on Midac computer.  Listed in CACM 2(5):16 (May
        1959).

EAST

        A {Eureka} project developing a {software engineering}
        {platform}.

        (1994-12-07)

easter egg

        <jargon> (From the custom of the Easter Egg hunt observed in
        the US and many parts of Europe)

        1. A message hidden in the {object code} of a program as a
        joke, intended to be found by persons disassembling or
        browsing the code.

        2. A message, graphic, sound effect, or other behaviour
        emitted by a program (or, on an {IBM PC}, the {BIOS} {ROM}) in
        response to some undocumented set of commands or keystrokes,
        intended as a joke or to display program credits.

        One well-known early Easter egg found in a couple of
        {operating systems} caused them to respond to the command
        "make love" with "not war?".  Many {personal computers} have
        much more elaborate eggs hidden in {ROM}, including lists of
        the developers' names (e.g. {Microsoft Windows} 3.1x),
        political exhortations and snatches of music.  The {Tandy}
        Color Computer 3 ({CoCo}) had images of the entire development
        team.  Microsoft {Excel} 97 includes a flight simulator!

        {(http://www.eeggs.com/)}.

        (1999-07-08)

Easter egging

        <jargon> ({IBM}, From the custom of the Easter Egg hunt
        observed in the US and many parts of Europe) The act of
        replacing unrelated components more or less at random in the
        hope that a malfunction will go away.  Hackers consider this
        the normal operating mode of {field circus} techs and do not
        love them for it.

        Compare {Easter egg}, {shotgun debugging}.

        (1998-03-18)

Eastern Washington University

        A university 20 miles southwest of Spokane, WA on the edge of
        the rolling Palouse Prairie.

        {Home (http://www.ewu.edu/)}

        Address: Cheney, Washington, USA.

        (1995-02-28)

EASY FOX

        An early system on the {JOHNNIAC} computer.

        [Listed in CACM 2(5):16 (May 1959)].

eat flaming death

        A construction popularised among hackers by the infamous {CPU
        Wars} comic; supposedly derive from a famously turgid line in
        a WWII-era anti-Nazi propaganda comic that ran "Eat flaming
        death, non-Aryan mongrels!" or something of the sort (however,
        it is also reported that the Firesign Theater's 1975 album "In
        The Next World, You're On Your Own" included the phrase "Eat
        flaming death, fascist media pigs"; this may have been an
        influence).  Used in humorously overblown expressions of
        hostility. "Eat flaming death, {EBCDIC} users!"

EBASIC

        A {BASIC} by Gordon Eubanks, now at {Symantec}, that led to
        {CBASIC}.

EBCDIC

        {Extended Binary Coded Decimal Interchange Code}

EBCIDIC

        <spelling> It's spelled "{EBCDIC}".

        (1996-12-13)

EBNF

        <language> {Extended Backus-Naur Form}.

Ebone

        A pan-European {backbone} network service.

ec

        <networking> The {country code} for Ecuador.

        (1999-01-27)

EC++

        A preprocessor
        by Glauco Masotti <masotti@lipari.usc.edu>
        that translates Extended C++ into C++.

        {(ftp://ftp.uu.net/languages/c++/EC++.tar.Z)}

        (1989-10-10)

ECAP II

        Electronic Circuit Analysis Program.  Simple language for
        analysing electrical networks.  "Introduction to Computer
        Analysis: ECAP for Electronics Technicians and Engineers",
        H. Levin, P-H 1970.

Ecash

        <application> A trial form of {electronic funds transfer} over
        the {Internet} (and soon by {electronic mail}).

        The ecash software stores digital money, signed by a bank, on
        the user's local computer.  The user can spend the digital
        money at any shop accepting ecash, without the trouble of
        having to open an account there first, or having to transmit
        credit card numbers.  The shop just has to accept the money,
        and deposit it at the bank.  The security is provided by a
        {public-key} {digital signature}.

        There process involves the issuing banks who exchange real
        money for ecash, users who have and spend ecash, shops who
        accept ecash payments, and clearing banks who clear payments
        received by shops.

        At the moment, all users and shops must have an account at
        {DigiCash}'s own bank, the "First Digital Bank" at
        bank.digicash.com.  They can withdraw money from the bank, and
        convert it to ecash.  Shops can be started by any ecash user.

        {Home (http://www.digicash.com/ecash/ecash-home.html)}

        (1995-04-10)

ECC

        {error detection and correction}

Eccles-Jordan circuit

        {flip-flop}

Echidna

        {Constraint logic programming} embedded in an
        {object-oriented} language.  The {syntax} is an extension of
        {Edinburgh Prolog}.

        ["Hierarchical Arc Consistency Applied to Numeric Processing
        in Constraint Logic Programming", G. Sidebottom et al,
        TR-91-06, CSS-IS, Simon Fraser U, and Comp Intell 8(4)
        (1992)].

        {(ftp://cs.sfu.edu/pub/ecl/papers)}

        E-mail: <expert@cs.sfu.edu>.

        (1994-12-08)

echo

        1. A {topic group} on {FidoNet}'s {echomail} system.

        Compare {newsgroup}.

        2. A {Unix} command that just prints its arguments.

echo cancellation

        A process which removes unwanted echoes from the signal on a
        telephone line.  Echoes are usually caused by impedance
        mismatches along an analogue line.

ECHT

        European Conference on {Hypertext}.

ECIP2

        An {Esprit} project on the definition of a specification
        language at the requirement level.

ECIS

        {European Committee for Interoperable Systems}

Eckert-Mauchly Computer Corporation

        The company which designed and built {Univac}.

        (1995-03-01)

ECL

        1. <hardware> {Emitter Coupled Logic}.

        2. <language> Extensible {CL}.

        Wegbreit, ca 1970.

        ["The ECL Programming System", B. Wegbreit, Proc FJCC
        39:253-261, AFIPS (Fall 1971)].

        ["ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U
        (Dec 1974)].

        (1994-11-09)

ECLIPSE

        A {Prolog} + {CLP} compiler from {ECRC}.

ECM

        <storage> {error correcting memory}.

        (1995-10-10)

ECMA

        1. {European Computer Manufacturers Association}.

        2. A subset of {ALGOL}.  [Sammet 1969, p.180].

        (1998-09-07)

e-commerce

        {electronic commerce}

Econet

        1. One of the IGC networks.  EcoNet serves individuals and
        organisations working for environmental preservation and
        sustainability.  Important issues covered include: global
        warming, energy policy, rainforest preservation, legislative
        activities, water quality, toxics and environmental education.

        EcoNet users can send and receive private messages, including
        fax and telex, to and from more than 18,000 international
        users on the APC networks or to millions on other networks.
        EcoNet seeks to build coalitions and partnerships with
        activist and non-profit organisations to develop the use of
        the electronic communications medium.  EcoNet provides
        subsidies and financial incentives to environmental
        organisations and committed individuals who foster the
        effectiveness of organisations through the use of electronic
        networking.  FTP/Telnet: igc.apc.org.

        2. A network produced by {Acorn Computers} Ltd. for the {BBC
        Microcomputer} and its successors.

ECOOP

        European Conference on Object-oriented Programming.

ECP

        1. {Engineering Change Proposal}.

        2. {Enhanced Capabilities Port}.

        3. {Extended Capabilities Port}.

        4. {Extended Concurrent Prolog}.

        (1997-12-01)

ECRC

        {European Computer-Industry Research Centre GmbH}

ECRC-Prolog

        Evidently {Prolog} with {coroutine} extensions.

        See also {SEPIA}.

        ["ECRC-Prolog User's Manual Version 1.0", K. Estenfeld,
        TR-LP-08 ECRC, Feb 1986].

        (1994-12-01)

ECSL

        Extended CSL.

        A {discrete simulation} language, the successor to {CSL}.

        ["Extended Control and Simulation Language", A.T. Clementson,
        Comp J 9(3):215-220 (1966)].

        (1994-12-08)

ECSP

        An extension to {CSP}, supporting dynamic communication
        channels and nested processes.

        ["Static Type Checking of Interprocess Communication in ECSP",
        F. Baiardi et al, SIGPLAN Notices 19(6):290-299 (June 1984)].

        (1994-12-08)

ECSS II

        Extendable Computer System Simulator.

        An extension of {SIMSCRIPT II}.

        ["The ECSS II Language for Simulating Computer Systems",
        D.W. Kosy, R-1895-GSA, Rand Corp].

        (1994-12-08)

ECSSL

        Formerly APSE.  An equation-oriented specification language
        for {continuous simulation}s.  The {compiler} outputs
        {HYTRAN}, which must be run on an analog processor.

        (1994-12-08)

ed

        <tool, text> (editor) {Unix}'s {line editor}.  Ed is rarely
        used by humans since even {vi} is better.

        {Unix manual page}: ed(1).

        (1999-03-01)

EDA

        1. {Electronic Design Automation}.

        2. {Exploratory Data Analysis}.

        3. A product line from {Dazix}.

        (1995-10-02)

e-ddress

        {electronic mail address}

Eden

        A concurrent, {object-oriented}, distributed {operating
        system} and language, based on {remote procedure call}.  It
        has both {synchronous} and {asynchronous} {message passing}.

        ["The Eden System: A Technical Review", G. Almes et al, IEEE
        Trans Soft Eng SE-11(1):43-59 (Jan 1985)].

EDF

        <algorithm> {earliest deadline first}.

        (1995-11-12)

EDI

        {Electronic Data Interchange}

EDIF

        Electronic Design Interchange Format.

        Not a programming language, but a format to simplify data
        transfer between CAD/CAE systems.  LISP-like syntax.  See also
        {Berkeley EDIF200}.

        E-mail: <edif-support@cs.man.ac.uk>
        {(ftp://edif.cs.man.ac.uk/pub/edif)}.

        ["Designer's Guide to EDIF", E. Marx et al, EDN 1987."EDIF
        Electronic Design Interchange Format Version 200", ANSI/EIA
        Standard 548].

        (1995-03-10)

EDIFACT

        {ISO 9735}:1988

Edinburgh Multi Access System

        <operating system> (EMAS) One of the first {operating systems}
        written in a {high-level language} ({IMProved Mercury
        autocode}), apparently predating {Unix}.

        [Papers in J. {British Computer Society}].

        [More info?  Dates?]

        (1996-04-07)

Edinburgh Prolog

        Prolog dialect which eventually developed into the standard,
        as opposed to Marseille Prolog.  (The difference is largely
        syntax.)  Clocksin & Mellish describe Edinburgh Prolog.
        Version: C-Prolog.

        (1995-03-10)

Edinburgh SML

        (EdML) Implementation of the {Core} language of {SML}.
        {Byte-code interpreter} in {C}.  Ported to {Amiga}, {Atari},
        {Archimedes} and {IBM PC}.

        Version: 0.44.

        {(ftp://ftp.dcs.ed.ac.uk/pub/edml/EDML4)}

        E-mail: <lfcs@ed.ac.uk>.

        (1994-12-08)

Edison

        1. (Named after the American inventor Thomas Edison
        (1847-1931))

        A simplified Pascal by Per Brinch Hansen with {modules} and
        {concurrency} (cobegin/coend).

        ["Edison - A Multiprocessor Language", P. Brinch Hansen, CS
        Dept, USC, Sep 1980].

        ["Programming a Personal Computer", Brinch Hansen, P-H 1977].

        2. A language which adds an {OPS5}-like {rete}-based
        {production system} system to {C}.  It is implemented as a {C}
        {preprocessor}.

        ["Edison, A Unix and C Friendly Rete Based Production System",
        B. Thirion, SIGPLAN Notices 27(1):75-84 (Jan 1992)].

        (1994-12-08)

EDL

        1. Experiment Description Language.  J.S. Jenkins.

        "A Programmable System for Acquisition and Reduction of
        Respiratory Physiological Data", J.S. Jenkins et al, Ann
        Biomed Eng, 17:93-108 (1989).

        2. Event Description Language.

        ["EDL: A Basis for Distributed System Debugging Tools",
        P.C. Bates et al, in Proc Hawaii Intl Conf on Sys Sci, Jan
        1982, pp.86-93].

EDM

        {Electronic Data Management}

EdML

        {Edinburgh SML}

EDMS

        {Electronic Document Management System}

EDO DRAM

        {Extended Data Out Dynamic Random Access Memory}

EDO memory

        {Extended Data Out Dynamic Random Access Memory}

EDO RAM

        {Extended Data Out Dynamic Random Access Memory}

EDP

        {Electronic Data Processing}

EDRAM

        <storage> {Enhanced Dynamic Random Access Memory}.

        (1995-11-19)

e-dress

        {electronic mail address}

EDS+

        A {database accelerator} built by {ICL} as part of the {EDS}
        project.  The machine has up to 64 nodes, each node having
        64Mb of memory, 2 {SPARC} processors and a 1Gb of disk.

        See also {PARADE}.

        (1994-11-02)

edu

        <networking> ("education") The {top-level domain} for
        educational establishments in the USA (and some other
        countries).  E.g. "mit.edu".  The UK equivalent is "ac.uk".

        (1999-01-26)

edutainment

        <application> Interactive education and entertainment services
        or software, usually supplied commercially via a cable network
        or on {CD-ROM}.

        (1995-03-30)

Edward Lorenz

        <person> A mathematical meteorologist who discovered the
        {Lorenz attractor} in the 1960s.

        (1996-01-13)

Edward Yourdon

        <person> A {software engineering} consultant, widely known as
        the developer of the "{Yourdon method}" of structured systems
        analysis and design, as well as the co-developer of the
        Coad/Yourdon method of {object-oriented analysis} and design.
        He is also the editor of three software journals - American
        Programmer, Guerrilla Programmer, and Application Development
        Strategies - that analyse software technology trends and
        products in the United States and several other countries
        around the world.

        Ed Yourdon received a B.S. in Applied Mathematics from {MIT},
        and has done graduate work at MIT and at the Polytechnic
        Institute of New York.  He has been appointed an Honorary
        Professor of Information Technology at Universidad CAECE in
        Buenos Aires, Argentina and has received numerous honors and
        awards from other universities and professional societies
        around the world.

        He has worked in the computer industry for 30 years, including
        positions with {DEC} and {General Electric}.  Earlier in his
        career, he worked on over 25 different {mainframe} computers,
        and was involved in a number of pioneering computer projects
        involving {time-sharing} and {virtual memory}.

        In 1974, he founded the consulting firm, {Yourdon, Inc.}.  He
        is currently immersed in research in new developments in
        software engineering, such as object-oriented software
        development and {system dynamics} modeling.

        Ed Yourdon is the author of over 200 technical articles; he
        has also written 19 computer books, including a novel on
        {computer crime} and a book for the general public entitled
        Nations At Risk.  His most recent books are Object-Oriented
        Systems Development (1994), Decline and Fall of the American
        Programmer (1992), Object-Oriented Design (1991), and
        Object-Oriented Analysis (1990).  Several of his books have
        been translated into Japanese, Russian, Chinese, Spanish,
        Portugese, Dutch, French, German, and other languages, and his
        articles have appeared in virtually all of the major computer
        journals.

        He is a regular keynote speaker at major computer conferences
        around the world, and serves as the conference Chairman for
        Digital Consulting's SOFTWARE WORLD conference.  He was an
        advisor to Technology Transfer's research project on software
        industry opportunities in the former Soviet Union, and a
        member of the expert advisory panel on CASE acquisition for
        the U.S. Department of Defense.

        Mr. Yourdon was born on a small planet at the edge of one of
        the distant red-shifted galaxies.  He now lives in the Center
        of the Universe (New York City) with his wife, three children,
        and nine Macintosh computers, all of which are linked together
        through an Appletalk network.

        (1995-04-16)

ee

        <networking> The {country code} for Estonia.

        (1999-01-27)

EEMA

        {European Electronic Messaging Association}

EEPROM

        {Electrically Erasable Programmable Read Only Memory}

        See also {EAPROM}.

EER

        An extended {entity-relationship model}.

E. F. Codd

        <person> The inventor of the {relational data model} of
        {databases}.

        [Name?  More?]

        (1995-11-29)

EFF

        {Electronic Frontier Foundation}

effective computable

        <theory> A term describing a {function} for which there is an
        {effective algorithm} that correctly calculates the function.
        The algorithm must consist of a {finite} sequence of
        instructions.

        (1996-05-03)

effective number of bits

        <hardware> (ENOB) An indication of the quality of an {analog
        to digital converter}.  The measurement is related to the test
        frequency and the {signal-to-noise ratio}.

        [Better definition?]

        (1998-06-15)

Effort Adjustment Factor

        <programming> (EAF) A term used in {COCOMO} to calculate a
        {cost driver attribute}'s effect on a project.  It is the
        product of the effort multipliers corresponding to each of the
        cost drivers for the project.

        (1996-05-29)

EFL

        {Extended FORTRAN Language}

EFNet

        <networking> (From "Eris-free Net", eris being
        eris.berkeley.edu).

        The dominant {Internet Relay Chat} network.

        See also {Undernet}.

        (1995-11-09)

Eforth

        <language> A system produced by Ting to help implementers
        produce Forths for different targets, using {assemblers}.

        (1996-07-28)

E-Forth

        <language> A {Forth} {interpreter} written in {Motorla 6809}
        assembly code by Lennart Benschop
        <lennart@blade.stack.urc.tue.nl>.  Posted to {Usenet}
        newsgroup {alt.sources} on 1993-11-03 with a {Motorola 6809}
        {assembler}.

        (1993-11-03)

eg

        <networking> The {country code} for Egypt.

        (1999-01-27)

EGA

        {Enhanced Graphics Adapter}

egosurfing

        <jargon> Scanning the {World-Wide Web}, databases, print media
        or research papers looking for the mention of your name.

        (1997-04-17)

EGP

        {Exterior Gateway Protocol}

egrep

        An extended version of the {Unix} command {grep}.  Egrep
        accepts extended {regular expression}s (RE) including "*"
        following multi-character REs; "+" (one or more matches); "?"
        (zero or one matches); "|" separating two REs matches either.
        REs may be bracketed with ().  Despite its additional
        complexity, egrep is usually faster that {fgrep} or {grep}.

Eh

        /A/.  Software Portability Group, U Waterloo.  A typeless
        language derived from (and similar to) B.  Provides guaranteed
        order of evaluation for side effects in expressions.  Also
        character indexing operators.

        See also {Zed}.

        ["Eh Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo,
        Nov 1976].

eh

        <networking> The {country code} for Western Sahara.

        (1999-01-27)

EHTS

        Emacs HyperText System.

        An experimental multi-user {hypertext} system from the
        {University of Aalborg}.  It consists of a text editor (based
        on {Epoch} and {GNU Emacs} and written in {elisp}) and a
        graphical {browser} (based on {XView} and written in {C})
        running under the {X Window System} and {OpenWindows}.  Both
        tools use {HyperBase} as their {database}.

        (1995-01-05)

EIA

        {Electronics Industry Association}

EIDE

        {Advanced Technology Attachment Interface with Extensions}

Eiffel

        <language> An {object-oriented} language produced by {Bertrand
        Meyer} <bertrand@eiffel.com> in 1985.  Eiffel has {classes}
        with {multiple inheritance} and {repeated inheritance},
        {deferred class}es (like {Smalltalk}'s {abstract class}), and
        {cluster}s of classes.  Objects can have both {static type}s
        and {dynamic type}s.  The dynamic type must be a descendant of
        the static (declared) type.  {Dynamic binding} resolves
        {multiple inheritance} clashes.  It has flattened forms of
        classes, in which all of the inherited features are added at
        the same level and {generic class}es parametrised by type.

        Other features are {persistent object}s, {garbage collection},
        {exception} handling, {foreign language interface}.  Classes
        may be equipped with {assertions} (routine preconditions and
        postconditions, class {invariant}s) implementing the theory of
        "{Design by Contract}" and helping produce more reliable
        software.

        Eiffel is compiled to {C}.  It comes with libraries containing
        several hundred classes: data structures and {algorithm}s
        (EiffelBase), graphics and user interfaces (EiffelVision) and
        language analysis (EiffelLex, EiffelParse).

        The first release of Eiffel was release 1.4, introduced at the
        first {OOPSLA} in October 1986.  The language proper was first
        described in a University of California, Santa Barbara report
        dated September 1985.

        Eiffel is available, with different libraries, from several
        sources including {Interactive Software Engineering}, USA (ISE
        Eiffel version 3.3); Sig Computer GmbH, Germany (Eiffel/S);
        and {Tower, Inc.}, Austin (Tower Eiffel).

        The language definition is administered by an open
        organisation, the Nonprofit International Consortium for
        Eiffel (NICE).  There is a standard kernel library.

        An {Eiffel source checker} and compiler {front-end} is
        available.

        Latest version as of 1998-10-28: 4.2.

        See also {Sather}, {Distributed Eiffel}, {Lace}, {shelf}.

        E-mail: <queries@eiffel.com>.

        ["Eiffel: The Language", Bertrand Meyer, P-H 1992].

        (1998-11-15)

Eiffel source checker

        A compiler {front-end} for {Eiffel} 3 by Olaf Langmack
        <langmack@inf.fu-berlin.de> and Burghardt Groeber.  It was
        generated automatically with the {Karlsruhe toolbox} for
        compiler construction according to the most recent public
        language definition.  The {parser} derives an easy-to-use
        {abstract syntax tree}, supports elementary error recovery and
        provides a precise source code indication of errors.  It
        performs a strict syntax check and analyses 4000 lines of
        source code per second on a {Sun} {SPARC} {workstation}.

        {(ftp://ftp.fu-berlin.de/pub/heron/ep.tar.Z)}

        (1992-12-14)

eigenvalue

        <mathematics> The factor by which a {linear transformation}
        multiplies one of its {eigenvector}s.

        (1995-04-10)

eigenvector

        <mathematics> A {vector} which, when acted on by a particular
        {linear transformation}, produces a scalar multiple of the
        original vector.  The scalar in question is called the
        {eigenvalue} corresponding to this eigenvector.

        It should be noted that "vector" here means "element of a
        vector space" which can include many mathematical entities.
        Ordinary vectors are elements of a vector space, and
        multiplication by a matrix is a {linear transformation} on
        them; {smooth functions} "are vectors", and many partial
        differential operators are linear transformations on the space
        of such functions; quantum-mechanical states "are vectors",
        and {observables} are linear transformations on the state
        space.

        An important theorem says, roughly, that certain linear
        transformations have enough eigenvectors that they form a
        {basis} of the whole vector states.  This is why {Fourier
        analysis} works, and why in quantum mechanics every state is a
        superposition of eigenstates of observables.

        An eigenvector is a (representative member of a) {fixed point}
        of the map on the {projective plane} induced by a {linear
        map}.

        (1996-09-27)

eight-bit clean

        <software> A term which describes a system that deals
        correctly with extended {character sets} which (unlike ASCII)
        use all eight {bits} of a {byte}.  Many programs and
        communications systems assume that all characters have codes
        in the range 0 to 127.  This leaves the top bit of each byte
        free for use as a {parity} bit or some kind of {flag bit}.
        These assumptions break down when the program is used in some
        non-english-speaking countries with larger alphabets.

        If a binary file is transmitted via a communications link
        which is not eight-bit clean, it will be corrupted.  To combat
        this you can encode it with {uuencode} which uses only {ASCII}
        characters.  There are some links however which are not even
        "seven-bit clean" and cause problems even for uuencoded data.

        (1995-01-05)

eight queens problem

        {eight queens puzzle}

eight queens puzzle

        <algorithm> A puzzle in which one has to place eight queens on
        a chessboard such that no queen is attacking any other,
        i.e. no two queens occupy the same row, column or diagonal.
        One may have to produce all possible such configurations or
        just one.

        It is a common students assignment to devise a program to
        solve the eight queens puzzle.  The {brute force} {algorithm}
        tries all 64*63*62*61*60*59*58*57 = 178,462,987,637,760
        possible layouts of eight pieces on a chessboard to see which
        ones meet the criterion.  More intelligent algorithms use the
        fact that there are only ten positions for the first queen
        that are not reflections of each other, and that the first
        queen leaves at most 42 safe squares, giving only
        10*42*41*40*39*38*37*36 = 1,359,707,731,200 layouts to try,
        and so on.

        The puzzle may be varied with different number of pieces and
        different size boards.

        [Best algorithm?]

        (1999-07-28)

eighty-column mind

        <abuse> The sort said to be possessed by persons for whom the
        transition from {punched card} to {paper tape} was traumatic
        (nobody has dared tell them about disks yet).  It is said that
        these people, including (according to an old joke) the founder
        of {IBM}, will be buried "face down, 9-edge first" (the 9-edge
        being the bottom of the card).  This directive is inscribed on
        IBM's 1402 and 1622 card readers and is referenced in a famous
        bit of doggerel called "The Last Bug", the climactic lines of
        which are as follows:

          He died at the console
          Of hunger and thirst.
          Next day he was buried,
          Face down, 9-edge first.

        The eighty-column mind is thought by most {hackers} to
        dominate IBM's customer base and its thinking.

        See {fear and loathing}, {card walloper}.

        (1996-08-16)

EISA

        {Extended Industry-Standard Architecture}

EL1

        Extensible Language One.  An extensible language by
        B. Wegbreit of Harvard ca 1974.  EL1 is internally somewhat
        {Lisp}-like, but fully typed with {record}s and pointers.  The
        external {syntax} is {ALGOL}-like and extensible, supporting
        user-defined {data structure}s, control structures and
        operations.  The {parser} is table-driven, with a modifiable
        set of productions.  Used as the basis for the {ECL}
        {operating system}.

        ["Studies in Extensible Programming Languages", B. Wegbreit,
        Garland.  Pub 1980].

el(alpha)

        Aims to be a high-level language that knows about real
        hardware, for systems programming.  "Essential Language
        el(alpha) - A Reduced Expression Set Language for Systems
        Programming", T. Watanabe et al, SIGPLAN Notices 26(1):85-98.

Elan

        ["Top-down Programming with Elan", C.H.A. Koster, Ellis
        Horwood 1987].

El Camino Bignum

        <humour> /el' k*-mee'noh big'nuhm/ The road mundanely called
        El Camino Real, a road through the San Francisco peninsula
        that originally extended all the way down to Mexico City and
        many portions of which are still intact.  Navigation on the
        San Francisco peninsula is usually done relative to El Camino
        Real, which defines {logical} north and south even though it
        isn't really north-south many places.  El Camino Real runs
        right past {Stanford University}.

        The Spanish word "real" (which has two syllables: /ray-al'/)
        means "royal"; El Camino Real is "the royal road".  In the
        {FORTRAN} language, a "{real}" quantity is a number typically
        precise to seven significant digits, and a "{double
        precision}" quantity is a larger {floating-point} number,
        precise to perhaps fourteen significant digits (other
        languages have similar "real" types).

        When a {hacker} from {MIT} visited Stanford in 1976, he
        remarked what a long road El Camino Real was.  Making a pun on
        "real", he started calling it "El Camino Double Precision" -
        but when the hacker was told that the road was hundreds of
        miles long, he renamed it "El Camino Bignum", and that name
        has stuck.  (See {bignum}).

        (1996-07-16)

elder days

        The heroic age of hackerdom (roughly, pre-1980); the era of
        the {PDP-10}, {TECO}, {ITS} and the {ARPANET}.  This term has
        been rather consciously adopted from J. R. R. Tolkien's
        fantasy epic "The Lord of the Rings".

        Compare {Iron Age}.  See also {elvish} and {Great Worm}.

Electing a Pope

        <electronics, humour> (From the smoke signals given out when
        the guys in funny hats choose a new Pope) Causing an
        {integrated circuit} or other electronic component to emit
        smoke by passing too much current through it.

        See {magic smoke}.

        (1995-08-18)

Electrically Alterable Programmable Read Only Memory

        <storage> (EAPROM) A {PROM} whose contents can be changed.

        [What's the difference between EAPROM and {EEPROM}?]

        (1995-11-12)

Electrically Erasable Programmable Read Only Memory

        <storage> (EEPROM) A {non-volatile storage} device using a
        technique similar to the floating gates in {EPROM}s but with
        the capability to discharge the floating gate electrically.
        Usually bytes or words can be erased and reprogrammed
        individually during system operation.

        In contrast to {RAM}, writing takes much longer than reading
        and EEPROM is more expensive and less dense than RAM.  It is
        appropriate for storing small amounts of data which is changed
        infrequently, e.g. the hardware configuration of an {Acorn}
        {Archimedes}.

        [Difference from {EAPROM}?]

        (1995-04-22)

Electromagnetic Compatibility

        <hardware, testing> (EMC) The extent to which a piece of
        hardware will tolerate electrical interference from other
        equipment, and will interfere with other equipment.

        There are strict legal EMC requirements for the sale of any
        electrical or electronic hardware in most countries, although
        the actual standards differ.  See, for example, {EMCNet
        (http://www.emcnet.com/)}.

        See also {Electrostatic Discharge}, {Radio Frequency
        Interference}.

        (1997-12-19)

electromigration

        <electronics> Mass transport due to momentum exchange between
        conducting electrons and diffusing metal atoms.
        Electromigration causes progressive damage to the metal
        conductors in an {integrated circuit}.  It is characteristic
        of metals at very high current density and temperatures of
        100C or more.

        The term was coined by Professor Hilbert Huntington in the
        late 1950s because he didn't like the German use of the word
        "electrotransport".

        Mass transoport occurs via the Einstein relation J=DFC/kT
        where F is the driving force for the transoport.  For
        electromigraiton F is z*epj and z* is an electromigration
        parameter relating the momentum exchange and z is the charge
        of the "diffusing" species.

        (1999-02-25)

electron

        <electronics> A sub-atomic particle with a negative quantised
        {charge}.  A flow of electrical {current} consists of the
        unidirectional (on average) movement of many electrons.  The
        more mobile electrons are in a given material, the greater it
        electrical conductance (or equivalently, the lower its
        resistance).

        (1995-10-06)

electronic commerce

        <application, communications> (EC) The conducting of business
        communication and transactions over networks and through
        computers.  As most restrictively defined, electronic commerce
        is the buying and selling of goods and services, and the
        transfer of funds, through digital communications.  However EC
        also includes all inter-company and intra-company functions
        (such as marketing, finance, manufacturing, selling, and
        negotiation) that enable commerce and use {electronic mail},
        {EDI}, file transfer, fax, {video conferencing}, {workflow},
        or interaction with a remote computer.

        Electronic commerce also includes buying and selling over the
        {World-Wide Web} and the {Internet}, {electronic funds
        transfer}, {smart card}s, {digital cash} (e.g. Mondex), and all
        other ways of doing business over digital networks.

        [{Electronic Commerce Dictionary}].

        (1995-10-08)

Electronic Commerce Dictionary

        <publication> A lexicon of {electronic commerce} terms.  It
        includes over 900 terms and acronyms, and over 200 {web site}
        addresses.  It has entries on commerce over the {World-Wide
        Web}, {Internet} payment systems, The {National Information
        Infrastructure}, {Electronic Data Interchange}, {Electronic
        Funds Transfer}, {Public Key Cryptography}, {smart cards} and
        {digital cash}, computer and network security for commerce,
        marketing through electronic media.

        {Home (http://www.tedhaynes.com/haynes1/intro.html)}.

        (1999-03-24)

electronic data interchange

        <application, communications> (EDI) The exchange of
        standardised document forms between computer systems for
        business use.  EDI is part of {electronic commerce}.

        EDI is most often used between different companies ("trading
        partners") and uses some variation of the {ANSI X12}
        {standard} (USA) or {EDIFACT} (UN sponsored global standard).

        [{Electronic Commerce Dictionary}].

        (1995-10-06)

Electronic Data Processing

        <application> (EDP) {data processing} by electronic machines,
        i.e. computers.

        (1995-03-30)

Electronic Design Automation

        <application> (EDA) Software tools for the development of
        {integrated circuit}s and systems.

        Companies selling EDA tools include {Cadence}, {Intergraph},
        {Mentor}, {Synopsys}, {Viewlogic}.  {Zuken-Redac Dazix} has
        been acquired by Intergraph.

        (1995-10-09)

Electronic Frontier Foundation

        <body> (EFF) A group established to address social and legal
        issues arising from the impact on society of the increasingly
        pervasive use of computers as a means of communication and
        information distribution.  EFF is a non-profit civil liberties
        public interest organisation working to protect freedom of
        expression, privacy, and access to on-line resources and
        information.

        {Home (http://www.eff.org/)}

        (1994-12-08)

electronic magazine

        <messaging, publication, World-Wide Web> (e-zine) A regular
        publication on some particular topic distributed in digital
        form, cheifly now via the {World-Wide Web} but also by
        {electronic mail} or {floppy disk}.  E-zines are often
        distributed for free by enthusiasts.

        (1996-08-04)

electronic mail

        <messaging> (e-mail) Messages automatically passed from one
        computer user to another, often through computer {networks}
        and/or via {modems} over telephone lines.

        A message, especially one following the common {RFC 822}
        {standard}, begins with several lines of {headers}, followed
        by a blank line, and the body of the message.  An increasing
        number of e-mail systems support the {MIME} {standard} which
        allows the message body to contain "{attachments}" of
        different kinds rather than just one block of plain {ASCII}
        text.  It is conventional for the body to end with a
        {signature}.

        Headers give the name and {electronic mail address} of the
        sender and recipient(s), the time and date when it was sent
        and a subject.  There are many other headers which may get
        added by different {message handling systems} during delivery.

        The message is "composed" by the sender, often using a special
        program - a "{Mail User Agent}" (MUA).  It is then passed to
        some kind of "{Message Transfer Agent}" (MTA) - a program
        which is responsible for either delivering the message locally
        or passing it to another MTA, probably on another {host}.
        MTAs on different hosts on a network often communicate using
        {SMTP}.  The message is eventually delivered to the
        recipient's {mailbox} - normally a file on his computer - from
        where he can read it using a mail reading program (which may
        or may not be the same {MUA} as used by the sender).

        Contrast {snail-mail}, {paper-net}, {voice-net}.

        The form "email" is also seen, but is less common and less
        suggestive of the correct pronunciation and derivation than
        "e-mail".  The word is used as a noun for the concept ("Isn't
        e-mail great?", "Are you on e-mail?"), a collection of
        (unread) messages ("I spent all night reading my e-mail"), and
        as a verb meaining "to send (something in) an e-mail message"
        ("I'll e-mail you (my report)").

        Oddly enough, the word "emailed" is actually listed in the
        Oxford English Dictionary.  It means "embossed (with a raised
        pattern) or arranged in a net work".  A use from 1480 is
        given.  The word is derived from French "emmailleure",
        network.  Also "email" is German for enamel.

        (1998-06-25)

electronic mail address

        <messaging> (Usually "e-mail address", rarely "e-dress",
        "e-ddress") The string used to specify the source or
        destination of an {electronic mail} message.
        E.g. "john@doc.acme.ac.uk".

        The {RFC 822} standard is probably the most widely used on the
        {Internet} though {X.400} is also in use in Europe and Canada.
        {UUCP}-style ({bang path}) addresses or other kinds of {source
        route} became virtually extinct in the 1990s.

        In the example above, "john" is the {local part} which is the
        name of a {mailbox} on the destination computer.  If the
        sender and recipient use the same computer, or the same {LAN},
        for electronic mail then the local part is usually all that is
        required.

        If they use different computers, e.g. they work at different
        companies or use different {Internet service providers}, then
        the "host part", e.g. "sales.acme.com" must be appended after
        an "@".  This usually takes the form of a {fully qualified
        domain name} or, within a large organisation, it may be just
        the {hostname} part, e.g. "sales".  The destination computer
        named by the host part is often a {server} of some kind rather
        than an individual's {workstation} or {PC}.  The user's mail
        is stored on the server and read later via {client} mail
        software running on the user's computer.

        Large organisations, such as universities will often set up a
        global {alias} directory which maps a simple user name such as
        "jsmith" to an address which contains more information such as
        "jsmith@london.bigcomp.co.uk".  This hides the detailed
        knowledge of where the message will be delivered from the
        sender, making it much easier to redirect mail if a user
        leaves or moves to a different computer for example.

        (1996-10-22)

Electronic Numerical Integrator and Computer

        <computer> (ENIAC) The first ever general-purpose digital
        electronic computer and the ancestor of most computers in use
        today.  ENIAC was developed by {John Mauchly} and {J. Presper
        Eckert} during World War II at the Moore School of the
        {University of Pennsylvania} and was released publicly in
        1946.

        ENIAC was underwritten and its development overseen by
        Lieutenant Herman Goldstine of the U.S. Army Ballistic
        Research Laboratory (BRL).  While the prime motivation for
        constructing the machine was to automate the wartime
        production of firing and bombing tables, the very first
        program run on ENIAC was a highly classified computation
        for Los Alamos.  Later applications included weather
        prediction, cosmic ray studies, wind tunnel design,
        petroleum exploration, and optics.

        The machine performed an addition in 200 {microseconds}, a
        multiplication in about three {milliseconds}, and a division
        in about 30 milliseconds.

        {John von Neumann}, a world-renowned mathematician serving on
        the BRL Scientific Advisory Committee, soon joined the
        developers of ENIAC and made some critical contributions.
        While Mauchly, Eckert and the Penn team continued on the
        technological problems, he, Goldstine, and others took up the
        logical problems.  In 1947, while working on the design for
        the successor machine, EDVAC, von Neumann realized that
        ENIAC's lack of a centralized control unit could be overcome
        to obtain a rudimentary stored program computer.
        Modifications were undertaken, that eventually led to an
        {instruction set} of 92 "orders".  {Von Neumann} also proposed
        the {fetch-execute cycle}.

        [R. F. Clippinger, "A Logical Coding System Applied to the
        ENIAC", Ballistic Research Laboratory Report No. 673, Aberdeen
        Proving Ground, MD, September 1948.
        {(http://ftp.arl.mil/~mike/comphist/48eniac-coding)}].

        [H. H. Goldstine, "The Computer from Pascal to von Neumann",
        Princeton University Press, 1972].

        [K. Kempf, "Electronic Computers within the Ordnance Corps",
        Aberdeen Proving Ground, MD, 1961.
        {(http://ftp.arl.mil/~mike/comphist/61ordnance)}].

        [M. H. Weik, "The ENIAC Story", J. American Ordnance Assoc.,
        1961. {(http://ftp.arl.mil/~mike/comphist/eniac-story.html)}].

        (1997-08-03)

Electronic Performance Support System

        <tool> (EPSS) A system that provides electronic task guidance
        and support to the user at the moment of need.  EPSS can
        provide {application} help, reference information, guided
        instructions and/or tutorials, subject matter expert advice
        and hints on how to perform a task more efficiently.  An EPSS
        can combine various technologies to present the desired
        information.  The information can be in the form of text,
        {graphical displays}, sound, and {video} presentations.

        ["Electronic Performance Support Systems: How and Why to
        Remake the Workplace Through the Strategic Application of
        Technology", Gloria Gerry, Weingarten Press].

        (1997-10-24)

Electronics Industry Association

        <body, standard> (EIA) A body which publishes "Recommended
        Standards" (RS) for physical devices and their means of
        interfacing.  {RS-232} is their standard that defines a
        computer's {serial port}, connector pin-outs, and electrical
        signaling.

        (1995-03-02)

electronic whiteboarding

        {Audiographic Teleconferencing}

electron model

        <electronics> A {model} of {semiconductor} behaviour in which
        {donors} contribute the {charge} of an {electron}, and
        {acceptors} contribute a space for same, in effect
        contributing a fictional positive charge of similiar
        magnitude.  Physicists use the {electron model}.  Some
        language theorists consider language and the {electron} to be
        {model}s in themselves.

        Contrast {hole model}.

        (1995-10-06)

electron tube

        <electronics> (Or tube, vacuum tube, UK: valve, electron
        valve, thermionic valve, firebottle, glassfet) An electronic
        component consisting of a space exhausted of gas to such an
        extent that electrons may move about freely, and two or more
        electrodes with external connections.  Nearly all tubes are of
        the thermionic type where one electrode, called the cathode,
        is heated, and electrons are emitted from its surface with a
        small energy (typically a Volt or less).  A second electrode,
        called the anode (plate) will attract the electrons when it is
        positive with respect to the cathode, allowing current in one
        direction but not the other.

        In types which are used for amplification of signals,
        additional electrodes, called grids, beam-forming electrodes,
        focussing electrodes and so on according to their purpose, are
        introduced between cathode and plate and modify the flow of
        electrons by electrostatic attraction or (usually) repulsion.
        A voltage change on a grid can control a substantially greater
        change in that between cathode and anode.

        Unlike {semiconductors}, except perhaps for {FET}s, the
        movement of electrons is simply a function of electrostatic
        field within the active region of the tube, and as a
        consequence of the very low mass of the electron, the currents
        can be changed quickly.  Moreover, there is no limit to the
        current density in the space, and the electrodes which do
        dissapate power are usually metal and can be cooled with
        forced air, water, or other refrigerants.  Today these
        features cause tubes to be the active device of choice when
        the signals to be amplified are a power levels of more than
        about 500 watts.

        The first electronic digital computers used hundreds of vacuum
        tubes as their active components which, given the reliability
        of these devices, meant the computers needed frequent repairs
        to keep them operating.  The chief causes of unreliability are
        the heater used to heat the cathode and the connector into
        which the tube was plugged.

        Vacuum tube manufacturers in the US are nearly a thing of the
        past, with the exception of the special purpose types used in
        broadcast and image sensing and displays.  Eimac, GE, RCA, and
        the like would probably refer to specific types such as "Beam
        Power Tetrode" and the like, and rarely use the generic terms.

        The {cathode ray tube} is a special purpose type based on
        these principles which is used for the visual display in
        television and computers.  X-ray tubes are diodes (two element
        tubes) used at high voltage; a tungsten anode emits the
        energetic photons when the energetic electrons hit it.
        Magnetrons use magnetic fields to constrain the electrons;
        they provide very simple, high power, ultra-high frequency
        signals for radar, microwave ovens, and the like.  Klystrons
        amplify signals at high power and microwave frequencies.

        (1996-02-05)

Electrostatic Discharge

        <hardware, testing> (ESD) One kind of test that hardware
        usually has to pass to prove it is suitable for sale and use.
        The hardware must still work after is has been subjected to
        some level of electrostatic discharge.  Some organisations
        have their own ESD requirements which hardware must meet
        before it will be considered for purchase.

        Different countries have different legal regulations about
        levels of ESD.

        See also {Radio Frequency Interference}, {Electromagnetic
        Compatibility}.

        (1997-12-19)

elegant

        (From Mathematics) Combining simplicity, power, and a certain
        ineffable grace of design.  Higher praise than "clever",
        "winning" or even {cuspy}.

        The French aviator, adventurer, and author Antoine de
        Saint-Exup'ery, probably best known for his classic children's
        book "The Little Prince", was also an aircraft designer.  He
        gave us perhaps the best definition of engineering elegance
        when he said "A designer knows he has achieved perfection not
        when there is nothing left to add, but when there is nothing
        left to take away."

        (1994-11-29)

elephant

        Large, grey, four-legged mammal.

elephantine

        Used of programs or systems that are both conspicuous {hog}s
        (owing perhaps to poor design founded on {brute force and
        ignorance}) and exceedingly {hairy} in source form.  An
        elephantine program may be functional and even friendly, but
        (as in the old joke about being in bed with an elephant) it's
        tough to have around all the same (and, like a pachyderm,
        difficult to maintain).  In extreme cases, hackers have been
        known to make trumpeting sounds or perform expressive
        proboscatory mime at the mention of the offending program.
        Usage: semi-humorous.  Compare "has the elephant nature" and
        the somewhat more pejorative monstrosity.  See also
        {second-system effect} and {baroque}.

elevator controller

        An archetypal dumb embedded-systems application, like
        {toaster} (which superseded it).  During one period (1983--84)
        in the deliberations of ANSI X3J11 (the C standardisation
        committee) this was the canonical example of a really stupid,
        memory-limited computation environment.  "You can't require
        "printf(3)" to be part of the default run-time library - what
        if you're targeting an elevator controller?"  Elevator
        controllers became important rhetorical weapons on both sides
        of several {holy wars}.

ELF

        Binary format used by System V Release 4 Unix.

ELI

        1. <language> An early system on the {IBM 705} and {IBM 650}.

        [Listed in CACM 2(5):16 (May 1959)].

        2. {Embedded Lisp Interpreter}.

Eli Compiler Construction System

        <tool> A compiler generation package which integrates
        off-the-shelf tools and libraries with specialised language
        processors to generate complete compilers quickly and
        reliably.  It simplifies the development of new
        special-purpose languages, implementation of existing
        languages on new hardware and extension of the constructs and
        features of existing languages.

        Version 3.5 runs on {Sun-4} ({SunOS} 4, 5), {Ultrix}/{MIPS},
        {RS/6000}, {HP-UX}, {SGI}, {Linux}.

        {Colorado U (ftp://ftp.cs.colorado.edu/pub/cs/distribs/eli/)}.
        {Europe (ftp://ftp.uni-paderborn.de/Unix/eli)}.

        Mailing list: <eli-request@cs.colorado.edu>.

        E-mail: <compiler@cs.colorado.edu>,
        <compiler@uni-paderborn.de>.

        (1993-11-01)

ELISP

        1. <language> A {Lisp} variant originally implemented for
        {DEC-20}s by Chuck Hedrick of Rutgers.

        2. <language> A common abbreviation for {Emacs Lisp}.  Use of
        this abbreviation is discouraged because "Elisp" is or was a
        trademark.

        [Still a trademark?  Whose?]

        (1995-04-04)

elite

        1. <security> A term used to describe skilled {crackers} or
        {hackers}, or their deeds.  In the last sense, compare to
        {elegant}.

        The term is also used to describe exclusive forums ({ftp}
        sites, {BBS}s) used for trading pirated software, {crack}ing
        tools, or {phreaking} codes.

        (1997-01-31)

ELIZA

        <artificial intelligence> A famous program by {Joseph
        Weizenbaum}, which simulated a Rogerian psychoanalyst by
        rephrasing many of the patient's statements as questions and
        posing them to the patient.  It worked by simple {pattern
        recognition} and substitution of key words into canned
        phrases.  It was so convincing, however, that there are many
        anecdotes about people becoming very emotionally caught up in
        dealing with ELIZA.  All this was due to people's tendency to
        attach to words meanings which the computer never put there.

        See also {ELIZA effect}.

        (1997-09-13)

ELIZA effect

        <jargon> /e-li:'z* *-fekt'/ (From {ELIZA}) The tendency of
        humans to attach associations to terms from prior experience.
        For example, there is nothing magic about the symbol "+" that
        makes it well-suited to indicate addition; it's just that
        people associate it with addition.  Using "+" or "plus" to
        mean addition in a computer language is taking advantage of
        the ELIZA effect.

        The ELIZA effect is a {Good Thing} when writing a programming
        language, but it can blind you to serious shortcomings when
        analysing an {Artificial Intelligence} system.

        Compare {ad-hockery}; see also {AI-complete}.

        (1997-09-13)

Elk

        {Extension Language Kit}

ELLA

        A hardware design language from DRA Malvern.  Implemented in
        {ALGOL68-RS}.

        E-mail: <ella@dra.hmg.gb>.  {SPARC version
        (ftp://src.doc.ic.ac.uk/packages/ELLA)}.

        ["ELLA 2000: A Language for Electronic System Design",
        J.D. Morison and A.S. Clarke, McGraw-Hill 1993].

Ellemtel

        A {C++} style-guide originated by {Ellemtel Telecom Systems},
        Stockholm.

Ellie

        Object-oriented language with fine-grained parallelism for
        distributed computing.  Based on BETA, Smalltalk, and others.
        Parallelism by unbounded RPC and 'future' objects.
        Synchronisation by 'dynamic interfaces.  Classes, methods,
        blocks and objects all modelled by first- class 'Ellie
        objects'.  Genericity, polymorphism and
        delegation/inheritance.  "Ellie Language Definition Report",
        Birger Andersen <birger@diku.dk>, SIGPLAN Notices 25(11):45-65
        (Nov 1990).  doc: diku.dk:ellie/papers

ELLIS

        EuLisp LInda System.  An object-oriented Linda system written
        for EuLisp.  "Using Object-Oriented Mechanisms to Describe
        Linda", P. Broadbery <pab@maths.bath.ac.uk> et al, in
        Linda-Like Systems and Their Implementation, G. Wilson ed, U
        Edinburgh TR 91-13, 1991.

elm

        <messaging> A {full-screen} {MUA} for {Unix}, {MS-DOS}, {MS
        Windows}, and {OS/2}.

        {Usenet} newsgroup: {news:comp.mail.elm}.

        {FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/elm/FAQ/faq.html)}.

        (1996-03-20)

ELMAGUIDE

        <language> The {metalanguage} used for interpretation of user
        actions in the {ELMA} compiler writer developed at Tallinn
        Poly Institute in 1978.

        (1996-03-20)

ELMAMETA

        A FORTRAN extension, written at the {Tallinn Poly Inst} in
        1978, used for lexical, syntactic and semantic sepecification
        in the {ELMA} {compiler} writer.  This system was widely used
        in the Soviet Union, and produced an {Ada} to {Diana}
        {compiler}.

        (1994-12-08)

ELP

        1. English Language Programs.  Language for testing avionics
        equipment, on Varian 620/i.

        "Multiband Automatic test Equipment - A Computer Controlled
        Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971).

        2. Equational Logic Programming.  A semantically pure, fully
        {lazy} language by M.J. O'Donnell <odonnell@cs.uchicago.edu>.
        Current version: 4.2.

        {Sun and DEC versions
        (ftp://gargoyle.uchicago.edu/pub/equations/eq4.2.tar.Z)}.

        ["Equational Logic as a Programming Language", M.J. O'Donnell,
        MIT Press 1985].

ELSIE

        <language> A distributed version of {ELLIS}.

        ["Using Object-Oriented Mechanisms to Describe Linda",
        P. Broadbery <pab@maths.bath.ac.uk> et al, in "Linda-Like
        Systems and Their Implementati"on, G. Wilson ed, U Edinburgh
        TR 91-13, 1991].

        (1995-11-16)

Elvis

        <tool> A {vi} lookalike which supports nearly all of the vi/ex
        commands, in both visual mode and colon mode.

        Like vi/ex, elvis stores most of the text in a temporary file
        instead of RAM.  This allows it to edit files that are too
        large to fit in a single process' data space.

        Elvis runs under {BSD} UNIX, AT&T {SysV} UNIX, {MINIX},
        {MS-DOS}, {Atari TOS}, {Coherent}, {OS9}/68000, {VMS},
        {Windows 95} and {Windows NT}.

        Elvis is just as awful to use as vi, so someone will like it.

        Version 1.8pl14 (1995-09-04).

        {FTP Delft (ftp://dutepp0.et.tudelft.nl/pub/Unix/Editors/)},
        {FTP PDX (ftp://ftp.cs.pdx.edu/pub/elvis/)}.

        E-mail: Steve Kirkendall <kirkenda@cs.pdx.edu>.

        (1995-11-16)

elvish

        <character> 1. The Tengwar of Feanor, a table of letterforms
        resembling the beautiful Celtic half-uncial hand of the "Book
        of Kells".  Invented and described by J.R.R. Tolkien in "The
        Lord of The Rings" as an orthography for his fictional
        "elvish" languages, this system (which is both visually and
        phonetically {elegant}) has long fascinated hackers (who tend
        to be intrigued by artificial languages in general).  It is
        traditional for graphics printers, plotters, window systems,
        and the like to support a Feanorian typeface as one of their
        demo items.  By extension, the term might be used for any odd
        or unreadable typeface produced by a graphics device.

        2. The typeface mundanely called "B"ocklin", an art-decoish
        {display font}.  [Why?]

        (1998-04-28)

EM

        {End of Medium}

EM-1

        <language> A {stack}-oriented intermediate language from
        {Vrije University Amsterdam}, used by the {Amsterdam Compiler
        Kit}.

        E-mail: Andrew Tanenbaum <ast@cs.vu.nl>.

        (1996-04-07)

EMA

        Extended Mercury Autocode.

        See {Autocode}.

        (1995-01-24)

Emacs

        <text, tool> /ee'maks/ Editing MACroS, or Extensible MACro
        System.  A popular {screen editor} used on {Unix}, {VMS} and
        other systems.  Emacs is distributed by the {Free Software
        Foundation} and was {Richard Stallman}'s first step in the
        {GNU} project.  Emacs is extensible - it is easy to add new
        functions; customisable - you can rebind keys, and modify the
        behaviour of existing functions; self-documenting - there is
        extensive on-line, context-sensitive help; and has a real-time
        "what you see is what you get" display.  Emacs is writen in
        {C} and the higher levels are programmed in {Emacs Lisp}.

        Emacs has an entire {Lisp} system inside it.  It was
        originally written in {TECO} under {ITS} at the {MIT} {AI
        lab}.  AI Memo 554 described it as "an advanced,
        self-documenting, customisable, extensible real-time display
        editor".  It has since been reimplemented any number of times,
        by various hackers, and versions exist that run under most
        major {operating systems}.

        It includes facilities to view directories, run compilation
        subprocesses and send and receive {electronic mail} and
        {Usenet} {news} ({GNUS}).  The {efs} package (originally
        ange-ftp) provides transparent access to files on remote {FTP}
        {servers}.  {Calc} is a calculator and {symbolic mathematics}
        package.  There are "modes" provided to assist in editing most
        well-known programming languages.  Many hackers spend more
        than 80% of their {tube time} inside Emacs.

        Other variants include {GOSMACS}, CCA EMACS, UniPress EMACS,
        Montgomery EMACS, {jove}, {epsilon}, {Lucid Emacs} and
        {MicroEMACS}.

        Some EMACS versions running under {window managers} iconify as
        an overflowing kitchen sink, perhaps to suggest the one
        feature the editor does not (yet) include.  Indeed, some
        hackers find EMACS too {heavyweight} and {baroque} for their
        taste, and expand the name as "Escape Meta Alt Control Shift"
        to spoof its heavy reliance on keystrokes decorated with
        {bucky bits}.  Other spoof expansions include "Eight Megabytes
        And Constantly Swapping", "Eventually "malloc()'s All Computer
        Storage", and "EMACS Makes A Computer Slow" (see {recursive
        acronym}).  See also {vi}.

        Version 19.25 (1994-05-30) includes the editor, Lisp
        {interpreter}, documentation and source debugger as well as a
        great many standard Lisp packages.

        {FTP} from your nearest {GNU archive site}.

        E-mail: (bug reports only) <bug-gnu-emacs@prep.ai.mit.edu>.

        {Usenet} newsgroups: {news:gnu.emacs.help},
        {news:gnu.emacs.bug}, {news:alt.religion.emacs},
        {news:gnu.emacs.sources}, {news:gnu.emacs.announce}.

        (1997-02-04)

Emacs Lisp

        <language> A dialect of {Lisp} used to implement the higher
        layers of the {Free Software Foundation}'s editor, {GNU}
        {Emacs}.  Sometimes abbreviated to "{elisp}".  An enormous
        number of Emacs Lisp packages have been written including
        modes for editing many programming languages and interfaces to
        many {Unix} programs.

e-mail

        {electronic mail}

e-mail address

        {electronic mail address}

EMAS

        {Edinburgh Multi Access System}

Embedded Lisp Interpreter

        <language> (ELI) A small {Common Lisp}-like {interpreter}
        embedded in the {Andrew mail system} by Bob Glickstein
        <bobg@andrew.cmu.edu>.

        (1995-04-04)

Embedded Mode

        <programming> A term used by {COCOMO} to describe a project
        development that is characterised by tight, inflexible
        constraints and interface requirements.  The product must
        operate within (is embedded in) a strongly coupled complex of
        hardware, software, regulations and operational procedures.
        An embedded mode project will require a great deal of
        innovation.  An example would be a {real-time system} with
        timing constraints and customised hardware.

        (1996-05-29)

embedded system

        <computer> Hardware and software which forms a component of
        some larger system and which is expected to function without
        human intervention.

        A typical embedded system consists of a single-board
        {microcomputer} with software in {ROM}, which starts running
        some special purpose {application program} as soon as it is
        turned on and will not stop until it is turned off (if ever).

        An embedded system may include some kind of {operating system}
        but often it will be simple enough to be written as a single
        program.  It will not usually have any of the normal
        {peripheral}s such as a keyboard, monitor, serial connections,
        mass storage, etc. or any kind of user interface software
        unless these are required by the overall system of which it is
        a part.  Often it must provide {real-time} response.

        {Usenet} newsgroup: {news:comp.arch.embedded}.

        (1995-04-12)

embedding

        1. <mathematics> One instance of some mathematical object
        contained with in another instance, e.g. a {group} which is a
        subgroup.

        2. <theory> ({domain theory}) A {complete partial order} F in
        [X -> Y] is an embedding if

        (1) For all x1, x2 in X, x1 <= x2 <=> F x1 <= F x2 and

        (2) For all y in Y, {x | F x <= y} is {directed}.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-03-27)

EMBLA Pro

        <messaging, tool> An {IMAP}-compliant {electronic mail}
        {client} from {WinSoft Products Ltd}.  EMBLA Pro allows you to
        use an IMAP mail server in a true client/server network
        manner, once you've connected to the IMAP server, you can
        organise messages into folders on the server and you can view
        messages and any attached files at the server before deciding
        whether or not to download them to your local system.  IMAP
        allows the user to select individual message attachments to be
        viewed and/or downloaded.  You can delete files and messages
        from the server, move or copy them to the local computer or
        leave them for future retrieval.  EMBLA Pro also supports the
        standard {POP3} protocol.  Both POP3 and IMAP2 run over
        {E-SMTP}.

        The IMAP {Unix} {daemons} can support specific environments,
        for example, Sun MailTool attachments.  All flavours of Unix
        are catered for with a suite of binary mail daemons, eg:
        {SunSoft} {Solaris}, {HP}, {IBM} and {SCO}.

        EMBLA conforms to the SMTP, E-SMTP, {MIME} and IMAP {Internet}
        standards - RFC1590 (RFC1521), RFC1522, RFC1426, RFC1425,
        RFC1176, RFC0822, RFC0821 and the draft update of RFC1176.

        {Home (http://www.ftech.co.uk/~winsoft/embla.htm)}

        (1996-03-11)

embosser

        {Braille printer}

EMC

        {Electromagnetic Compatibility}

EMD Enterprises, Inc.

        <company> A software development and consulting firm
        specialising in {database} and {client-server} applications.

        {(http://www.emdent.com/)}

        (1994-12-12)

EMDIR

        The CERN {Electronic Mail DIRectory} utility.

        [Details?]

        (1995-02-23)

Emerald

        An {object-oriented} distributed programming language and
        environment developed at the {University of Washington} in the
        early 1980s.  Emeral was the successor to {EPL}.  It is
        {strongly typed} and uses {signature}s and {prototype}s rather
        than {inheritance}.

        ["Distribution and Abstract Types in Emerald", A. Black et al,
        IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987)].

        (1994-11-09)

Emitter Coupled Logic

        (ECL) (Or "Current Mode Logic") A technology for building
        logic gates where the emitter of a {transistor} is used as the
        output rather than its collector.  ECL has a propagation time
        of 0.5 - 2 ns (faster than {TTL}) and a power dissipation 3 -
        10 times higher than {TTL}.

        (1994-11-09)

EML

        Extended ML.  A language for formally specifying {SML}
        programs.

        ["Formal Program Development in Extended ML for the Working
        Programmer", D.  Sannella, Proc 3rd BCS/FACS Workshop on
        Refinement", Springer 1990].

EMM

        <storage> {Expanded Memory Manager}.

        (1996-01-12)

EMM386

        <software, storage> An {expanded memory manager} for {IBM PCs}
        with an {Intel 80386} or higher processor, part of {MS-DOS}
        version 5.00 or higher.  EMM386 uses {extended memory} to
        simulate {expanded memory} and also provides {upper memory
        blocks}.  It must be loaded by a DEVICE= command in your
        {CONFIG.SYS} file.

        (1996-01-13)

emote

        <chat> (emotion) A command used on {talk} systems and {MUD}s
        to indicate the performance of an action, usually a facial
        expression of emotional state.

        (1996-11-28)

emoticon

        /ee-moh'ti-kon/ An {ASCII} {glyph} used to indicate an
        emotional state in {electronic mail} or {news}.  Although
        originally intended mostly as jokes, emoticons (or some other
        explicit humour indication) are virtually required under
        certain circumstances in high-volume text-only communication
        forums such as {Usenet}; the lack of verbal and visual cues
        can otherwise cause what were intended to be humorous,
        sarcastic, ironic, or otherwise non-100%-serious comments to
        be badly misinterpreted (not always even by {newbie}s),
        resulting in arguments and {flame war}s.

        Hundreds of emoticons have been proposed, but only a few are
        in common use.  These include:

         :-)    "smiley face" (for humour, laughter,
                friendliness, occasionally sarcasm)

         :-(    "frowney face" (for sadness, anger, or upset)

         ;-)    "half-smiley" (ha ha only serious); also
                known as "semi-smiley" or "winkey face".

         :-/    "wry face"

        These may become more comprehensible if you tilt your head
        sideways, to the left.  The first two are by far the most
        frequently encountered.  Hyphenless forms of them are common
        on {CompuServe}, {GEnie}, and {BIX}; see also {bixie}.  On
        {Usenet}, "smiley" is often used as a generic term synonymous
        with emoticon, as well as specifically for the happy-face
        emoticon.

        It appears that the emoticon was invented by one Scott Fahlman
        on the {CMU} {bboard} systems around 1980.  He later wrote: "I
        wish I had saved the original post, or at least recorded the
        date for posterity, but I had no idea that I was starting
        something that would soon pollute all the world's
        communication channels."  [GLS confirms that he remembers this
        original posting].

        As with exclamation marks, overuse of the smiley is a mark of
        loserhood!  More than one per paragraph is a fairly sure sign
        that you've gone over the line.

        (1994-12-02)

empire

        <games> Any of a family of military simulations derived from a
        game written by Peter Langston many years ago.  Five or six
        multi-player variants of varying degrees of sophistication
        exist, and one single-player version implemented for both
        {Unix} and {VMS}; the latter is even available as {MS-DOS}
        {freeware}.  All are notoriously addictive.

        (1995-08-06)

EMS

        {Expanded Memory Specification}

EMU8000

        <multimedia, hardware, music> The "{Advanced WavEffect}" music
        synthesizer {integrated circuit} used on the {SB AWE32} card.

        The EMU8000 is a sub-system offering high quality music
        synthesis and an "effect {engine}" which provides musical
        effects like reverb and chorus to {MIDI} playback.  The
        EMU8000 supports up to 32 voices, and the effect amount for
        each voice can be controlled via MIDI.

        (1996-12-15)

emulation

        One system is said to emulate another when it performs in
        exactly the same way, though perhaps not at the same speed.  A
        typical example would be emulation of one computer by (a
        program running on) another.  You might use an emulation as a
        replacement for a system whereas you would use a simulation if
        you just wanted to analyse it and make predictions about it.

        (1995-05-12)

emulator

        {Hardware} or {software} that performs {emulation}.

        (1995-05-12)

Emulator program

        <networking> (EP) {IBM} software that emulates a 2701/2/3
        hard-wired {IBM 360} communications controller and resides in
        a 370x/372x/374x comms controller.

        See also {Partitioned Emulation Program} (PEP).

        (1999-01-29)

EMX

        A programming environment for {OS/2} by Eberhard Mattes
        <mattes@azu.informatik.uni-stuttgart.de>.  EMX supports
        programming in {C}, {C++} and {Objective C}.  It works with
        {gcc}, {g++}, {gdb}, {libg++}, .obj linkage, {DLL} and
        {header}s.  Version 0.8g.

        {Europe (ftp://ftp.uni-stuttgart.de/soft/os2/emx-0.8g)}.  {US
        (ftp://ftp-os2.cdrom.com/os2/2_x/Unix/gnu/emx0.8g)}.

        Mailing list: <listserv@ludd.luth.se> ("subscribe to
        emx-list").

        (1992-09-21)

enabling

        {software enabling}

Encapsulated PostScript

        (EPS) An extension of the {PostScript} graphics file format
        developed by {Adobe Systems}.  EPS is used for {PostScript}
        graphics files that are to be incorporated into other
        documents.  An EPS file includes {pragma}s (special PostScript
        comments) giving information such as the bounding box, page
        number and fonts used.

        On some computers, EPS files include a low resolution version
        of the PostScript image.  On the {Macintosh} this is in {PICT}
        format, while on the {IBM PC} it is in {TIFF} or {Microsoft
        Windows} {metafile} format.

        [Spec?]

        (1995-01-04)

encapsulation

        1. The technique used by layered protocols in which a layer
        adds header information to the protocol data unit (PDU) from
        the layer above.  As an example, in Internet terminology, a
        packet would contain a header from the physical layer,
        followed by a header from the network layer (IP), followed by
        a header from the transport layer (TCP), followed by the
        application protocol data.

        2. The ability to provide users with a well-defined interface
        to a set of functions in a way which hides their internal
        workings.  In {object-oriented programming}, the technique of
        keeping together data structures and the methods (procedures)
        which act on them.

        (1998-09-07)

encode

        1. <algorithm, hardware> To convert {data} or some physical
        quantity into a given format.  E.g. {uuencode}.

        See also {encoder}.

        2. <cryptography> To encrypt, to perform {encryption}.

        (1999-07-06)

encoder

        1. <algorithm, hardware> Any program, circuit or {algorithm}
        which {encode}s.

        Example usages: "{MPEG} encoder", "{NTSC} encoder",
        "{RealAudio} encoder".

        2. <hardware> A sensor or transducer for converting rotary
        motion or position to a series of electronic pulses.

        (1997-03-04)

encryption

        <algorithm, cryptography> Any procedure used in {cryptography}
        to convert {plaintext} into {ciphertext} in order to prevent
        any but the intended recipient from reading that data.

        There are many types of data encryption, and they are the
        basis of network security.  Common types include {Data
        Encryption Standard} and {public-key encryption}.

        The {Unix} command {crypt} performs encryption.

        {(http://eff.org/)}

        (1995-05-02)

-endian

        <data, architecture> The ordering of {bytes} in a multi-byte
        number.

        The term comes from Swift's "Gulliver's Travels" via the
        famous paper "On Holy Wars and a Plea for Peace" by Danny
        Cohen, USC/ISI IEN 137, 1980-04-01.

        The Lilliputians, being very small, had correspondingly small
        political problems.  The Big-Endian and Little-Endian parties
        debated over whether soft-boiled eggs should be opened at the
        big end or the little end.

        See {big-endian}, {little-endian}, {middle-endian}, {holy
        wars}, {NUXI problem}, {swab}.

        (1998-08-09)

endless loop

        {infinite loop}

End Of Line

        (EOL) Synonym for {newline}, derived perhaps from the original
        {CDC6600} {Pascal}.  Now rare, but widely recognised and
        occasionally used for brevity.  Used in the example entry
        under {BNF}.

        Out of context this would probably be (deliberately) ambiguous
        because different systems used different (combinations of)
        characters to mark the end of a line.  {Unix} uses a {line
        feed}; DOS uses {carriage return}, line feed ({CRLF}) and the
        {Macintosh} uses carriage return.

        See also {EOF}.

        (1997-07-14)

End of Medium

        <character> (EM) {ASCII} character 25.

        (1996-06-28)

End Of Text

        {control-C}

End Of Transmission

        <character> (EOT) The {mnemonic} for {ASCII} character 4.

End Transmission Block

        <character> (ETB) The {mnemonic} for {ASCII} character 23.

        (1996-06-28)

end-user

        <job> The person who uses a computer application, as opposed
        to those who developed or support it.  The end-user may or may
        not know anything about computers, how they work, or what to
        do if something goes wrong.  End-users do not usually have
        administrative responsibilities or privileges.

        End users are certain to have a different set of assumptions
        than the developers who created the application.

        (1997-03-29)

Engelbart, Douglas

        {Douglas Engelbart}

engine

        <jargon> 1. A piece of {hardware} that encapsulates some
        function but can't be used without some kind of {front end}.
        Today we have, especially, "{print engine}": the guts of a
        {laser printer}.

        2. An analogous piece of software; notionally, one that does a
        lot of noisy {crunching}, such as a "database engine", or
        "{search engine}".

        The hackish senses of "engine" are actually close to its
        original, pre-Industrial-Revolution sense of a skill, clever
        device, or instrument (the word is cognate to "ingenuity").
        This sense had not been completely eclipsed by the modern
        connotation of power-transducing machinery in {Charles
        Babbage}'s time, which explains why he named the
        stored-program computer that he designed in 1844 the
        "{Analytical Engine}".

        (1996-05-31)

English

        1. (Obsolete) The source code for a program, which may be in
        any language, as opposed to the linkable or executable binary
        produced from it by a compiler.  The idea behind the term is
        that to a real hacker, a program written in his favourite
        programming language is at least as readable as English.
        Usage: mostly by old-time hackers, though recognisable in
        context.

        2. The official name of the {database} language used by the
        {Pick} {operating system}, actually a sort of crufty,
        brain-damaged {SQL} with delusions of grandeur.  The name
        permits {marketroid}s to say "Yes, and you can program our
        computers in English!" to ignorant {suit}s without quite
        running afoul of the truth-in-advertising laws.

        ["Exploring the Pick Operating System", J.E. Sisk et al,
        Hayden 1986].

Enhanced Capabilities Port

        <hardware> (ECP) The most common {parallel printer interface}
        on current (1997) {IBM PC} compatibles.

        Enhanced Capabilities Port is defined in standard IEEE 1284.
        It is bi-directional and faster than earlier parallel ports.

        Not to be confused with {Extended Capabilities Port}.

        (1997-12-01)

Enhanced Dynamic Random Access Memory

        (EDRAM)
        {(http://www.ruralnet.net/~prairie)}.

        [Summary?]

        (1995-11-23)

Enhanced Graphics Adapter

        <graphics, hardware> (EGA) An {IBM PC} {display standard} with
        a {resolution} of 640 x 350 {pixel}s of 16 colours.

        (1995-06-28)

Enhanced IDE

        {Advanced Technology Attachment Interface with Extensions}

Enhanced Integrated Drive Electronics

        {Advanced Technology Attachment Interface with Extensions}

enhanced parallel port

        <hardware> (EPP) A {parallel port} that confirms to the
        {IEEE}'s EPP {standard}.  An EPP is actually an expansion bus
        that can handle 64 {disk drives} and other {peripherals}.

        ["PC Magazine", 1996-01-09, p. 262].

        [Details?  Manufacturers?]

        (1996-04-07)

Enhanced Small Disk Interface

        <storage, hardware> (ESDI) {Compaq}'s {hard disk} {controller}
        {standard} which was supposed to be faster than {SCSI} and
        {IDE} but unfortunately never caught on.  It is found in some
        Compaq {personal computers} and most {MicroChannel} {IBM}
        {PS/2}s.

        (1995-11-23)

enhancement

        1. A change to a product which is intended to make it better
        in some way, e.g. new functions, faster, or occasionally more
        compatible with other systems.  Enhancements to {hardware}
        components, especially {integrated circuits} often mean they
        are smaller and less demanding of resources.  Sadly, this is
        almost never true of {software} enhancements.

        2. {Marketroid}-speak for a {bug fix}.  This abuse of language
        is a popular and time-tested way to turn incompetence into
        increased revenue.  A hacker being ironic would instead call
        the fix a {feature}, or perhaps save some effort by declaring
        "{That's not a bug, that's a feature!}".

        (1998-04-04)

ENIAC

        {Electronic Numerical Integrator and Computer}

Enigma

        <hardware, cryptography> The mechanical {cipher} engine used
        by the Germans in World War II.  Many of their messages were
        deciphered at {Bletchley Park}, by {Alan Turing} and others.

        (1995-03-25)
ENOB

        {effective number of bits}

ENQ

        1. <character> /enkw/ or /enk/ ENQuire.  The {mnemonic} for
        {ASCII} character 5.

        2. <chat> An on-line convention for querying someone's
        availability.  After opening a {chat} connection to someone
        apparently in heavy hack mode, one might type "SYN SYN ENQ?"
        (the SYNs representing notional synchronisation bytes), and
        expect a return of {ACK} or {NAK} depending on whether or not
        the person felt interruptible.

        Compare {ping}, {finger}.

        (1998-01-18)

Ente Nazionale Italiano di Unificazione

        (UNI) The Italian national standards body, a member of {ISO}.

enterprise

        <body> A business, generally a large one.

        (1994-11-22)

Enterprise Application Integration

        <software> (EAI) The use of {middleware} to integrate the
        {application programs}, {databases}, and {legacy systems}
        involved in an organisation's critical business processes.

        [Example?]

        (1999-09-28)

Enterprise Resource Planning

        <application, business> (ERP) Any {software} system designed
        to support and automate the business processes of medium and
        large businesses.  This may include manufacturing,
        distribution, personnel, project management, payroll, and
        financials.

        ERP systems are accounting-oriented information systems for
        identifying and planning the {enterprise}-wide resources
        needed to take, make, distribute, and account for customer
        orders.  ERP systems were originally extensions of {MRP II}
        systems, but have since widened their scope.  An ERP system
        also differs from the typical MRP II system in technical
        requirements such as {relational database}, use of {object
        oriented programming} language, {computer aided software
        engineering} tools in development, {client/server}
        {architecture}, and {open system} {portability}.

        {JBOPS} are the major producers of ERP software.

        {"ERP Systems - Using IT to gain a competitive advantage",
        Shankarnarayanan S.
        (http://www.expressindia.com/newads/bsl/advant.htm)}.

        (1999-07-27)

Enterprise Systems CONnectivity

        <networking> (ESCON) {Optical fibre} connections between a
        {mainframe} and its {peripherals}.  Also an {IBM} registered
        trademark.

        (1997-03-31)

EntireX

        <operating system> The German company {Software AG}'s
        implementation of {DCOM} under {Unix} and on {IBM}
        {mainframes}, released at the end of 1997.  EntireX enables
        users to exchange their {DCOM} components between {Windows
        95}, {Windows NT}, {Unix} and {OS/390} and to build
        {application programs} with components running on any of those
        {platforms}.

        {Home
        (http://www.softwareag.com/corporat/solutions/entirex/entirex.htm)}.

        (1999-02-05)

entity-relationship diagram

        {entity-relationship model}

entity-relationship model

        <database, specification> An approach to {data modelling}
        proposed by P. Chen in 1976.  The model says that you divide
        your database in two logical parts, entities (e.g. "customer",
        "product") and relations ("buys", "pays for").

        Entity-relationship diagrams can be used to represent a model.

        ["The entity-relationship model: toward a unified view of
        data", P.P. Chen, ACM Transactions on Database Systems 1:1 pp
        9-36, 1976].

        (1998-03-20)

entropy

        <theory> A measure of the disorder of a system.  Systems tend
        to go from a state of order (low entropy) to a state of
        maximum disorder (high entropy).

        The entropy of a system is related to the amount of
        {information} it contains.  A highly ordered system can be
        described using fewer {bit}s of information than a disordered
        one.  For example, a string containing one million "0"s can be
        described using {run-length encoding} as [("0", 1000000)]
        whereas a string of random symbols (e.g. bits, or characters)
        will be much harder, if not impossible, to compress in this
        way.

        {Shannon}'s formula gives the entropy H(M) of a message M in
        bits:

                H(M) = -log2 p(M)

        Where p(M) is the probability of message M.

        (1998-11-23)

Entry Sequenced Data Set

        <database> (ESDS) An {IBM} straight sequential flat file (like
        {QSAM}) but externally managed via {IDCAMS}.  ESDS is used in
        {VSAM}.

        (1999-01-11)

enumerated type

        <programming> (Or "enumeration") A {type} which includes in
        its definition an exhaustive list of possible values for
        variables of that type.  Common examples include {Boolean},
        which takes values from the list [true, false], and
        day-of-week which takes values [Sunday, Monday, Tuesday,
        Wednesday, Thursday, Friday, Saturday].  Enumerated types are
        a feature of {strongly typed languages}, including {C} and
        {Ada}.

        Characters, (fixed-size) integers and even {floating-point}
        types could be (but are not usually) considered to be (large)
        enumerated types.

        (1996-11-28)

enumeration

        1. <mathematics> A {bijection} with the {natural numbers}; a
        {counted set}.

        Compare {well-ordered}.

        2. <programming> {enumerated type}.

        (1996-11-28)

environment

        {environment variable}

environment variable

        <programming, operating system> A {variable} that is bound in
        the current environment.  When evaluating an expression in
        some environment, the evaluation of a variable consists of
        looking up its name in the environment and substituting its
        value.

        Most programming languages have some concept of an environment
        but in {Unix} {shell scripts} it has a specific meaning
        slightly different from other contexts.  In shell scripts,
        environment variables are one kind of {shell variable}.  They
        differ from {local variables} and {command line arguments} in
        that they are inheritted by a {child process}.  Examples are
        the PATH variable that tells the shell the {file system}
        {paths} to search to find command {executables} and the TZ
        variable which contains the local time zone.  The variable
        called "SHELL" specifies the type of shell being used.

        These variables are used by commands or {shell scripts} to
        discover things about the environment they are operating in.
        Environment variables can be changed or created by the {user}
        or a program.

        To see a list of environment variables type "setenv" at the
        {csh} or {tcsh} {prompt} or "set" at the {sh}, {bash}, {jsh}
        or {ksh} prompt.

        In other programming languages, e.g. {functional programming}
        languages, the environment is extended with new bindings when
        a {function}'s {parameters} are bound to its {actual
        arguments} or when new variables are declared.  In a
        {block-structured} {procedural} language, the environment
        usually consists of a {linked list} of {activation records}.

        (1999-01-26)

Envoy

        {Motorola}'s integrated personal wireless communicator.  Envoy
        is a {personal digital assistant} which incorporates two-way
        wireless and wireline communication.  It was announced on 7
        March 1994 and released in the third quarter of 1994.  It runs
        {Genral Magic}'s {Magic Cap} {operating system} and
        Telescript(TM) communications language on Motorola's {Dragon}
        chip set.  This includes the highly integrated {Motorola
        68349} processor and a special purpose {application specific
        integrated circuit} (ASIC) referred to as Astro.  This chip
        set was designed specifically for {Magic Cap} and
        {Telescript}.

        A user can write on the Envoy communicator with the
        accompanying stylus or a finger, to type and select or move
        objects on its screen.  An on-screen keyboard can be used to
        input information, draw or write personal notations, or send
        handwritten messages and faxes.

        Envoy can send a wireless message to another Envoy, {PC} or
        fax; broadcast a message to a group, with each member of that
        group receiving the message in their preferred format; gather
        information based on your requirements; schedule a meeting and
        automatically invite attendees; screen, route and organise
        messages; send a business card to another Envoy across a
        conference room table; access real-time scheduling and pricing
        information for US airline flights, then order tickets via fax
        or {electronic mail}; keep track of contacts through an
        address book; receive daily news summaries and stock
        information; capture, organize and review business and
        personal expenses on-the-go; gather, edit and analyze
        information in spreadsheets and graphs compatible with {Lotus
        1-2-3} and {Excel}; shop in an electronic mall.

        {(http://www.motorola.com/MIMS/WDG/Technology/Envoy/)}

        [Was it released in Q3 '94?]

        (1995-01-18)

EOF

        End Of File

        1. The {out-of-band} value returned by {C}'s sequential
        character-input functions (and their equivalents in other
        environments) when end of file has been reached.  This value
        is -1 under {C} libraries postdating V6 Unix, but was
        originally 0.

        2. The keyboard character (usually control-D, the ASCII EOT
        (End Of Transmission) character) that is mapped by the {Unix}
        terminal driver into an end-of-file condition.

        (1995-01-18)

EOL

        1. {End Of Line}.

        2. Expression Oriented Language.  A low-level language for
        strings. Versions: EOL-1, EOL-2, EOL-3.  ["EOL - A Symbol
        Manipulation Language", L. Lukaszewicz, Computer J 10(1):53
        (May 1967)].

EOT

        1. <character> {End Of Transmission}

        2. <storage> End Of Tape.  A marker used on {magnetic tapes}.

        (1996-06-24)

EOU

        <character, humour> The mnemonic of a mythical {ASCII} control
        character (End Of User) that would make an {ASR-33} {Teletype}
        explode on receipt.  This construction parodies the numerous
        obscure {delimiter} and control characters left in ASCII from
        the days when it was associated more with wire-service
        teletypes than computers (e.g. {FS}, {GS}, {RS}, {US}, {EM},
        {SUB}, {ETX}, and especially {EOT}).  It is worth remembering
        that ASR-33s were big, noisy mechanical beasts with a lot of
        clattering parts; the notion that one might explode was
        nowhere near as ridiculous as it might seem to someone sitting
        in front of a {tube} or flatscreen today.

        (1996-06-29)

EOUG

        European {ORACLE} Users Group.

EP

        {Emulator program}

EPCS

        {Experimental Physics Control Systems}

EPILOG

        1. Extended Programming In LOGic.  {PROLOG} with several AND's
        having different time constraints.

        ["Epilog: A Language for Extended Programming in Logic",
        A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis
        Horwood 1984].

        2. A {data-driven} {PROLOG}, with both {AND parallelism} and
        {OR parallelism}.  ["EPILOG = PROLOG + Data Flow", M.J. Wise,
        SIGPLAN Noices 17:80-86 (1982)].

EPIM

        {Enterprise Product Information Management}

EPL

        1. {Early PL/I}.

        2. {Experimental Programming Language}.

        3. Eden Programming Language.  U Washington.  Based on
        Concurrent Euclid and used with the Eden distributed OS.
        Influenced Emerald and Distributed Smalltalk.  "EPL
        Programmer's Guide", A. Black et al, U Washington June 1984.

        4. Equational Programming Language. Szymanski, RPI.
        Equational language for parallel scientific applications.
        "EPL - Parallel Programming with Recurrent Equations",
        B. Szymanski in Parallel Functional Languages and Compilers,
        B. Szymanski et al, A-W 1991.

epoch

        1. [Unix: probably from astronomical timekeeping] The time and
        date corresponding to 0 in an operating system's clock and
        timestamp values.  Under most Unix versions the epoch is
        00:00:00 GMT, January 1, 1970; under VMS, it's 00:00:00 of
        November 17, 1858 (base date of the US Naval Observatory's
        ephemerides); on a Macintosh, it's the midnight beginning
        January 1 1904.  System time is measured in seconds or {tick}s
        past the epoch.  Weird problems may ensue when the clock wraps
        around (see {wrap around}), which is not necessarily a rare
        event; on systems counting 10 ticks per second, a signed
        32-bit count of ticks is good only for 6.8 years.  The
        1-tick-per-second clock of Unix is good only until January 18,
        2038, assuming at least some software continues to consider it
        signed and that word lengths don't increase by then.  See also
        {wall time}.

        2. (Epoch) A version of {GNU Emacs} for the {X Window System}
        from {NCSA}.

EPP

        {Enhanced Parallel Port}

EPROM

        {Erasable Programmable Read Only Memory}

EPROM OTP

        {Erasable Programmable Read Only Memory One Time Programmable}

EPROS

        A specification/prototyping language.  Implemented in {Franz
        Lisp}.

        {(ftp://utsun.s.u-tokyo.jp/lang/epros)}

        ["Software Prototyping, Formal Methods and VDM", Sharam
        Hekmatpour et al, A-W 1988].

EPS

        {Encapsulated PostScript}

EPSILON

        <language> A {macro} language with high level features
        including strings and lists, developed by A.P. Ershov at
        Novosibirsk in 1967.  EPSILON was used to implement {ALGOL 68}
        on the {M-220}.

        ["Application of the Machine-Oriented Language Epsilon to
        Software Development", I.V. Pottosin et al, in Machine
        Oriented Higher Level Languages, W. van der Poel, N-H 1974,
        pp. 417-434].

        (1995-05-10)

epsilon

        1.  A small quantity of anything.  "The cost is epsilon."

        2. Very small, negligible; less than {marginal}.  "We can get
        this feature for epsilon cost."

        3. "within epsilon of": close enough to be indistinguishable
        for all practical purposes, even closer than being "within
        delta of".  "That's not what I asked for, but it's within
        epsilon of what I wanted."  Alternatively, it may mean not
        close enough, but very little is required to get it there: "My
        program is within epsilon of working."

epsilon squared

        <jargon> A quantity even smaller than {epsilon}, as small in
        comparison to epsilon as epsilon is to something normal;
        completely negligible.  If you buy a supercomputer for a
        million dollars, the cost of the thousand-dollar terminal to
        go with it is {epsilon}, and the cost of the ten-dollar cable
        to connect them is epsilon squared.

        Compare {lost in the underflow}, {lost in the noise}.

        (1997-09-05)

EPSIMONE

        Concurrent simulation language derived from Simone.  "EPSIMONE
        Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978.

EPSS

        {Electronic Performance Support System}

EqL

        An equational language.  Bharat Jayaraman
        <bharat@cs.buffalo.edu>.  "EqL: The Language and its
        Implementation", B. Jayaraman et al, IEEE Trans Soft Eng
        SE-15(6):771-780 (June 1989).

EQLOG

        Equality, types and generic modules for logic programming.
        A language using Horn clauses.  J.A. Goguen, J. Meseguer.

EQLog

        OBJ2 plus logic programming based on Horn logic with equality.

        "EQLog: Equality, Types and Generic Modules for Logic
        Programming", J.  Goguen et al in Functional and Logic
        Programming, D. DeGroot et al eds, pp.295-363, P-H 1986.

Eqn

        Language for typesetting mathematics.

        "A System for Typesetting Mathematics", B.W. Kernighan and
        L.L. Cherry, CACM 18(3):151-157 (Mar 1975).

equals

        <character> "=", {ASCII} character 61.

        Common names: {ITU-T}: equals; gets; takes.  Rare:
        quadrathorpe; {INTERCAL}: half-mesh.

        Equals is used in many languages as the {assignment} operator
        though earlier languages used ":=" ("becomes equal to") to
        avoid upsetting mathematicians with statements such as "x =
        x+1".  It is also used in compounds such as "<=", ">=", "==",
        "/=", "!=" for various comparison operators and in {C}'s "+=",
        "*=" etc. which mimic the {primitive} operations of
        {two-address code}.

        (1995-03-29)

equational logic

        <logic> First-order equational logic consists of
        {quantifier}-free terms of ordinary {first-order logic}, with
        equality as the only {predicate} symbol.  The {model theory}
        of this logic was developed into {Universal algebra} by
        Birkhoff et al.  [Birkhoff, Gratzer, Cohn].  It was later made
        into a branch of {category theory} by Lawvere ("algebraic
        theories").

        (1995-02-21)

Equel

        Embedded Quel.  {INGRES, Inc.}  Combines QUEL theories with C
        code.

equivalence class

        <mathematics> An equivalence class is a subset whose elements
        are related to each other by an {equivalence relation}.  The
        equivalence classes of a set under some relation form a
        {partition} of that set (i.e. any two are either equal or
        {disjoint} and every element of the set is in some class).

        (1996-05-13)

equivalence class partitioning

        <programming> A software testing technique that involves
        identifying a small set of representative input values that
        invoke as many different input conditions as possible.

        (1996-05-13)

equivalence relation

        <mathematics> A relation R on a set including elements a, b,
        c, which is reflexive (a R a), symmetric (a R b => b R a) and
        transitive (a R b R c => a R c).  An equivalence relation
        defines an {equivalence} class.

        See also {partial equivalence relation}.

        (1996-05-13)

ER

        {Entity-Relationship}

er

        <networking> The {country code} for Eritrea.

        (1999-01-27)

ERA

        {Entity-Relationship-Attribute}

era

        Synonym {epoch}.  Webster's Unabridged makes these words
        almost synonymous, but "era" usually connotes a span of time
        rather than a point in time.

Erasable Programmable Read Only Memory

        <storage> (EPROM) A type of storage device in which the data
        is determined by electrical charge stored in an isolated
        ("floating") {MOS} {transistor} {gate}.  The isolation is good
        enough to retain the charge almost indefinitely (more than ten
        years) without an external power supply.  The EPROM is
        programmed by "injecting" charge into the floating gate, using
        a technique based on the tunnel effect.  This requires higher
        voltage than in normal operation (usually 12V - 25V).  The
        floating gate can be discharged by applying ultraviolet light
        to the chip's surface through a quartz window in the package,
        erasing the memory contents and allowing the chip to be
        reprogrammed.

        (1995-04-22)

erase

        {delete}

ERC

        <database> An extended {entity-relationship model}.

        [Details?  What does it stand for?]

        (1997-12-23)

ERCIM

        European Research Consortium on Informatics and Mathematics.
        An association of European research organisations promoting
        cooperative research on key issues in information technology.

ERD

        {entity-relationship diagram}

EREW PRAM

        exclusive read, exclusive write {PRAM}.

ERFPI

        An early system on the {LGP-30} computer.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-08)

ergonomic

        Concerning {ergonomics} or exhibitting good ergonimics.

        (1995-04-14)

ergonomics

        The study of the design and arrangement of equipment so that
        people will interact with the equipment in healthy,
        comfortable, and efficient manner.  As related to computer
        equipment, ergonomics is concerned with such factors as the
        physical design of the keyboard, screens, and related
        hardware, and the manner in which people interact with these
        hardware devices.

        (1995-04-14)

ERGO-Shell

        <operating system, tool> An ergonomic {X Window System} {Unix}
        {shell} for software engineers by Regine Freitag
        <freitag@gmd.de>.

        Version: 2.1.

        {(ftp://ftp.gmd.de/gmd/ergo/)}

        E-mail: Dr. Wolfgang Dzida, GMD <dzida@gmd.de> or the author.

        (1993-06-04)

Eric Conspiracy

        <person, humour> A shadowy group of moustachioed hackers named
        Eric first pinpointed as a sinister conspiracy by an infamous
        talk.bizarre posting ca. 1986.  This was doubtless influenced
        by the numerous "Eric" jokes in the Monty Python oeuvre.
        There do indeed seem to be considerably more moustachioed
        Erics in hackerdom than the frequency of these three traits
        can account for unless they are correlated in some arcane way.
        Well-known examples include {Eric Allman} (of the "Allman
        style" described under {indent style}), {Erik Fair} (co-author
        of NNTP), {Eric S. Raymond} and about fifteen others.  The
        organisation line "Eric Conspiracy Secret Laboratories" now
        emanates regularly from more than one site.

        (1998-10-20)

Eric S. Raymond

        <person> One of the authors of the Hacker's {Jargon File}.
        Eric was involved in the {JOLT} project and {GNU Emacs} as
        well as maintaining several {FAQ} lists.  He is a keen
        advocate of {open source}.

        {Home (http://www.ccil.org/~esr)}.

        E-mail: <esr@snark.thyrsus.com>

        (1998-10-20)

Eris

        /e'ris/ The Greek goddess of Chaos, Discord, Confusion, and
        Things You Know Not Of; her name was latinised to Discordia
        and she was worshiped by that name in Rome.  Not a very
        friendly deity in the Classical original, she was reinvented
        as a more benign personification of creative anarchy starting
        in 1959 by the adherents of {Discordianism} and has since been
        a semi-serious subject of veneration in several "fringe"
        cultures, including hackerdom.

        See {Church of the SubGenius}.

        (1994-12-08)

Erlang

        1. <language> A concurrent {functional language} for large
        industrial {real-time} systems by Armstrong, Williams and
        Virding of Ellemtel, Sweden.

        Erlang is untyped.  It has {pattern matching} syntax,
        {recursion equation}s, explicit {concurrency}, {asynchronous
        message passing} and is relatively free from {side-effect}s.
        It supports transparent cross-{platform} distribution.  It has
        primitives for detecting run-time errors, real-time {garbage
        collection}, {modules}, {dynamic code replacement} (change
        code in a continuously running real-time system) and a
        {foreign language interface}.

        An unsupported free version is available (subject to a
        non-commercial licence).  Commercial versions with support are
        available from {Erlang Systems AB}.  An {interpreter} in
        {SICStus Prolog} and compilers in {C} and Erlang are available
        for several {Unix} {platform}s.

        {(http://www.ericsson.se/erlang/)}.  {Information
        (ftp://euagate.eua.ericsson.se/pub/eua/erlang/info)}.  E-mail:
        <erlang@erix.ericsson.se>.

        [Erlang - "Concurrent Programming in Erlang", J. Armstrong, M.
        & Williams R. Virding, Prentice Hall, 1993. ISBN 13-285792-8.]

        2. <unit> 36 {CCS} per hour, or 1 call-second per second.

        Erlang is a unit without dimension, accepted internationally
        for measuring the traffic intensity.  This unit is defined as
        the aggregate of continuous occupation of a channel for one
        hour (3600 seconds).  An intensity of one Erlang means the
        channel is continuously occupied.

erotica

        {pornography}

ERP

        {Enterprise Resource Planning}

error

        1. A discrepancy between a computed, observed, or measured
        value or condition and the true, specified, or theoretically
        correct value or condition.

        2. <programming> A mental mistake made by a programmer that
        may result in a program {fault}.

        (1996-05-13)

error-based testing

        <programming> Testing where information about programming
        style, error-prone language constructs, and other programming
        knowledge is applied to select test data capable of detecting
        faults, either a specified class of faults or all possible
        faults.

        (1996-05-13)

error correcting memory

        <storage> (ECM) {RAM} using some kind of {error detection and
        correction} (EDAC) scheme.  The two types of memory errors in
        RAM (especially {DRAM}) are "soft" errors due to
        radiation-induced bit switching, and "hard" errors due to the
        unexpected deterioration of a memory chip.  Soft errors do not
        indicate lasting damage to the memory board, but they do
        corrupt programs or data.  Hard errors demand physical
        repairs.  Single bit memory failures are the most common.  A
        hard single bit failure, such as that caused by a completely
        dead chip can be corrected by EDAC if each chip supplies only
        one bit of each word.  EDAC memory is the most common level of
        protection for {minicomputer}s and {mainframe}s whereas the
        cheaper parity protection is more common in {microcomputer}s.

        [Clearpoint, "The Designer's Guide to Add-In Memory", Third
        Addition].

        (1995-10-10)

error detection and correction

        <algorithm, storage> (EDAC, or "error checking and
        correction", ECC) A collection of methods to detect errors in
        transmitted or stored data and to correct them.  This is done
        in many ways, all of them involving some form of coding.  The
        simplest form of error detection is a single added {parity
        bit} or a {cyclic redundancy check}.  Multiple parity bits can
        not only detect that an error has occurred, but also which
        bits have been inverted, and should therefore be re-inverted
        to restore the original data.  The more extra bits are added,
        the greater the chance that multiple errors will be detectable
        and correctable.

        Several codes can perform Single Error Correction, Double
        Error Detection (SECDEC).  One of the most commonly used is
        the {Hamming code}.

        At the other technological extreme, cuniform texts from about
        1500 B.C. which recorded the dates when Venus was visible,
        were examined on the basis of contained redundancies (the
        dates of appearance and disappearance were suplemented by the
        length of time of visibility) and "the worst data set ever
        seen" by [Huber, Zurich] was corrected.

        {RAM} which includes EDAC circuits is known as {error
        correcting memory} (ECM).

        [Wakerly, "Error Detecting Codes", North Holland 1978].

        [Hamming, "Coding and Information Theory", 2nd Ed, Prentice
        Hall 1986].

        (1995-03-14)

es

        1. <networking> The {country code} for Spain.

        2. <operating system> {Extensible Shell}.

        3. (Expert System) An {expert system} for the {IBM PC}
        featuring {forward chaining}, {backward chaining} and {fuzzy
        set} relations.

        {(ftp://ftp.uu.net/pub/ai/expert-sys/summers.tar.Z)}

        [BYTE Oct 1990].

        (1999-02-01)

ES-1

        <text, tool> An early text editing {interpreter}.

        [Sammet 1969, p. 684].

        (1999-02-01)

ESA

        European Space Agency.

ESC

        {escape}

ESCAPE

        <language> An early system on the {IBM 650}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-05)

escape

        <character> (ESC) {ASCII} character 27.

        When sent by the user, escape is often used to abort execution
        or data entry.  When sent by the computer it often starts an
        {escape sequence}.

        (1997-11-27)

escape sequence

        <character> (Or "escape code") A series of characters starting
        with the {escape} character (ASCII 27).  Escape sequences are
        often used to control display devices such as {VDU}s.  An
        escape sequence might change the colour of subsequent text,
        reassign keys on the keyboard, change printer settings or
        reposition the cursor.  The escape sequences of the {DEC}
        {vt100} {video terminal} have become a {de facto standard} for
        this purpose.

        The term is also used for any sequence of characters that
        temporarily suspends normal processing of a stream of
        characters to perform some special function.  For example, the
        {Hayes} {modem} uses the sequence "+++" to escape to command
        mode in which characters are interpreted as commands to the
        modem itself rather than as data to pass through.

        [Was the character named after this use or vice versa?]

        (1997-11-27)

ESCD

        {Extended System Configuration Data}

ESCON

        {Enterprise Systems CONnectivity}

ESD

        {Electrostatic Discharge}

ESDI

        {Enhanced Small Disk Interface}

ESF

        Eureka Software Factory.

ESI

        1. {European Software Institute}.

        2. A dialect of {JOSS}.

        [Sammet 1969, p. 217].

esim

        A language for {simulation} of {VLSI} at the {switch level}.
        The {primitive}s are nodes and {transistor}s.

        [C.M. Baker et al, "Tools for Verifying Integrated CIrcuit
        Design", Lambda 1(3):22-30 (1980)].

        (1994-10-20)

ESL

        {Expert Systems} Ltd.

ESLPDPRO

        {ESL} public domain version of Edinburgh {Prolog} for
        {MS-DOS}.  The code is totally compatible with C-Prolog.

        {(ftp://aisun1.ai.uga.edu/ai.prolog/eslpdpro.zip)}

ESML

        Extended Systems Modelling Language: a real-time software
        engineering methodology based on RTSA.

ESMTP

        <messaging, protocol> Extended {SMTP}.  Initially defined in
        {RFC 1869} and extended thereafter.

        See also {ETRN}.

        (1997-11-21)

ESP

        1. Extra Simple Pascal.  Subset of Pascal.

        2. Econometric Software Package.  Statistical analysis of time
        series.  "Econometric Software Package, User's Manual",
        J.P. Cooper, Graduate School of Business, U Chicago.  Sammet
        1978.

        3. {Extended Self-containing Prolog}.

        4. An early {symbolic mathematics} system.

        [A. Rom, Celest Mech 3:331-345 (1971)].

        (1994-12-08)

ESPOL

        An {ALGOL} superset used to write the MCP (Master Control
        Program) on the {Burroughs 6700}.  Superseded by {NEWP}.

        ["The B6700 ESPOL Reference Manual", Burroughs, 1970].

ESPRIT

        {European Strategic Programme for Research in Information Technology}

ESR

        {Eric S. Raymond}

essential complexity

        <programming> A measure of the "structuredness" of a program.

        (1996-05-13)

Estelle

        A {Pascal} extension for formal specification of computer
        {network} {protocol}s.  Protocols are described by {modules}
        which are communicating {NFA}s.  Modules are arranged in a
        dynamic hierarchy and communicate at named interaction points.

        {EstPC (ftp:osi.ncsl.nist.gov/pub/osikit/estpc)} Compiles
        Estelle into C.  {petdingo} Translates Estelle into C++

        Adopted by {ITU-T}.  ISO 9074 (1989).

        ["The Formal Description Technique Estelle", M.  Diaz et al
        eds, N-H 1989].

Esterel

        A distributed language for synchronous interaction of
        {real-time} systems with their environment.  Uses explicit
        timing requests.  Esterel programs are compiled into finite
        {automata}.

        ["The ESTEREL Programming Language and its Mathematical
        Semantics", G. Berry & L. Cosserat, TR 327, INRIA, 1984].

EstPC

        A {compiler} from {Estelle} to {C}.

        {(ftp:osi.ncsl.nist.gov/pub/osikit/estpc)}

        (1994-09-19)

ET

        Bernd Gersdorf, U Bremen.  An integration of functional and
        logic programming.

et

        <networking> The {country code} for Ethiopia.

        (1999-01-27)

ET++

        A {Smalltalk}-like system for {Sun}s, built on {C++} by
        Weinand of UBILAB Zurich.  Version 3.0-alpha includes {class}
        libraries and documentation.

        {(ftp://iamsun.unibe.ch/C++/ET++/et2.2.tar.Z)}

        E-mail: Erich Gamma <gamma@ifi.unizh.ch>.

        (1992-10-26)

eta abstraction

        See {eta conversion}.

eta conversion

        In {lambda-calculus}, the eta conversion rule states

                \ x . f x  <-->  f

        provided x does not occur free in f and f is a function.  Left
        to right is eta reduction, right to left is eta abstraction
        (or eta expansion).

        This conversion is only valid if {bottom} and \ x . bottom are
        equivalent in all contexts.  They are certainly equivalent
        when applied to some argument - they both fail to terminate.
        If we are allowed to force the evaluation of an expression in
        any other way, e.g. using {seq} in {Miranda} or returning a
        function as the overall result of a program, then bottom and
        \ x . bottom will not be equivalent.  See also {observational
        equivalence}, {reduction}.

eta expansion

        See {eta conversion}.

eta reduction

        See {eta conversion}.

ETB

        {End Transmission Block}

ETC

        ExTendible Compiler.  FORTRAN-like, macro extendible.  "ETC -
        An Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC
        38 (1971).

e-text

        {electronic text}

ETHER

        <language> A {concurrent} {object-oriented} language?

        (1997-03-18)

EtherGate

        Multi-protocol Ethernet gateway made by LRT.
        See Computer Systems, October 1985.

Ethernet

        <networking> A {local area network} first described by
        Metcalfe & Boggs of {Xerox PARC} in 1976.  Specified by {DEC},
        {Intel} and {XEROX} (DIX) as {IEEE 802.3} and now recognised
        as the industry standard.

        Data is broken into {packets} which are transmitted using the
        {CSMA/CD} {algorithm} until they arrive at the destination
        without colliding with any other.  The first {contention slot}
        after a transmission is reserved for an {acknowledge} packet.
        A {node} is either transmitting or receiving at any instant.
        The {bandwidth} is about 10 Mbit/s.  Disk-Ethernet-Disk
        transfer rate with {TCP/IP} is typically 30 kilobyte per
        second.

        Version 2 specifies that {collision} detect of the transceiver
        must be activated during the {inter-packet gap} and that when
        transmission finishes the differential transmit lines are
        driven to 0V (half step).  It also specifies some {network
        management} functions such as reporting {collisions}, retries
        and {deferrals}.

        Ethernet cables are classified as "XbaseY", e.g. 10base5,
        where X is the data rate in {Mbps}, "base" means "{baseband}"
        (as opposed to {radio frequency}) and Y is the category of
        cabling.  The original cable was {10base5} ("full spec"),
        others are {10base2} ("thinnet") and {10baseT} ("twisted
        pair") which is now (1998) very common.  {100baseT} ("{Fast
        Ethernet}") is also increasingly common.

        {Usenet} newsgroup: {news:comp.dcom.lans.ethernet}.

        {(http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html)}

        (1997-04-16)

Ethernet address

        <networking> (Or "{MAC} address") The physical address
        identifying an individual {Ethernet controller} board.  An
        Ethernet addess is a 48-bit number aabbccddeeff where a-f are
        {hexadecimal} digits.  The first 24 bits, aabbcc, identify the
        manufacturer of the controller.  The Ethernet address is
        hard-wired on some controllers, stored in a {ROM} on some, and
        others allow it to be changed from software.  It is usually
        written as six hexadecimal numbers, e.g. 08:00:20:03:72:DC.

        See also {ARP}, {Internet address}.

        (1996-02-21)

Ethernet meltdown

        A {network meltdown} on {Ethernet}.

        (1994-11-29)

EtherTalk

        <networking> An {Apple Computer} {network} {standard} used to
        extend an {AppleTalk} network across an {Ethernet} network.

        Compare {LocalTalk}.

        (1994-11-29)

ethics

        {computer ethics}

ETM

        <database> An {active DBMS} from the {University of
        Karlsruhe}.

        [Expansion?  Features?]

        (1997-06-23)

ETRN

        <messaging, protocol> ("Extended {TURN}") An {ESMTP} command
        (first defined in {RFC 1985}) with which a {client} asks the
        {server} to deliver queued mail to the client via a new ESMTP
        connection.

        ETRN supercedes the {SMTP} "TURN" command in the same way that
        ESMTP's "{EHLO}" supercedes SMTP's "{HELO}".

        (1997-11-21)

ETSI

        {European Telecommunications Standards Institute}

ETX

        {End Of Text}

Euclid

        <language> (Named after the Greek geometer, fl ca 300 BC.) A
        {Pascal} descendant for development of verifiable system
        software.  No {goto}, no {side effects}, no global
        assignments, no functional arguments, no nested procedures, no
        floats, no {enumeration types}.  Pointers are treated as
        indices of special arrays called collections.  To prevent
        {aliasing}, Euclid forbids any overlap in the list of actual
        parameters of a procedure.  Each procedure gives an imports
        list, and the compiler determines the identifiers that are
        implicitly imported.  Iterators.

        Ottawa Euclid is a variant.

        ["Report on the Programming Language Euclid", B.W. Lampson et
        al, SIGPLAN Notices 12(2):1-79, Feb 1977].

        (1998-11-23)

Euclid's Algorithm

        <algorithm> An {algorithm} for finding the {greatest common
        divisor} (GCD) of two numbers.  It relies on the identity

                gcd(a, b) = gcd(a-b, b)

        To find the GCD of two numbers by this algorithm, repeatedly
        replace the larger by subtracting the smaller from it until
        the two numbers are equal.  E.g. 132, 168 -> 132, 36 -> 96, 36
        -> 60, 36 -> 24, 36 -> 24, 12 -> 12, 12 so the GCD of 132 and
        168 is 12.

        This algorithm requires only subtraction and comparison
        operations but can take a number of steps proportional to the
        difference between the initial numbers (e.g. gcd(1, 1001) will
        take 1000 steps).

        (1997-06-30)

Eudora

        {Electronic mail} software for communicating over {TCP/IP}
        from {Macintosh}, {Microsoft Windows}, {Windows NT}, and {IBM}
        {OS/2} computers.  Both commercial and free versions are
        produced by {QUALCOMM, Inc.}

EULA

        {end-user license agreement}

EULER

        [Named after the Swiss mathematician Leonhard Euler
        (1707-1783)] A revision of {ALGOL} by {Niklaus Wirth}.  A
        small predecessor of {Pascal}.

        ["EULER: A Generalisation of ALGOL and Its Formal Definition",
        N. Wirth, CACM 9(1) (Jan 1966) and 9(2) (Feb 1966)].

EuLisp

        1985-present.  A {Lisp} dialect intended to be a common
        European {standard}, with influences from {Common LISP}, {Le
        LISP}, {Scheme} and {T}.  {First-class function}s, {class}es
        and {continuation}s, both {static scope} and {dynamic scope},
        {modules}, support for {parallelism}.  The class system
        ({TELOS}) incorporates ideas from {CLOS}, {ObjVLisp} and
        {Oaklisp}.

        See also {Feel}.

        E-mail: <eudist@maths.bath.ac.uk>.

EUnet Ltd.

        EUnet Ltd. is jointly owned by the EUnet national service
        providers and {EurOpen}, the European Forum for Open Systems.

        EUnet services include {electronic mail} ({Internet}-style
        {RFC 822} as well as {X.400}), {InterEUnet} ({Internet
        Protocol}) connectivity and services such as {remote login}
        and {file transfer} over {leased line}s, {dial-up line}s,
        {X.25} and {Integrated Services Digital Network}.  EUnet is
        the primary European region provider of {network news} and the
        top-level European distributor of {Internet Talk Radio}.

        EUnet operates its own infrastructure across Europe and is the
        largest European component of the {Internet}.  EUnet is a
        member of {Commercial Internet Exchange} and {Ebone93}, a
        research network consortium.

        E-mail: <info@EU.net>.  {(http://www.eu.net/)}.

Euphoria

        End User Programming with Hierarchical Objects for Robust
        Interpreted Applications.  Interpreted language with dynamic
        storage and dynamic typing.  Rapid Deployment Software.

        E-mail: <robert.craig@canrem.com>.

Eureka

        A European technological development programme.

Eureka step

        In {program transformation}, a transformation which is not
        obvious or easy to define as an {algorithm}.

        (1994-12-08)

Eurisko

        <artificial intelligence> A language for "{opportunistic
        programming}" written by {Doug Lenat} in 1978.  Eurisko
        constructs its own methods and modifies its strategies as it
        tries to solve a problem.

        {(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}.

        [Mentioned by Alan Kay, SIGPLAN Notices 28(3), March 1993,
        p. 88].

        (1994-12-08)

Eurocard

        A range of standard circuit board sizes.

        Normal         double Eurocard = 233.4 x 160 mm
        Extended       double Eurocard = 233.4 x 220 mm
        Super extended double Eurocard = 233.4 x 250 mm
        Hyper extended double Eurocard = 233.4 x 280 mm

Euro-ISDN

        European Integrated Services Digital Network.

        An {ETSI} standard for {Integrated Services Digital Network}
        being phased in in March 1994.  Euro-ISDN will allow full
        transparent interworking between all European countries
        (members of the {CEPT}).  It is available on a commercial
        basis in most European countries.

        (1994-12-08)

EuroNet

        <company> An {IAP} from Amsterdam, The Netherlands operating
        since 1994-08-01 and owned by {France Telecom} since
        1998-11-06.

        {Home (http://www.euronet.nl/)}.

        E-mail: <info@euro.net>.

        Telephone: +31 (020) 535 5555.

        Fax: +31 (020) 535 5400.

        Address: Herengracht 208-214, 1016 BS Amsterdam, The
        Netherlands.

        (1999-01-17)

EuropaNET

        A combination of pan-European backbone services run by DANTE.

European Academic and Research Network

        <networking> (EARN) A self-managing network in the research
        community originally sponsored by {IBM}.  It uses {BITNET}
        {protocols} and connects to BITNET in the USA.

        (1995-11-15)

European Computer-Industry Research Centre GmbH

        <body> (ECRC) A joint research organisation founded in 1984 on
        the initiative of three major European manufacturers: {Bull}
        (France), {ICL} (UK) and {Siemens} (Germany).  Its activities
        were intended to enhance the future competitive ability of the
        European {Information Technology} industry and thus complement
        the work of national and international bodies.

        The Centre is intended to be the breeding ground for those
        ideas, techniques and products which are essential for the
        future use of electronic information processing.  The work of
        the Centre will focus on advanced information processing
        technology for the next generation of computers.

        ECRC is an independent company, owned equally by its
        shareholders.  The formal interface between ECRC and its
        shareholders consists of two bodies: The Shareholders'
        Council, which approves the Centre's programmes and budgets
        and supervises their execution and the Scientific Advisory
        Board, which advises the Shareholders' Council in determining
        future research directions.

        There are many collaborations between ECRC and its
        shareholders' companies on specific projects (Technology
        Transfer, prospective studies etc).  The Centre is staffed by
        highly qualified scientists drawn from different countries.
        Research staff are hired directly by ECRC, as well as some who
        come on assignment from the member companies, and others
        seconded from public research agencies and universities.

        Seminars are held which bring together specialists from the
        Centre and the member companies.

        ECRC's mission is to pursue research in fundamental areas of
        computer science.  The aim is to develop the theory,
        methodologies and tools needed to build innovative computer
        applications.  ECRC contributes actively to the international
        effort that is expanding the frontiers of knowledge in
        computer science.  It plays an important role in bridging the
        gap between research and industry by striving to work at the
        highest academic level with a strong industrial focus.  ECRC
        constitutes an opportunity in Europe for the best scientists
        and offers young researchers the possibility to mature in an
        environment which exposes them to both fundamental research
        and the process of delivering the results to industry.

        ECRC plays an important role in Europe and is involved in
        several European Community initiatives.  It is regularly
        consulted by the Commission of the European Communities on
        strategic issues, such as the definition of future research
        plans, international co-operation and relationships between
        academia and industry.

        Address: ECRC GmbH, Arabellastrasse 17, D-81925 Munich,
        Germany.

        {(http://www.ecrc.de/)}

        Telephone: +49 (89) 926 99 0.  Fax: +49 (89) 926 99 170.

        (1994-12-01)

European Strategic Programme for Research in Information Technology

        <project> (ESPRIT) A funding programme to develop Information
        Technology in the European Economic Communities.  Superseded
        by {Framework 4}.

        (1996-05-13)

European Telecommunications Standards Institute

        <body> (ETSI) A European version of the {ITU-T}(?).

        (1996-05-13)

EUUG

        {European Unix User Group}

EV6

        <hardware, protocol> (Alpha EV6) {Compaq}'s {bus protocol} for
        {Slot A} {motherboards}.  The Alpha EV6 bus protocol is
        capable of bus speeds from 40 to 400 MHz and uses a
        {point-to-point} {topology} with {clock forwarding}.

        (1999-08-05)

Eva

        1. A toy ALGOL-like language used in "Formal Specification of
        Programming Languages: A Panoramic Primer", F.G. Pagan, P-H
        1981.

        2. Explicit Vector Language.

EVALUATE

        <programming> The {COBOL85} {keyword} for a {switch
        statement}.

        (1997-06-10)

evaluation

        <programming> 1. Converting an expression into a value using
        some {reduction strategy}.

        2. The process of examining a system or system component to
        determine the extent to which specified properties are
        present.

        (1996-05-13)

evaluation strategy

        {reduction strategy}

evaluator

        <theory> Geoff Burn defines evaluators E0, E1, E2 and E3 which
        when applied to an expression, reduce it to varying degrees.
        E0 does no evaluation, E1 it evaluates to {weak head normal
        form} (WHNF), E2 evaluates the structure of a list, i.e. it
        evaluates it either to NIL or evaluates it to a CONS and then
        applies E2 to the second argument of the CONS.  E3 evaluates
        the structure of a list and evaluates each element of the list
        to {WHNF}.  This concept can be extended to data structures
        other than lists and forms the basis of the {evaluation
        transformer} style of {strictness analysis}.

        (1994-12-12)

event

        1. An occurance or happening of significance to a task or
        program, such as the completion of an asynchronous
        input/output operation.

        See also {event-driven}.

        2. A transaction or other activity that affects the records in
        a file.

        (1994-12-12)

event-driven

        A kind of program, such as a {graphical user interface}, with
        a main loop which just waits for {event}s to occur.  Each
        event has an associated handler which is passed the details of
        the event, e.g. mouse button 3 pressed at position (355,990).

        For example, {X window system} {application program}s are
        event-driven.

        See also {callback}.

        (1994-12-12)

EVGA

        {Extended Video Graphics Array}

evil

        As used by a {hacker}, implies that some system, program,
        person, or institution is sufficiently maldesigned as to be
        not worth the bother of dealing with.  Unlike the adjectives
        in the cretinous, {losing}, {brain-damaged} series, "evil"
        does not imply incompetence or bad design, but rather a set of
        goals or design criteria fatally incompatible with the
        speaker's.  This usage is more an aesthetic and engineering
        judgment than a moral one in the mainstream sense.  "We
        thought about adding a {Blue Glue} interface but decided it
        was too evil to deal with."  "{TECO} is neat, but it can be
        pretty evil if you're prone to typos."  Often pronounced with
        the first syllable lengthened, as /eeee'vil/.

        Compare {evil and rude}.

        (1994-12-12)

evil and rude

        Both {evil} and {rude}, but with the additional connotation
        that the rudeness was due to malice rather than incompetence.
        Thus, for example: {Microsoft}'s {Windows NT} is evil because
        it's a competent implementation of a bad design; it's rude
        because it's gratuitously incompatible with {Unix} in places
        where compatibility would have been as easy and effective to
        do; but it's evil and rude because the incompatibilities are
        apparently there not to fix design bugs in {Unix} but rather
        to lock hapless customers and developers into the {Microsoft}
        way.  Hackish evil and rude is close to the mainstream sense
        of "evil".

        (1994-12-12)

evolutionary algorithm

        (EA) An {algorithm} which incorporates aspects of natural
        selection or survival of the fittest.  An evolutionary
        algorithm maintains a population of structures (usually
        randomly generated initially), that evolves according to rules
        of selection, recombination, mutation and survival, referred
        to as genetic operators.  A shared "environment" determines
        the fitness or performance of each individual in the
        population.  The fittest individuals are more likely to be
        selected for reproduction (retention or duplication), while
        recombination and mutation modify those individuals, yielding
        potentially superior ones.

        EAs are one kind of {evolutionary computation} and differ from
        {genetic algorithm}s.  A GA generates each individual from
        some encoded form known as a "chromosome" and it is these
        which are combined or mutated to breed new individuals.

        EAs are useful for optimisation when other techniques such as
        {gradient descent} or direct, analytical discovery are not
        possible.  Combinatoric and real-valued function optimisation
        in which the optimisation surface or fitness landscape is
        "rugged", possessing many {locally optimal} solutions, are
        well suited for evolutionary algorithms.

        (1995-02-03)

evolutionary computation

        Computer-based problem solving systems that use computational
        models of evolutionary processes as the key elements in design
        and implementation.

        A number of evolutionary computational models have been
        proposed, including {evolutionary algorithm}s, {genetic
        algorithm}s, the {evolution strategy}, {evolutionary
        programming}, and {artificial life}.

        {The Hitchhiker's Guide to Evolutionary Computation
        (http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/ai/genetic/
top.html)}.

        {Bibliography
        (http://liinwww.ira.uka.de/bibliography/Ai/EC-ref.html)}.

        {Usenet} newsgroup: {news:comp.ai.genetic}.

        (1995-03-02)

evolutionary programming

        (EP) A {stochastic} optimisation strategy originally conceived
        by Lawrence J. Fogel in 1960.

        An initially random population of individuals (trial
        solutions) is created.  Mutations are then applied to each
        individual to create new individuals.  Mutations vary in the
        severity of their effect on the behaviour of the individual.
        The new individuals are then compared in a "tournament" to
        select which should survive to form the new population.

        EP is similar to a {genetic algorithm}, but models only the
        behavioural linkage between parents and their offspring, rather
        than seeking to emulate specific genetic operators from nature
        such as the encoding of behaviour in a genome and
        recombination by genetic crossover.

        EP is also similar to an {evolution strategy} (ES) although
        the two approaches developed independently.  In EP, selection
        is by comparison with a randomly chosen set of other
        individuals whereas ES typically uses {deterministic}
        selection in which the worst individuals are purged from the
        population.

        (1995-02-03)

evolution strategy

        (ES) A kind of {evolutionary algorithm} where individuals
        (potential solutions) are encoded by a set of real-valued
        "object variables" (the individual's "genome").  For each
        object variable an individual also has a "strategy variable"
        which determines the degree of mutation to be applied to the
        corresponding object variable.  The strategy variables also
        mutate, allowing the rate of mutation of the object variables
        to vary.

        An ES is characterised by the population size, the
        number of offspring produced in each generation and whether
        the new population is selected from parents and offspring or
        only from the offspring.

        ES were invented in 1963 by Ingo Rechenberg, Hans-Paul
        Schwefel at the {Technical University of Berlin} (TUB) while
        searching for the optimal shapes of bodies in a flow.

        (1995-02-03)

EWOS

        {European Workshop for Open Systems}

exa-

        {prefix}

Exabyte

        <company, storage> A company and, by extension, a tape format
        for computer data backup and transfer.  The tape is a data
        quality 8mm video cassette recorder tape.  Exabyte units can
        store between five and fourteen {gigabyte}s of data per tape.
        Exabytes are usually attached to {Unix} {workstation}s.

        [What different tape capacities exist?  Compare with DAT?]

        (1995-07-06)

exabyte

        <unit> 2^60 = 1,152,921,504,606,846,976 {bytes} = 1024
        {petabytes} or roughly 10^18 bytes.

        See {prefix}.

        (1996-08-12)

examining the entrails

        The process of {grovel}ling through a {core dump} or {hex}
        image in an attempt to discover the bug that brought a program
        or system down.  The reference is to divination from the
        entrails of a sacrified animal.

        Compare {runes}, {incantation}, {black art}, {desk check}.

        (1994-12-12)

EXAPT

        EXtended {APT}.

Excel

        {Microsoft Excel}

Excelan

        Manufacturers of intelligent {Ethernet} cards.  Software and
        addresses are down-loadable.  The cards have their own {RAM}
        for buffers.

Excelerator

        A set of {CASE} tools from {Index Technology Corporation}.

exception

        An error condition that changes the normal {flow of control}
        in a program.  An exception may be generated ("raised") by
        {hardware} or {software}.  Hardware exceptions include
        {reset}, {interrupt} or a signal from a {memory management
        unit}.  Exceptions may be generated by the {arithmetic logic
        unit} or {floating-point unit} for numerical errors such as
        divide by zero, {overflow} or {underflow} or {instruction
        decoding} errors such as privileged, reserved, {trap} or
        undefined instructions.  Software exceptions are even more
        varied and the term could be applied to any kind of error
        checking which alters the normal behaviour of the program.

        (1994-10-31)

exception handler

        Special code which is called when an {exception} occurs during
        the execution of a program.  If the programmer does not
        provide a handler for a given exception, a built-in system
        exception handler will usually be called resulting in abortion
        of the program run and some kind of error indication being
        returned to the user.

        Examples of exception handler mechanisms are {Unix}'s signal
        calls and {Lisp}'s {catch} and {throw}.

        (1994-10-31)

EXCH

        <jargon> /eks'ch*/ or /eksch/ To exchange two things, each for
        the other; to swap places.  If you point to two people sitting
        down and say "Exch!", you are asking them to trade places.
        EXCH, meaning EXCHange, was originally the name of a {PDP-10}
        instruction that exchanged the contents of a {register} and a
        memory location.

        Many newer hackers are probably thinking instead of the
        {PostScript} exchange operator (which is usually written in
        lowercase).

        (1999-09-17)

Exchange Server

        {Microsoft Exchange}

excl

        {exclamation mark}

exclamation mark

        <character> The character "!" with {ASCII} code 33.

        Common names: {bang}; pling; excl (/eks'kl/); shriek; {ITU-T}:
        exclamation mark.  Rare: {factorial}; exclam; smash; cuss;
        boing; yell; wow; hey; wham; eureka; soldier; {INTERCAL}:
        spark-spot.

        The {Commonwealth Hackish}, "pling", is common among {Acorn
        Archimedes} owners.  {Bang} is more common in the USA.

        The occasional {CMU} usage, "shriek", is also used by {APL}
        fans and mathematicians, especially {category} theorists.

        Exclamation mark is used in {C} and elsewhere as the logical
        negation {operation} ({NOT}).

        (1998-09-17)

EXE

        /eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file.
        Some operating systems (notably {MS-DOS}, VMS, and TWENEX) use
        the extension .EXE to mark such files.  This usage is also
        occasionally found among Unix programmers even though Unix
        executables don't have any required suffix.

EXEC

        Early batch language for IBM VM/CMS systems.  SC19-6209
        Virtual Machine/ System Product CMS Command and Macro
        Reference (Appendix F. CMS EXEC Control Statements)

exec

        /eg-zek'/ <operating system> 1. execute.

        A synonym for {chain} derived from the {Unix} "exec" {system
        call}.

        {Unix manual page}: execve(2).

        2. (Obsolete) {executive}.

        The mainstream "exec" as an abbreviation for (human) executive
        is *not* used.  To a hacker, an "exec" is a always a program,
        never a person.

        3. At {IBM} and {VM}/{CMS} shops, the equivalent of a {shell}
        command file.

        4. <operating system> The innermost {kernel} of the {Amiga}
        {operating system} which provides shared-library support,
        device interface, {memory management}, {CPU} management, basic
        {IPC}, and the basic structures for OS extension.  The rest of
        the Amiga OS (windowing, file system, third-party extensions,
        etc.) is built using these structures.

        (1997-08-01)

EXEC 2

        1. A {script}ing language produced by {IBM} in the late 1970s.

        Superseded by {REXX}.

        [SC24-5219, "Virtual Machine/System Product EXEC 2
        Reference"].

        2. An archaic {operating system} from {UNIVAC}.

        (1995-02-20)

        [Were they written with or without a space?]

executable

        <operating system> A {binary} file containing a program in
        {machine language} which is ready to be {execute}d (run).

        The term might also be, but generally isn't, applied to
        {scripts} which are interpreted by a {command line
        interpreter}.  Executables are distinguished in {Unix} by
        having the execute permission bits set, at least for the
        owner.  {MS-DOS} uses the {filename extension} ".exe".

        (1997-06-21)

executable content

        <operating system> Executable programs sent by one computer to
        another via a network.  For example a {Java} {applet} is
        executable content.  Usage: rare.

        (1998-03-23)

execute

        {execution}

execution

        <operating system, programming> The process of carrying out
        the {instructions} in a computer program by a computer.

        See also {dry run}.

        (1996-05-13)

executive

        The {command interpreter} or {shell} for an {operating
        system}.  The term is used especially around {mainframe}s and
        probably derived from {UNIVAC}'s archaic {EXEC 2} and {EXEC 8}
        {operating system}s.

        (1994-11-30)

exercise, left as an

        Used to complete a proof in technical books when one doesn't
        mind a {handwave}, or to avoid one entirely.  The complete
        phrase is: "The proof [or "the rest"] is left as an exercise
        for the reader."  This comment *has* occasionally been
        attached to unsolved research problems by authors possessed of
        either an evil sense of humour or a vast faith in the
        capabilities of their audiences.

        (1995-02-20)

exhaustive testing

        <programming> Executing a program with all possible
        combinations of inputs or values for program variables.

        (1996-05-13)

existential quantifier

        {quantifier}

EXODUS

        <database> An extensible {database} project developed at the
        University of Wisconsin.

        (1996-05-13)

eXodus

        A package from White Pines allowing the Macintosh to be used
        as an X server.

EXOS

        A brand of {Ethernet controller} card and Ethernet software
        for {Unix}.

        (1995-01-12)

expanded memory

        <storage> Memory used through {EMS}.  In systems based on
        {Intel 80386} or later processor expanded memory is part of
        the {extended memory} that is mapped into the {expanded memory
        page frame} by the processor.  The mapping is controlled by
        the {EMM}.  In earlier systems, a dedicated {EMS} hardware
        adaptor is needed to map memory into the page frame.  In both
        cases, an appropriate {device driver} is needed for the proper
        communication between hardware and {EMM}.

        (1996-01-10)

expanded memory manager

        <software, storage> (EMM) {IBM PC} memory manager software
        implementing {Expanded Memory Specification}, such as {EMM386}
        or {QEMM386}.  EMMs can usually provide {UMB} as well.

        (1996-01-10)

expanded memory page frame

        <storage> The part of the {IBM PC} {reserved memory} address
        space used by {EMS}.

        (1996-01-10)

Expanded Memory Specification

        <storage> (EMS) An {IBM PC} memory {paging} scheme enabling
        access to memory other than {conventional memory} in {real
        mode}.

        {Expanded memory} is provided through a {page frame} of at
        least 64 {kilobytes} in the {reserved memory} address region.
        Access to this memory is provided by an {expanded memory
        manager} (EMM) software.  The EMM functions are accessible
        through {interrupt} 67H.

        In {8086} or {8088} based systems this is the only way to use
        memory beyond conventional memory.  In systems based on
        {80286} or later, {XMS} and {HMA} provide alternative methods.

        EMS was developed jointly by {Lotus}, {Intel}, and {Microsoft}
        prior to 1988.  Accordingly, this specification is sometimes
        referred to as LIM EMS.

        A complete discussion of EMS and programming examples can be
        found in ["PC System Programming for developers", 1989, ISBN
        1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and
        diskette)].

        {LIM EMS 4.0 spec
        (ftp://ftp.intel.com/pub/PCandNetworkSupport/FAQs-Self-Help_Docs/SPEC.E
MS)}.

        {EEMS}, a competing expanded memory management standard, was
        developed by {AST Research}, {Quadram} and {Ashton-Tate}.

        See also {upper memory block}.

        (1996-01-10)

expansion card

        <hardware> A circuit board which can be plugged into one of a
        computer's {expansion slots} to provide some optional extra
        facility such as additional {RAM}, {disk controller},
        {coprocessor}, {graphics accelerator}, communication device or
        some special-purpose interface.

        Different computers have different standards for the cards
        they accept, e.g. {PCI}.

        (1998-06-26)

expansion slot

        <hardware> A connector in a computer into which an {expansion
        card} can be plugged.  The connector supplies power to the
        card and connects it to the {data bus}, {address bus} and
        control signals of the {motherboard}.

        (1998-06-26)

expect

        <language, tool> A {Unix} tool written in {Tcl} and a {script
        language} for automating the operation of {interactive}
        applications such as {telnet}, {FTP}, {passwd}, {fsck},
        {rlogin}, {tip}, etc..  Expect can feed input to other
        programs and perform {pattern matching} on their output.  It
        is also useful for testing these applications.  By adding
        {Tk}, you can also wrap interactive applications in {X11}
        {GUI}s.

        {Home (http://expect.nist.gov/)}.

        ["expect: Scripts for Controlling Interactive Tasks", Don
        Libes, Comp Sys 4(2), U Cal Press Journals, Nov 1991].

        (1997-06-09)

Experimental Physics Control Systems

        (EPCS) A group of the European Physical Society, focussing on
        all aspects of controls, especially {informatics}, in
        experimental physics, including accelerators and experiments.

        (1994-12-12)

Experimental Programming Language

        (EPL) A language by David May which influenced {occam}.

        ["EPL: An Experimental Language for Distributed Computing",
        D.C. May, in Trends and Applications 1978: Distributed
        Processing, NBS, pp.69-71].

        (1994-11-18)

Expert Judgement Models

        <programming> A method of software estimation that is based on
        consultation with one or more experts that have experience
        with similar projects.  An expert-consensus mechanism such as
        the {Delphi Technique} may be used to produce the estimate.

        (1996-05-29)

expert system

        <artificial intelligence> A computer program that contains a
        {knowledge base} and a set of {algorithms} or rules that infer
        new facts from knowledge and from incoming data.

        An expert system is an {artificial intelligence} application
        that uses a knowledge base of human expertise to aid in
        solving problems.  The degree of problem solving is based on
        the quality of the data and rules obtained from the human
        expert.  Expert systems are designed to perform at a human
        expert level.  In practice, they will perform both well below
        and well above that of an individual expert.

        The expert system derives its answers by running the knowledge
        base through an {inference engine}, a software program that
        interacts with the user and processes the results from the
        rules and data in the knowledge base.

        Expert systems are used in applications such as medical
        diagnosis, equipment repair, investment analysis, financial,
        estate and insurance planning, route scheduling for delivery
        vehicles, contract bidding, counseling for self-service
        customers, production control and training.

        [Difference from "{knowledge-based system}"?]

        (1996-05-29)

Expert Systems Ltd.

        <company> (ESL) Distributors of {ESLPDPRO}.

        Adderss: Magdalen Centre, Oxford Science Park, Oxford, OX4
        4GA.  Telephone +44 (865) 784474.

        (1996-05-29)

explicit parallelism

        A feature of a programming language for a {parallel
        processing} system which allows or forces the programmer to
        annotate his program to indicate which parts should be
        executed as independent parallel tasks.  This is obviously
        more work for the programmer than a system with {implicit
        parallelism} (where the system decides automatically which
        parts to run in parallel) but may allow higher performance.

explicit type conversion

        <programming> (Or "cast" in {C} and elsewhere).  A programming
        construct ({syntax}) to specify that an expression's value
        should be converted to a different type.

        For example, in {C}, to convert an {integer} (usually 32 bits)
        to a {char} (usually 8 bits) we might write:

                int i = 42;
                char *p = &buf;
                *p = (char) i;

        The expression "(char)" (called a "cast") converts i's value
        to char type.  Casts (including this one) are often not
        strictly necessary, due to automatic {coercions} performed by
        the compiler, but can be used to make the conversion obvious
        and to avoid warning messages.

        (1999-09-19)

exploit

        <security> A security hole or an instance of taking advantage
        of a security hole.

        "[...] {hackers} say exploit. {sysadmin}s say hole"
        -- {Mike Emke (http://emke.com/)}

        Emke reports that the stress is on the second syllable.  If
        this is true, this may be a case of of hackerly zero-deriving
        verbs (especially instatials) from nouns, akin to "write" as a
        noun to describe an instance of a disk drive writing to a
        disk.

        (1997-01-31)

Exploratory Data Analysis

        (EDA)

        [J.W.Tukey, "Exploratory Data Analysis", 1977, Addisson
        Wesley].

exponent

        <programming> (Or "characteristic") The part of a
        {floating-point} number specifying the power of ten by which
        the {mantissa} should be multiplied.  In the common notation,
        e.g. 3.1E8, the exponent is 8.

        (1995-02-27)

exponential

        1. <mathematics> A function which raises some given constant
        (the "base") to the power of its argument.  I.e.

                f x = b^x

        If no base is specified, {e}, the base of {natural
        logarthim}s, is assumed.

        2. <complexity> {exponential-time algorithm}.

        (1995-04-27)

exponential-time

        <complexity> The set or property of problems which can be
        solved by an {exponential-time algorithm} but for which no
        {polynomial-time algorithm} is known.

        (1995-04-27)

exponential-time algorithm

        <complexity> An {algorithm} (or {Turing Machine}) that is
        guaranteed to terminate within a number of steps which is a
        {exponential} function of the size of the problem.

        For example, if you have to check every number of n digits to
        find a solution, the {complexity} is O(10^n), and if you add
        an extra digit, you must check ten times as many numbers.

        Even if such an algorithm is practical for some given value of
        n, it is likely to become impractical for larger values.  This
        is in contrast to a {polynomial-time algorithm} which grows
        more slowly.

        See also {computational complexity}, {polynomial-time},
        {NP-complete}.

        (1995-04-27)

Express

        1. A language supporting {concurrency} through {message
        passing} to named message queues from {ParaSoft} Corporation

        {(ftp://ftp.parasoft.com/express/docs)}

        2. Data definition language, meant to become an ISO standard
        for product data representation and exchange.  TC 184/SC4 N83,
        ISO, 1991-05-31.  E-mail: <smith@cme.nist.gov>.

        3. A data modelling language adopted by the {ISO} working
        group on {STEP}.

expression tree

        <mathematics, grammar> The {syntax tree} of an {expression}.

        (1998-11-14)

extend

        <programming> To add {features} to a program, especially
        through the use of {hooks}.

        "Extend" is very often used in the phrase "extend the
        {functionality} of a program."

        {Plug-ins} are one form of extension.

        (1997-06-21)

Extended Affix Grammar

        <language, grammar> (EAG) A formalism developed by Marc
        Seutter <marcs@cs.kun.nl> for describing both the {context
        free syntax} and the {context sensitive syntax} of languages.

        EAG is a member of the family of two-level grammars.  They are
        very closely related to two-level {van Wijngaarden grammars}.
        The EAG compiler will generate either a {recogniser}, a
        {transducer}, a {translator}, or a {syntax directed editor}
        for a language described in the EAG formalism.

        {FTP KUN (ftp://hades.cs.kun.nl/pub/eag/)}

        (1996-05-29)

Extended ALGOL

        <language> An extension of {ALGOL 60}, used to write the
        {ESPOL} compiler on the {Burroughs B5500}, {Burroughs B6500},
        and {Burroughs B6700}.

        ["Burroughs B6700 Extended ALGOL Language Information Manual",
        No. 5000128 (Jul 1971)].

        [Sammet 1969, p. 196].

        (1995-05-09)

Extended Architecture

        <storage> (XA) A {CD-ROM} drive specification required by
        {Green Book CD-ROM} and {White Book CD-ROM} formats.  Drives
        labelled "XA ready" may require a {firmware} upgrade.

        (1994-11-02)

Extended Backus-Naur Form

        <language> Any variation on the basic {Backus-Naur Form} (BNF)
        {meta-syntax} notation with (some of) the following additional
        constructs: {square bracket}s "[..]" surrounding optional
        items, suffix "*" for {Kleene closure} (a sequence of zero or
        more of an item), suffix "+" for one or more of an item,
        {curly bracket}s enclosing a list of alternatives, and
        super/subscripts indicating between n and m occurrences.

        All these constructs can be expressed in plain BNF using extra
        {production}s and have been added for readability and
        succinctness.

        (1995-04-28)

Extended Binary Coded Decimal Interchange Code

        <character, standard> /eb's*-dik/, /eb'see`dik/, /eb'k*-dik/,
        /ee`bik'dik`/, /*-bik'dik`/ (EBCDIC) A {character set} used on
        {IBM} {dinosaurs} and the {AS/400} and {e-Server}.  It exists
        in at least six mutually incompatible versions, all featuring
        such delights as non-contiguous letter sequences and the
        absence of serveral punctuation characters fairly important
        for modern computer languages.  IBM adapted EBCDIC from
        {punched card} code early in the 1960s and promulgated it as a
        customer control tactic (see {connector conspiracy}).

        In one variant each character is represented by 5 bits and one
        code (11111?) switches between character sets.

        US EBCDIC used more or less the same characters as {ASCII},
        but used different {code points}.  Some ASCII characters did
        not exist in EBCDIC (e.g. {square brackets}) and EBCDIC had
        some ({cent sign}, {not sign}) that were not in ASCII.  As a
        consequence, the translation between ASCII and EBCDIC was
        strictly speaking undefined, and IBM never officially defined
        a complete one.  Users defined one translation which resulted
        in a so-called de-facto EBCDIC containing all the characters
        of ASCII, that all ASCII-related programs use.

        Some printers, telex machines, and even electronic cash
        registers can speak EBCDIC, but only so they can converse with
        IBM mainframes.

        For an in-depth discussion of character code sets, and full
        translation tables, see {Guidelines on 8-bit character codes
        (ftp://ftp.ulg.ac.be/pub/docs/iso8859/iso8859.networking)}.

        Here is a simple translation table:

                   Least significant nibble ->

                   0 1 2 3 4 5 6 7 8 9 A B C D E F
                0  ... controls ...
                1
                2
                3                 ... controls ...
                4               . < ( + |
                5  &          ! $ * ) ; ^
                6  - /          , % _ > ?
                7           ` : # @ ' = "
                8   a b c d e f g h i      
                9   j k l m n o p q r      
                A   ~ s t u v w x y z    [  
                B               ]  
                C  { A B C D E F G H I      
                D  } J K L M N O P Q R      
                E  \  S T U V W X Y Z      
                F  0 1 2 3 4 5 6 7 8 9     

        E.g. the EBCDIC code for "A" is {hexadecimal} "C1".

        (1999-07-06)

Extended BNF

        <language> {Extended Backus-Naur Form}.

Extended C++

        <language> {EC++} extended by G. Masotti
        <masotti@lipari.usc.edu> with preconditions, postconditions
        and {class invariants}, {parameterised classes}, {exception
        handling} and {garbage collection}.  {EC++} translates
        Extended C++ into C++.

        (1989-10-10)

Extended Capabilities Port

        <hardware> (ECP) A {parallel printer interface} for {IBM PC}
        compatibles, supported by several, mainly US, manufacturers.

        Not to be confused with the more common {Enhanced Capabilities
        Port}.

        (1997-12-01)

Extended Concurrent Prolog

        <language> (ECP) {Concurrent Prolog} with {OR parallelism},
        {set abstraction} and {meta-inference} features.

        ["AND-OR Queuing in Extended Concurrent Prolog", J. Tanaka et
        al, Proc Logic Prog Conf '85, LNCS 193, Springer 1985].

        (1994-12-01)

Extended Data Out Dynamic Random Access Memory

        <storage> (EDO DRAM, EDO RAM) A type of {DRAM} designed to
        access nearby memory locations faster than {FPM DRAM}.

        Extended Data Out DRAM (EDO-DRAM) allows the data outputs to
        be kept active after the CAS\ signal goes inactive, using an
        additional signal OE\ to control the data outputs.  This can
        be used in {pipelined} systems for overlapping accesses where
        the next cycle is started before the data from the last cycle
        is removed from the bus.

        EDO DRAM is primarily used with {Intel}'s {Pentium} processors
        since with slower processors there is no significant
        performance gain.  To make use of the advanced features of EDO
        an appropriate {chipset}, such as {Triton}, must be used.  In
        early 1995, EDO DRAM was available for computers from
        {Micron}, {Gateway 2000}, and {Intel Corporation}; since then
        other manufactures followed suit.

        Note that in comparison to {Burst EDO} EDO is sometimes
        referred to as "Standard EDO".

        (1996-06-25)

Extended Data Out Random Access Memory

        {Extended Data Out Dynamic Random Access Memory}

Extended FORTRAN Language

        (EFL) A {FORTRAN} {preprocessor} to provide {structured
        programming} constructs much like {C}.  EFL is a descendant of
        {RATFOR}.  It is written in C.

        ["An Informal Description of EFL", S.I. Feldman].

eXtended Graphics Array

        <hardware> (XGA) An {IBM} {display standard} introduced in
        1990.

        XGA supports a {resolution} of 1024 x 768 {pixels} with a
        {palette} of 256 colours, or 640 x 480 with {high colour} (16
        {bits per pixel}).

        XGA-2 added 1024 x 768 support for high colour and higher
        refresh rates, improved performance, and supports 1360 x 1024
        in 16 colours.

        XGA is probably not the same as {8514-A}.

        See also {VESA}'s {EVGA} released at a similar time.

        (1999-08-01)

Extended Industry-Standard Architecture

        <architecture, standard> (EISA) /eesa/ A {bus} standard for
        {IBM compatibles} that extends the {ISA} bus architecture to
        32 bits and allows more than one {CPU} to share the bus.  The
        {bus mastering} support is also enhanced to provide access to
        4 GB of memory.  Unlike {MCA}, EISA can accept older {XT bus
        architecture} and {ISA} boards.

        EISA was announced in late 1988 by compatible vendors as a
        counter to {IBM}'s MCA in its {PS/2} series.  Although
        somewhat inferior to the MCA it became much more popular due
        to the proprietary nature of MCA.

        [Main sponsors?  Open standard?]

        (1996-06-25)

extended memory

        <storage> Memory above the first {megabyte} of {address space}
        in an {IBM PC} with an {80286} or later processor.

        Extended memory is not directly available in {real mode}, only
        through {EMS}, {UMB}, {XMS}, or {HMA}; only applications
        executing in {protected mode} can use extended memory
        directly.  In this case, the extended memory is provided by a
        supervising {protected-mode} {operating system} such as
        {Microsoft Windows}.  The processor makes this memory
        available through a system of {global descriptor tables} and
        {local descriptor tables}.  The memory is "protected" in the
        sense that memory assigned a local descriptor cannot be
        accessed by another program without causing a hardware {trap}.
        This prevents programs running in protected mode from
        interfering with each other's memory.

        A {protected-mode} {operating system} such as Windows can also
        run {real-mode} programs and provide {expanded memory} to
        them.  {DOS Protected Mode Interface} is {Microsoft}'s
        prescribed method for an {MS-DOS} program to access extended
        memory under a {multitasking} environment.

        Having extended memory does not necessarily mean that you have
        more than one megabyte of memory since the reserved memory
        area may be partially empty.  In fact, if your 386 or higher
        uses extended memory as expanded memory then that part is not
        in excess of 1Mb.

        See also {conventional memory}.

        (1996-01-10)

extended memory manager

        <software, storage> (XMM) The memory manager software
        implementing {Extended Memory Specification}, such as {HIMEM}
        or {QEMM386}.  XMM's can usually also act as {A20 handlers}.

        (1996-01-10)

Extended Memory Specification

        <storage> (XMS) The specification describing the use of {IBM
        PC} {extended memory} in {real mode} for storing data (but not
        executable code).  Memory is made available by {extended
        memory manager} (XMM) software.  The XMM functions are
        accessible through {interrupt} 2FH.

        (1996-01-10)

Extended ML

        A language by Don Sannella of the {University of Edinburgh}
        combining {algebraic specification} and {functional
        programming}.

        ["Program Specification and Development in Standard ML",
        D. Sannella et al, 12th POPL, ACM 1985].

        (1994-12-12)

Extended Pascal

        A superset of {ANSI} and {ISO Pascal} with many enhancements,
        including {modules}, {separate compilation}, {type schema}ta,
        variable-length strings, direct-access files, complex numbers,
        initial values, constant expressions.  ANSI/IEEE770X3.160-1989
        and ISO 10206.

        (1994-12-12)

Extended Self-containing Prolog

        <language> (ESP) An {object-oriented} extension of {KL0} by
        Chikayama.  ESP has {backtracking}-based control,
        {unification}-based parameter passing and {object-oriented}
        calling.  An {object} in ESP is an {axiom} set.  A {class}
        definition consists of nature definitions ({inheritance}),
        slot definitions ({class variables}) and {clause} definitions.
        ESP has {multiple inheritance} similar to {Flavors}.  It has
        been implemented for {ICOT}'s {PSI} Sequential Inference
        machine.

        See also {CESP}.

        E-mail: <k-hata@air.co.jp>.

        ["Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th
        Gen Comp Sys, ICOT 1984].

        (1994-12-08)

Extended System Configuration Data

        <operating system> (ESCD) A four-kilobyte area of memory in
        {MS-DOS}(?) at offset 1D000h-1DFFFh.  This area is used as
        {NVRAM} for {PNP BIOS} and {PNP OS}.  Intel's {ICU} also uses
        ESCD to store information for PNP {ISA} cards and {legacy} ISA
        cards.  It must be writeable at {runtime}.

        {(http://www.adosea.com/vendors/asus/products/tb/flash-pnpbios.txt)}.

        (1997-04-28)

Extended Tiny

        A research/educational tool for experimenting with {array}
        data dependence tests and reordering transformations.  It
        works with a language {tiny}, which does not have procedures,
        {goto}'s, pointers, or other features that complicate
        dependence testing.

        Michael Wolfe's original {tiny} has been extended
        substantially by William Pugh <pugh@cs.umd.edu> et al. at the
        {University of Maryland}.

        Version 3.0 (Dec 12th, 1992) includes a programming
        environment, dependence tester, tests translator
        ({Fortran}->tiny), documentation, and technical reports.  It
        should run on any {Unix} system.

        {(ftp://cs.umd.edu/pub/omega)}

        E-mail: Omega test research group <omega@cs.umd.edu>.

        (1992-12-12)

Extended Video Graphics Array

        <hardware, graphics> (EVGA) A {display standard} introduced by
        {VESA} in 1991.

        It offers a maximum {resolution} of 1024 x 768 {pixels}
        ({non-interlaced}) and a 70 Hz {refresh rate}.

        EVGA should not be confused with the older {EGA} (Enhanced
        Graphics Array) or {XGA} (eXtended Graphics Array).

        [Same as "{eXtended Video Graphics Array}" (XVGA)?]

        (1999-08-01)

eXtended Video Graphics Array

        <hardware> (XVGA) A {display standard} with a {resolution} of
        1024 by 768 {pixels} of 256 colours.  {IBM} call this mode
        "{8514}".

        [Same as "{Extended Video Graphics Array}" (EVGA)?]

        (1997-12-11)

extensible

        <programming> Said of a system (e.g., {program}, {file
        format}, {programming language}, {protocol}, etc.) designed to
        easily allow the addition of new {features} at a later date,
        e.g. through the use of {hooks}, an {API} or {plug-ins}.

        See also {extend}, {forward compatible}.

        (1998-01-15)

extensible database

        <database> A {DBMS} that allows access to data from remote
        sources as if the remote data were part of the {database}.

        [Example?]

        (1997-11-20)

Extensible Markup Language

        <language, text> (XML) An initiative from the {W3C} defining
        an "extremely simple" dialect of {SGML} suitable for use on
        the {World-Wide Web}.

        {(http://www.w3.org/XML/)}.

        [Relationship to the {XSL} forthcoming subset of {DSSSL}?]

        (1997-11-20)

Extensible Shell

        <operating system> (es) A {Unix} {shell} written by Byron
        Rakitzis <byron@netapp.com> and Paul Haahr <haahr@adobe.com>,
        derived from {rc}.  Es has real {functions}, {closures},
        {exceptions} and lets you redefine most internal shell
        operations.

        Version: 0.84.

        {(ftp://ftp.sys.utoronto.ca/pub/es/)}.

        ["Es - A Shell with Higher Order Functions", P. Haahr et al,
        Proc Winter 1993 Usenix Technical Conference].

        (1993-04-30)

extension

        1. <filename extension> {filename extension}.

        2. <programming> A {feature} or piece of {code} which
        {extends} a program's {functionality}, e.g. a {plug-in}.

        (1997-06-21)

extensional

        Extensional properties, e.g. extensional equality, relate to
        the "black-box" behaviour of an object, i.e. how its output
        depends on its input.  The opposite is intensional which
        concerns how the object is implemented.

extensional equality

        (Or extensionality).  Functions, f and g are extensionally
        equal if and only if

                f x = g x  for all x.

        where "=" means both expressions fail to terminate (under some
        given {reduction strategy}) or they both terminate with the
        same basic value.

        Two functions may be extensionally equal but not
        inter-convertible (neither is reducible to the other).  E.g.
        \ x . x+x and \ x . 2*x.  See also {observational
        equivalence}, {referential transparency}.

extensionality

        {extensional equality}

Extension Language Kit

        <language> (Elk) A {Scheme} {interpreter} by Oliver Laumann
        <net@cs.tu-berlin.de> and Carsten Bormann
        <cabo@cs.tu-berlin.de> of the {Technical University of
        Berlin}.  Elk was designed to be used as a general extension
        language.  New {types} and {primitive} procedures can easily
        be added.  It has {first-class environments}, {dynamic-wind},
        {fluid-let}, {macros}, {autoload}ing and a {dump}.  It
        provides interfaces to {Xlib}, {Xt} and various {widget} sets;
        {dynamic loading} of extensions and {object files}; almost all
        artificial limitations removed; {generational}/{incremental
        garbage collector}; {Unix} {system call} extensions; {Records}
        (structures) and {bit strings}.

        Version: 2.2 is mostly {R3RS} compatible and runs on {Unix},
        {Ultrix}, {VAX}, {Sun3}, {Sun4}, {68000}, {i386}, {MIPS}, {IBM
        PC RT}, {RS/6000}, {HP700}, {SGI}, {Sony}, {MS-DOS}
        ({gcc}+{DJGPP} or {go32}).

        {Germany
        (ftp://ftp.fu-berlin.de/pub/Unix/languages/scheme/elk-2.2.tar.gz)}.
        {US (ftp://ftp.x.org/contrib/elk-2.2.tar.gz)}.  {US
        (ftp://gatekeeper.dec.com/pub/comp.sources.misc/volume8/elk)}.

        (1994-12-15)

Exterior Gateway Protocol

        (EGP) A protocol which distributes routing information to the
        {router}s which connect {autonomous system}s.  The term
        "{gateway}" is historical, and "router" is currently the
        preferred term.  There is also a routing protocol called {EGP}
        defined in STD 18, RFC 904.  See also {Border Gateway
        Protocol}, {Interior Gateway Protocol}.

eXternal Data Representation

        (XDR) A {standard} for machine independent data structures
        developed by {Sun Microsystems} for use in {remote procedure
        call} systems.  It is defined in {RFC 1014} and is similar to
        {ASN.1}.

        (1994-12-13)

external memory

        <storage> A vague term for slower, {non-volatile storage},
        usually {magnetic disk}, in contrast to {main memory} which is
        usually volatile {semiconductor} {RAM}.

        (1997-02-17)

EXTRA

        Object-oriented, Pascal style, handles sets.  "A Data Model
        and Query Language for EXODUS", M.J. Carey et al, SIGMOD 88
        Conf Proc, pp.413- 423, ACM SIGMOD Record 17:3 (Sept 1988).

extranet

        <World-Wide Web> The extension of a company's {intranet} out
        onto the {Internet}, e.g. to allow selected customers,
        suppliers and mobile workers to access the company's private
        data and applications via the {World-Wide Web}.  This is in
        contrast to, and usually in addition to, the company's public
        {web site} which is accessible to everyone.  The difference
        can be somewhat blurred but generally an extranet implies
        real-time access through a {firewall} of some kind.

        Such facilities require very careful attention to security but
        are becoming an increasingly important means of delivering
        services and communicating efficiently.

        [Did {Marc Andreessen} invent the term in September 1996?]

        (1997-12-17)

EXUG

        {European X User Group}

eyeball search

        <jargon> (Or vgrep) To look for something in a mass of code or
        data with one's own native optical sensors, as opposed to
        using some sort of pattern matching software like {grep} or
        any other automated search tool.

        Compare {vdiff}, {desk check}.

        (1997-12-17)

EZ

        High-level string-processing language derived from SNOBOL4,
        SL5 and Icon.

        ["The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U
        Arizona, 1984].

ezd

        [Easy drawing] A graphics server that sits between an
        {application program} and an {X} server and allows both
        existing and new programs easy access to structured graphics.
        Ezd users have been able to have their programs produce
        interactive drawings within hours of reading the manual page.
        Structured graphics: application defined graphical objects are
        ordered into drawings by the application.  Unlike most X
        tools, ezd does not require any event handling by the
        application.  The ezd server maintains the window contents.
        When an event occurs an application supplied {Scheme}
        expression is evaluated.

        {Version 15mar93 (ftp://gatekeeper.dec.com/pub/DEC/ezd/)}

        E-mail: Joel Bartlett <bartlett@decwrl.dec.com> ?

        (1993-03-10)

e-zine

        {electronic magazine}

f2c

        A {Fortran 77} to {C} translator by S. I. Feldman, D. M. Gay,
        M. W. Maimone and N. L. Schryer.  Produces {ANSI C} or {C++}.

        {(ftp://netlib.bell-labs.com/netlib/f2c)}.

        E-mail: <dmg@bell-labs.com>.

        Current version: 1997.07.24.

        (1997-08-01)

F2F

        {face-to-face}

F68K

        A portable {Forth} system for {Motorola} {680x0} computers by
        Joerg Plewe <joerg.plewe@mpi-dortmund.mpg.de>.  Ported to
        {Atari ST}, {Atari TT}, {Amiga}, {Sinclair QL} and {OS9}.
        Easily ported to {Motorola} {68000} based systems.

        {(ftp://archive.umich.edu/atari/Languages/)}

        (1992-12-14)

FAC

        Functional Array Calculator.  An {APL}-like language, but
        {purely functional} and {lazy}.  It allows infinite {array}s.

        ["FAC: A Functional APL Language", H.-C. Tu and A.J. Perlis,
        IEEE Trans Soft Eng 3(1):36-45 (Jan 1986)].

face time

        <jargon> Time spent interacting with somebody face-to-face (as
        opposed to via electronic links).  "Oh, yeah, I spent some
        face time with him at the last Usenix."

face-to-face

        <jargon, chat> (F2F, {IRL}) Used to describe personal
        interaction in real life as opposed to via some digital or
        electronic communications medium.

        (1997-01-31)

Facile

        A {concurrent} extension of {ML} from {ECRC}.

        {(http://www.ecrc.de/facile/facile_home.html)}

        ["Facile: A Symmetric Integration of Concurrent and Functional
        Programming", A. Giacalone <ag@ecc.de> et al, Intl J Parallel
        Prog 18(2):121-160 (Apr 1989)].

        (1994-12-01)

facsimile

        <communications> ("fax") A process by which fixed graphic
        material including pictures, text, or images is scanned and
        the information converted into electrical signals which are
        transmitted via telephone to produce a paper copy of the
        graphics on the receiving fax machine.

        Some {modems} can be used to send and receive fax data.

        [Details?  Standards?]

        (1995-11-15)

FACT

        {Fully Automated Compiling Technique}

fact

        <artificial intelligence, programming> The kind of {clause}
        used in {logic programming} which has no {subgoals} and so is
        always true (always succeeds).  E.g.

                wet(water).
                male(denis).

        This is in contrast to a {rule} which only succeeds if all its
        subgoals do.  Rules usually contain {logic variables}, facts
        rarely do, except for oddities like "equal(X,X).".

        (1996-10-20)

factor

        A quantity which is multiplied by another quantity.  See
        {coefficient of X}.  See also {divisor}.

FAD

        ["FAD, A Simple and Powerful Database Language", F. Bancilon
        et al, Proc 13th Intl Conf on VLDB, Brighton, England, Sep
        1987].

failure

        The inability of a system or system component to perform a
        required function within specified limits.  A failure may be
        produced when a {fault} is encountered.

        (1996-05-13)

failure-directed testing

        <programming> (Or "heuristics testing") Software testing based
        on the knowledge of the types of {errors} made in the past
        that are likely for the system under test.

        (1996-05-16)

FAIR

        <language> An early system on the {IBM 705}.

        [Listed in CACM 2(5):1959-05-16].

        (1996-05-13)

Fairchild F8

        <computer> An 8-bit {microprocessor}.  The processor itself
        had no {address bus} - program and data memory access were
        contained in separate units, which reduced the number of pins
        and the associated cost.  It also featured 64 {register}s,
        accessed by the ISAR register in cells ({register window}s) of
        eight, which meant external {RAM} wasn't always needed for
        small applications.  In addition, the 2-chip processor didn't
        need support chips, unlike others which needed seven or more.

        The F8 inspired other similar {CPU}s, such as the {Intel
        8048}.  The use of the ISAR register allowed a subroutine to
        be entered without saving a bunch of registers, speeding
        execution - the ISAR would just be changed.  Special purpose
        registers were stored in the second cell (regs 9-15), and the
        first eight registers were accessed directly.  The windowing
        concept was useful, but only the register pointed to by the
        ISAR could be accessed - to access other registers the ISAR
        was incremented or decremented through the window.

        (1994-11-16)

fall back

        A feature of a {modem} {protocol} where two modems which
        experience data corruption, e.g. due to line noise, can
        renegotiate to use a lower speed connection.  See also {fall
        forward}.

fall forward

        A feature of a {modem} {protocol} where two modems which {fall
        back} to a lower speed because of data corruption can later
        return to the higher speed if the connection improves.

fall over

        [IBM] Yet another synonym for {crash} or {lose}.  "Fall over
        hard" equates to {crash and burn}.

fall through

        <programming> (The American misspelling "fall thru" is
        also common)

        1. To exit a loop by exhaustion, i.e. by having fulfilled its
        exit condition rather than via a break or exception condition
        that exits from the middle of it.  This usage appears to be
        *really* old, dating from the 1940s and 1950s.

        2. To fail a test that would have passed control to a
        subroutine or some other distant portion of code.

        3. In C, "fall-through" occurs when the flow of execution in a
        {switch statement} reaches a "case" label other than by
        jumping there from the switch header, passing a point where
        one would normally expect to find a "break".  A trivial
        example:

                switch (colour)
                {
                case GREEN:
                  do_green();
                  break;
                case PINK:
                  do_pink();
                  /* FALL THROUGH */
                case RED:
                  do_red();
                  break;
                default:
                  do_blue();
                  break;
                }

        The effect of the above code is to "do_green()" when colour is
        "GREEN", "do_red()" when colour is "RED", "do_blue()" on any
        other colour other than "PINK", and (and this is the important
        part) "do_pink()" *and then* "do_red()" when colour is "PINK".
        Fall-through is {considered harmful} by some, though there are
        contexts (such as the coding of state machines) in which it is
        natural; it is generally considered good practice to include a
        comment highlighting the fall-through where one would normally
        expect a break.  See also {Duff's Device}.

fall thru

        <spelling> It's spelled "{fall through}".

        (1996-12-13)

FALSE

        A small, compiled extensible language with {lambda
        abstraction}s by W. van Oortmerssen.

        {For Amiga (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff885)}

fandango on core

        (Unix/C, from the Mexican dance) In {C}, a wild pointer that
        runs out of bounds, causing a {core dump}, or corrupts the
        {malloc} {arena} in such a way as to cause mysterious failures
        later on, is sometimes said to have "done a fandango on core".
        On low-end personal machines without an {MMU}, this can
        corrupt the {operating system} itself, causing massive
        lossage.  Other frenetic dances such as the rhumba, cha-cha,
        or watusi, may be substituted.

        See {aliasing bug}, {precedence lossage}, {smash the stack},
        {memory leak}, {memory smash}, {overrun screw}, {core}.

        (1994-12-16)

FAP

        The {assembly language} for {Sperry-Rand 1103} and 1103A.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-16)

FAQ

        {frequently asked question}

FAQL

        {frequently asked question}

FAQ list

        {frequently asked question}

faradise

        /far'*-di:z/ [US Geological Survey] To start any
        hyper-addictive process or trend, or to continue adding
        current to such a trend.  Telling one user about a new
        octo-tetris game you compiled would be a faradising act - in
        two weeks you might find your entire department playing the
        faradic game.

farkled

        <jargon> /far'kld/ (From DeVry Institute of Technology,
        Atlanta) A synonym for {hosed}.  Possibly related to Yiddish
        "farblondjet" and/or the "Farkle Family" skits on Rowan &
        Martin's Laugh-In.

        (1998-09-07)

farming

        [Adelaide University, Australia] What the heads of a disk
        drive are said to do when they plow little furrows in the
        magnetic media.  Associated with a {head crash}.  Typically
        used as follows: "Oh no, the machine has just crashed; I hope
        the hard drive hasn't gone {farming} again."

FARNET

        A non-profit corporation, established in 1987, whose mission
        is to advance the use of computer networks to improve research
        and education.

fas

        1. Frankenstein Cross Assemblers.  A reconfigurable assembler
        package, especially suited for 8-bit processors, consisting of
        a base assembler module and a {yacc} parser, for each
        {microprocessor}, to handle {mnemonics} and addressing.
        Second party parser modules available from many sites.

        Base assembler and yacc parser modules by Mark Zenier.  FTP:
        ftp.njit.edu/pub/msdos/frankasm/frankasm.zoo.

        2. FAS.  A general purpose language sponsored by the Finnish
        government in the 70's and 80's.

FASBOL

        ["FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC
        Berkeley 1971].

fascist

        1. Said of a computer system with excessive or annoying
        security barriers, usage limits, or access policies.  The
        implication is that said policies are preventing hackers from
        getting interesting work done.  The variant "fascistic" seems
        to have been preferred at {MIT}, possibly by analogy with
        "touristic" (see {tourist}).

        2. In the design of languages and other software tools, "the
        fascist alternative" is the most restrictive and structured
        way of capturing a particular function; the implication is
        that this may be desirable in order to simplify the
        implementation or provide tighter error checking.  Compare
        {bondage-and-discipline language}, although that term is
        global rather than local.

FASE

        Fundamentally Analyzable Simplified English.

        L.E. McMahon, Bell Labs.

        [Sammet 1969, p.720].

        (1994-11-09)

FAST

        1. <body> {Federation Against Software Theft}.

        2. <language> {FORTRAN Automatic Symbol Translator}.

        (1996-05-19)

Fast ATA

        {Advanced Technology Attachment Interface with Extensions}

Fast ATA-2

        {Advanced Technology Attachment Interface with Extensions}

Fast Ethernet

        <networking> A version of {Ethernet} developed in the 1990s(?)
        which can carry 100 {Mbps} compared with standard Ethernet's
        10 Mbps.  It requires upgraded {network cards} and {hubs}.

        The relevant standards are {100BaseT}, {100BaseFX} and
        {100BaseVG}.

        (1998-03-23)

Fast Fourier Transform

        <algorithm> (FFT) An {algorithm} for computing the {Fourier
        transform} of a set of discrete data values.  Given a finite
        set of data points, for example a periodic sampling taken from
        a real-world signal, the FFT expresses the data in terms of
        its component frequencies.  It also solves the essentially
        identical inverse problem of reconstructing a signal from the
        frequency data.

        The FFT is a mainstay of {numerical analysis}.  Gilbert Strang
        described it as "the most important algorithm of our
        generation".  The FFT also provides the asymptotically fastest
        known algorithm for multiplying two {polynomial}s.

        Versions of the algorithm (in {C} and {Fortran}) can be found
        on-line from the {GAMS} server {here
        (http://gams.nist.gov/cgi-bin/gams-serve/class/J1.html)}.

        ["Numerical Methods and Analysis", Buchanan and Turner].

        (1994-11-09)

Fast Packet

        {Asynchronous Transfer Mode}

Fast Page Mode Dynamic Random Access Memory

        <hardware, storage> Is this the same as {Page Mode Dynamic
        Random Access Memory}?

        (1996-10-06)

Fast SCSI

        <hardware> A variant on the {SCSI-2} bus.  It uses the same
        8-bit bus as the original {SCSI}-1 but runs at up to 10MB/s -
        double the speed of SCSI-1.

        (1994-11-24)

FAT

        {File Allocation Table}

FAT32

        {File Allocation Table}

fatal

        <programming> Resulting in termination of the program.

        (1997-08-03)

fatal error

        <programming, operating system> Any {error} which causes
        abrupt {termination} of the program.  The program may be
        terminated either by itself or by the {operating system} (a
        "{fatal exception}").  In the former instance, the program
        contains code which catches the error and, as a result,
        returns to the operating system or calls an operating system
        service to terminate the program.

        (1997-08-03)

fatal exception

        <programming, operating system> A program execution error
        which is trapped by the {operating system} and which results
        in abrupt termination of the program.

        It may be possible for the program to catch some such errors,
        e.g. a {floating point} {underflow}; others, such as an
        invalid memory access (an attempt to write to read-only memory
        or an attempt to read memory outside of the program's {address
        space}), may always cause control to pass to the operating
        system without allowing the program an opportunity to handle
        the error.  The details depend on the language's {run-time
        system} and the operating system.

        See also: {fatal error}.

        (1997-08-03)

fat binary

        <operating system> An executable file containing code for more
        than one {CPU}.  The correct code is selected automatically at
        run-time.  This is convenient for distributing {software} and
        sharing it between multiple {platforms}.

        {NEXTSTEP} supports fat binaries, e.g. for {Motorola 68000},
        {Intel 80486} and {SPARC} ("triple fat").  {Mac OS} supports
        fat binaries for both {680x0} and {PowerPC} native code.

        [Other OSes?]

        (1995-09-23)

fat client

        <networking> Opposite of "{thin client}".

        (1996-12-08)

fat electrons

        <electronics, humour> Old-time hacker David Cargill's theory
        on the cause of computer glitches.  Your typical electricity
        company draws its line current out of the big generators with
        a pair of coil taps located near the top of the dynamo.  When
        the normal tap brushes get dirty, they take them off line to
        clean them up, and use special auxiliary taps on the *bottom*
        of the coil.  Now, this is a problem, because when they do
        that they get not ordinary or "thin" electrons, but the fat
        sloppy electrons that are heavier and so settle to the bottom
        of the generator.  These flow down ordinary wires just fine,
        but when they have to turn a sharp corner (as in an
        integrated-circuit via), they're apt to get stuck.  This is
        what causes computer glitches.

        [Obviously, fat electrons must gain mass by {bogon} absorption
        - ESR]

        Compare {bogon}, {magic smoke}.

        (1996-12-08)

fault

        1. <programming> A manifestation of an {error} in {software}.
        A fault, if encountered, may cause a {failure}.

        2. <architecture> {page fault}.

        (1996-05-14)

fault-based testing

        <testing> Software testing using test data designed to
        demonstrate the absence of a set of pre-specified {faults};
        typically, frequently occurring faults.  For example, to
        demonstrate that the software handles or avoids {divide by
        zero} correctly, the test data would include zero.

        (1996-05-15)

fault tolerance

        <architecture> 1. The ability of a system or component to
        continue normal operation despite the presence of hardware or
        software faults.  This often involves some degree of
        {redundancy}.

        2. The number of faults a system or component can withstand
        before normal operation is impaired.

        (1995-04-06)

fault tolerant

        {fault tolerance}

fault tree analysis

        <programming> A form of safety analysis that assesses hardware
        safety to provide failure statistics and sensitivity analyses
        that indicate the possible effect of critical failures.

        (1996-05-15)

fax

        {facsimile}

Fax over IP

        <communications> (FoIP) Transmission of a {facsimile} over an
        {IP} networking instead of {PSTN}, analogous to {Voice over
        IP}.

        (1999-04-26)

FC

        <language> A {functional language}.

        ["FC Manual", L. Augustsson, Memo 13, Programming Methodology
        Group, Chalmers U, Sweden 1982].

        (1995-03-22)

FC-AL

        {Fibre Channel-Arbitrated Loop}.

FCB

        <operating system> {file control block}.

F-code

        The code for the {FP/M} {abstract machine}.

        ["FP/M Abstract Syntax Description", Roger Bailey, Dept
        Computing, Imperial College, U London, 1985]1w.

        (1994-12-01)

FCP

        Flat Concurrent Prolog.

        ["Design and Implementation of Flat Concurrent Prolog",
        C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984].

        (1994-10-20)

FCS

        {Frame Check Sequence}

FDC

        {Floppy Disk Controller}

FDDI

        {Fiber Distributed Data Interface}

FDISK

        <operating system, tool> (Fixed disk utility) An {MS-DOS}
        utility program which prepares a {hard disk} so that it can be
        used as a {boot disk} and {file systems} can be created on it.
        {OS/2}, {NT}, {Windows 95}, {Linux}, and other {Unix} versions
        all have this command or something similar.

        (1996-12-23)

fd leak

        {file descriptor leak}

fdlibm

        A new version of the {C} maths library, libm, by Dr. K-C Ng.
        It is the basis for the bundled /usr/lib/libm.so in Solaris
        2.3 for SPARC and for future Solaris 2 releases for x86 and
        PowerPC.  It provides the standard functions necessary to pass
        the usual test suites.  This new libm can be configured to
        handle exceptions in accordance with various language
        standards or in the spirit of {IEEE 754}. The C source code
        should be portable to any IEEE 754 system.

        E-mail: <netlib@research.att.com> ("send all from fdlibm"),
        <fdlibm-comments@sunpro.eng.sun.com> (comments and bug
        reports).

        {(ftp://netlib.att.com/netlib)}.

        (1993-12-18).

FDMA

        {frequency division multiple access}

FDSE

        {full-duplex Switched Ethernet}

FDSP

        {full-duplex speaker phone}

FDT

        {Formal Description Technique}

fdx

        {full-duplex}

FEA

        {finite element analysis}

fear and loathing

        (Hunter S. Thompson) A state inspired by the prospect of
        dealing with certain real-world systems and standards that are
        totally {brain-damaged} but ubiquitous - {Intel 8086}s,
        {COBOL}, {EBCDIC}, or any {IBM} machine except the {Rios}
        (also known as the {RS/6000}).

        (1994-12-06)

feature

        <jargon> 1. A good property or behaviour (as of a program).
        Whether it was intended or not is immaterial.

        2. An intended property or behaviour (as of a program).
        Whether it is good or not is immaterial (but if bad, it is
        also a {misfeature}).

        3. A surprising property or behaviour; in particular, one that
        is purposely inconsistent because it works better that way -
        such an inconsistency is therefore a {feature} and not a
        {bug}.  This kind of feature is sometimes called a {miswart}.

        4. A property or behaviour that is gratuitous or unnecessary,
        though perhaps also impressive or cute.  For example, one
        feature of {Common LISP}'s "format" function is the ability to
        print numbers in two different Roman-numeral formats (see
        {bells, whistles, and gongs}).

        5. A property or behaviour that was put in to help someone
        else but that happens to be in your way.

        6. A bug that has been documented.  To call something a
        feature sometimes means the author of the program did not
        consider the particular case, and that the program responded
        in a way that was unexpected but not strictly incorrect.  A
        standard joke is that a bug can be turned into a {feature}
        simply by documenting it (then theoretically no one can
        complain about it because it's in the manual), or even by
        simply declaring it to be good.  "That's not a bug, that's a
        feature!" is a common catch-phrase.  Apparently there is a
        Volkswagen Beetle in San Francisco whose license plate reads
        "FEATURE".

        See also {feetch feetch}, {creeping featurism}, {wart}, {green
        lightning}.

        The relationship among bugs, features, misfeatures, warts and
        miswarts might be clarified by the following hypothetical
        exchange between two hackers on an airliner:

        A: "This seat doesn't recline."

        B: "That's not a bug, that's a feature.  There is an emergency
        exit door built around the window behind you, and the route
        has to be kept clear."

        A: "Oh.  Then it's a misfeature; they should have increased
        the spacing between rows here."

        B: "Yes.  But if they'd increased spacing in only one section
        it would have been a wart - they would've had to make
        nonstandard-length ceiling panels to fit over the displaced
        seats."

        A: "A miswart, actually.  If they increased spacing throughout
        they'd lose several rows and a chunk out of the profit margin.
        So unequal spacing would actually be the Right Thing."

        B: "Indeed."

        "Undocumented feature" is a common euphemism for a {bug}.

        7. An attribute or function of a {class} in {Eiffel}.

        (1995-10-22)

feature creature

        [Possibly from slang "creature feature" for a horror movie]
        1. One who loves to add features to designs or programs,
        perhaps at the expense of coherence, concision or {taste}.

        2. Alternately, a mythical being that induces otherwise
        rational programmers to perpetrate such crocks.  See also
        {feeping creaturism}, {creeping featurism}.

feature creep

        {creeping featurism}

featurectomy

        /fee"ch*r-ek"t*-mee/ The act of removing a {feature} from a
        program.  Featurectomies come in two flavours, the "righteous"
        and the "reluctant".  Righteous featurectomies are performed
        because the remover believes the program would be more elegant
        without the feature, or there is already an equivalent and
        better way to achieve the same end.  (Doing so is not quite
        the same thing as removing a {misfeature}.)  Reluctant
        featurectomies are performed to satisfy some external
        constraint such as code size or execution speed.

        (1994-10-20)

feature key

        <hardware> (Or "flower", "pretzel", "clover", "propeller",
        "beanie" (from propeller beanie), {splat}, "command key") The
        {Macintosh} key with the cloverleaf graphic on its keytop.

        The feature key is the Mac's equivalent of an {alt} key (and
        so labelled on on some Mac II keyboards).  The proliferation
        of terms for this creature may illustrate one subtle peril of
        iconic interfaces.

        Many people have been mystified by the cloverleaf-like symbol
        that appears on the feature key.  Its oldest name is "cross of
        St. Hannes", but it occurs in pre-Christian Viking art as a
        decorative motif.  Throughout Scandinavia today the road
        agencies use it to mark sites of historical interest.  {Apple
        Computer} picked up the symbol from an early {Macintosh}
        developer who happened to be Swedish.  Apple documentation
        gives the translation "interesting feature"!

        There is some dispute as to the proper (Swedish) name of this
        symbol.  It technically stands for the word "sev"ardhet"
        (interesting feature) many of these are old churches.  Some
        Swedes report as an idiom for it the word "kyrka", cognate to
        English "church" and Scots-dialect "kirk" but pronounced
        /shir'k*/ in modern Swedish.  Others say this is nonsense.

        (1997-11-20)

feature shock

        [Alvin Toffler's book title "Future Shock"] A user's (or
        programmer's!) confusion when confronted with a package that
        has too many features and poor introductory material.

FEC

        {Forward Error Correction}

Federal Geographic Data Committee

        (FGDC)

        {(ftp://fgdc.er.usgs.gov/gdc/html/fgdc.html)}

        [Summary?]

        (1995-03-06)

Federal Information Exchange

        (FIX) One of the connection points between the American
        governmental {internet}s and the {Internet}.

Federal Information Processing Standards

        (FIPS) United States Government technical {standard}s
        published by the {National Technical Information Service}
        (NTIS).  Computer-related products bought by the US Government
        must conform to these standards.

        (1995-03-01)

Federal Networking Council

        (FNC) The coordinating group of representatives from federal
        agencies involved in the development and use of federal
        networking, especially those networks using {TCP/IP} and the
        {Internet}.  Current members include representatives from DOD,
        DOE, {DARPA}, {NSF}, NASA, and HHS.

        (1994-11-17)

Federation Against Software Theft

        <body, legal> (FAST) A non-profitmaking organisation, formed
        in 1984 by the software industry with the aim of eradicating
        {software theft} within the UK.  Prosecuting on average one
        organisation every ten days, FAST gives a member organisation,
        which has signed a Code of Ethics and is committed to the
        carrying out of a regular {software audit}, a period of grace
        before bringing action if there is evidence of irregularities
        by the member organisation.

        In addition to prosecuting organisations and individuals for
        software theft, FAST set up a campaign of public education and
        awareness to ensure that users of commercial software
        understand the effects of software theft - primarily the legal
        penalties for copyright breach and the increased risk of virus
        infection through the uncontrolled spread of software.  It is
        estimated that European software houses alone lose $6 billion
        per year through the unlawful copying and distribution of
        software, with much of this loss being through business users
        rather than "basement hackers".  One Italian pirating operation
        employed over 100 staff and had a turnover of $10m.

        However, FAST is limited to the UK and in 1995 proposed to
        merge with the {Business Software Alliance} created by
        {Microsoft} and which has a world-wide influence.  However,
        the talks fell through and in 1996, {Novell} and {Adobe
        Systems, Inc.} defected to BSA.

        {Home (http://www.serverworld/com/fast.html)}.

        Telephone: +44 (1753) 527 999.

        (1996-09-27)

feedback

        <electronics> Part of a system output presented at its input.
        Feedback may be unintended.  When used as a design feature,
        the output is usually transformed by passive components which
        attenuate it in some manner; the result is then presented at
        the system input.

        Feedback is positive or negative, depending on the sign with
        which a positive change in the original input reappears after
        transformation.  Negative feedback was invented by Black to
        stabilise {vacuum tube} amplifiers.  The behaviour becomes
        largely a function of the feedback transformation and only
        minimally a function of factors such as transistor gain which
        are imperfectly known.

        Positive feedback can lead to instability; it finds wide
        application in the construction of oscillators.

        Feedback can be used to control a system, as in {feedback
        control}.

        (1996-01-02)

feedback control

        <electronics> A control system which monitors its effect on
        the system it is controlling and modifies its output
        accordingly.  For example, a thermostat has two inputs: the
        desired temperature and the current temperature (the latter is
        the feedback).  The output of the thermostat changes so as to
        try to equalise the two inputs.

        Computer {disk drives} use feedback control to position the
        read/write heads accurately on a recording track.  Complex
        systems such as the human body contain many feedback systems
        that interact with each other; the homeostasis mechanisms that
        control body temperature and acidity are good examples.

        (1996-01-02)

feed-forward

        A {multi-layer perceptron} network in which the outputs from
        all neurons (see {McCulloch-Pitts}) go to following but not
        preceding layers, so there are no feedback loops.

Feel

        (Free and Eventually Eulisp) An initial implementation of an
        {EuLisp} {interpreter} by Pete Broadbery
        <pab@maths.bath.ac.uk>.  Version 0.75 features an integrated
        {object} system, {modules}, {parallelism}, interfaces to {PVM}
        library, {TCP/IP} {socket}s, {future}s, {Linda} and {CSP}.
        Portable to most {Unix} systems.  Can use {shared memory} and
        {thread}s if available.

        {(ftp://ftp.bath.ac.uk/pub/eulisp/)}

        (1992-09-14)

feep

        /feep/ 1.  The soft electronic "bell" sound of a display
        terminal (except for a VT-52); a beep (in fact, the
        microcomputer world seems to prefer {beep}).

        2. To cause the display to make a feep sound.  ASR-33s (the
        original TTYs) do not feep; they have mechanical bells that
        ring.  Alternate forms: {beep}, "bleep", or just about
        anything suitably onomatopoeic.  (Jeff MacNelly, in his comic
        strip "Shoe", uses the word "eep" for sounds made by computer
        terminals and video games; this is perhaps the closest written
        approximation yet.)  The term "breedle" was sometimes heard at
        SAIL, where the terminal bleepers are not particularly soft
        (they sound more like the musical equivalent of a raspberry or
        Bronx cheer; for a close approximation, imagine the sound of a
        Star Trek communicator's beep lasting for five seconds).  The
        "feeper" on a VT-52 has been compared to the sound of a '52
        Chevy stripping its gears.  See also {ding}.

feeper

        /fee'pr/  The device in a terminal or workstation (usually
        a loudspeaker of some kind) that makes the {feep} sound.

feeping creature

        [{feeping creaturism}] An unnecessary feature; a bit of
        {chrome} that, in the speaker's judgment, is the camel's nose
        for a whole horde of new features.

feeping creaturism

        /fee'ping kree"ch*r-izm/ A deliberate spoonerism for {creeping
        featurism}, meant to imply that the system or program in
        question has become a misshapen creature of hacks.  This term
        isn"t really well defined, but it sounds so neat that most
        hackers have said or heard it.  It is probably reinforced by
        an image of terminals prowling about in the dark making their
        customary noises.

FEL

        Function Equation Language.  Programs are sets of definitions.
        Sequences are lists stored in consecutive memory.  "FEL
        Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March
        1982.

femto-

        {prefix}

fence

        1. A sequence of one or more distinguished ({out-of-band})
        characters (or other data items), used to delimit a piece of
        data intended to be treated as a unit (the computer-science
        literature calls this a "sentinel").  The NUL (ASCII 0000000)
        character that terminates strings in C is a fence.  {Hex} FF
        is also (though slightly less frequently) used this way.  See
        {zigamorph}.

        2. An extra data value inserted in an array or other data
        structure in order to allow some normal test on the array's
        contents also to function as a termination test.  For example,
        a highly optimised routine for finding a value in an array
        might artificially place a copy of the value to be searched
        for after the last slot of the array, thus allowing the main
        search loop to search for the value without having to check at
        each pass whether the end of the array had been reached.

        3. [among users of optimising compilers] Any technique,
        usually exploiting knowledge about the compiler, that blocks
        certain optimisations.  Used when explicit mechanisms are not
        available or are overkill.  Typically a hack: "I call a dummy
        procedure there to force a flush of the optimiser's
        register-colouring info" can be expressed by the shorter
        "That's a fence procedure".

        (1999-01-08)

fencepost error

        1. (Rarely "lamp-post error") A problem with the discrete
        equivalent of a {boundary condition}, often exhibited in
        programs by iterative loops.  From the following problem: "If
        you build a fence 100 feet long with posts 10 feet apart, how
        many posts do you need?"  (Either 9 or 11 is a better answer
        than the obvious 10).

        For example, suppose you have a long list or array of items,
        and want to process items m through n; how many items are
        there?  The obvious answer is n - m, but that is off by one;
        the right answer is n - m + 1.  The "obvious" formula exhibits
        a fencepost error.

        See also {zeroth} and note that not all {off-by-one errors}
        are fencepost errors.  The game of Musical Chairs involves a
        catastrophic off-by-one error where N people try to sit in N -
        1 chairs, but it's not a fencepost error.  Fencepost errors
        come from counting things rather than the spaces between them,
        or vice versa, or by neglecting to consider whether one should
        count one or both ends of a row.

        2. (Rare) An error induced by unexpected regularities in input
        values, which can (for instance) completely thwart a
        theoretically efficient {binary tree} or {hash coding}
        implementation.  The error here involves the difference
        between expected and worst case behaviours of an {algorithm}.

        (1994-12-01)

fepped out

        <jargon> /fept owt/ The {Symbolics 3600} {LISP Machine} has a
        {Front-End Processor} (FEP).  When the main processor gets
        {wedged}, the FEP takes control of the keyboard and screen.
        Such a machine is said to have "fepped out" or "dropped into
        the fep".

        (1994-12-01)

FEPROM

        {Flash Erasable Programmable Read Only Memory}

Fermat prime

        <mathematics> A {prime number} of the form 2^2^n + 1.  Any
        prime number of the form 2^n+1 must be a Fermat prime.
        {Fermat} conjectured in a letter to someone or other that all
        numbers 2^2^n+1 are prime, having noticed that this is true
        for n=0,1,2,3,4.

        {Euler} proved that 641 is a factor of 2^2^5+1.  Of course
        nowadays we would just ask a computer, but at the time it was
        an impressive achievement (and his proof is very elegant).

        No further Fermat primes are known; several have been
        factorised, and several more have been proved composite
        without finding explicit factorisations.

        {Gauss} proved that a regular N-sided {polygon} can be
        constructed with ruler and compasses if and only if N is a
        power of 2 times a product of distinct Fermat primes.

        (1995-04-10)

Ferranti F100-L

        An 8-bit processor, with 16-bit addressing, but which could
        only access 32K of memory (1-bit for indirection).  The
        Ferranti F100-L was designed by a British company for the
        British Military.

        The unique feature of the F100-L was that it had a complete
        control bus available for a {coprocessor}.  Any instruction
        the F100-L couldn't decode was sent directly to the
        coprocessor for processing.  Applications for coprocessors at
        the time were limited, but the design is still used in modern
        processors, such as the {National Semiconductor} {320xx}
        series.

        (1994-11-17)

ferrite core memory

        <storage> (Or "core") An early form of {non-volatile storage}
        built (by hand) from tiny rings of magnetisable material
        threaded onto very fine wire to form large (e.g. 13"x13" or
        more) rectangluar arrays.  Each core stored one {bit} of data.
        These were sandwiched between {printed circuit boards}(?).
        Sets of wires ran horizontally and vertically and where a
        vertical and horizontal wire crossed, a core had both wires
        threaded through it.

        A single core could be selected and magnetised by passing
        sufficient current through its horizontal and vertical wires.
        A core would retain its magnetisation until it was
        re-magnetised.  The two possible polarities of magnetisation
        were used to represent the binary values zero and one.

        A third "sense" wire, passed through the core and, if the
        magnetisation of the core was changed, a small pulse would be
        induced in the sense wire which could be detected and used to
        deduce the core's original state.

        Some core memory was immersed in a bath of heated oil to
        improve its performance.

        Core memory was rendered obsolete by {semiconductor} memory.

        For example, the 1970s-era {NCR 499} had two boards, each with
        16 {kilobytes} of core memory.

        (1996-03-04)

Ferroelectric RAM

        {Ferroelectric Random Access Memory}

Ferroelectric Random Access Memory

        <storage> (FRAM) A type of {non-volatile} read/write {random
        access} {semiconductor} memory.  FRAM combines the advantages
        of {SRAM} - writing is roughly as fast as reading, and {EPROM}
        - non-volatility and in-circuit programmability.  Current (Feb
        1997) disadvantages are high cost and low density, but that
        may change in the future.  Density is currently at most 32KB
        on a chip, compared with 512KB for SRAM, 1MB for EPROM and 8MB
        for DRAM.

        A ferroelectric memory cell consists of a ferroelectric
        {capacitor} and a {MOS} {transistor}.  Its construction is
        similar to the storage cell of a {DRAM}.  The difference is in
        the dielectric properties of the material between the
        capacitor's electrodes.  This material has a high dielectric
        constant and can be polarized by an electric field.  The
        polarisation remains until it gets reversed by an opposite
        electrical field.  This makes the memory non-volatile.  Note
        that ferroelectric material, despite its name, does not
        necessarily contain iron.  The most well-known ferroelectric
        substance is BaTiO3, which does not contain iron.

        Data is read by applying an electric field to the capacitor.
        If this switches the cell into the opposite state (flipping
        over the electrical dipoles in the ferroelectric material)
        then more charge is moved than if the cell was not flipped.
        This can be detected and amplified by sense amplifiers.
        Reading destroys the contents of a cell which must therefore
        be written back after a read.  This is similar to the
        {precharge} operation in DRAM, though it only needs to be done
        after a read rather than periodically as with DRAM {refresh}.
        In fact it is most like the operation of {ferrite core
        memory}.

        FRAM has similar applications to EEPROM, but can be written
        much faster.  The simplicity of the memory cell promises high
        density devices which can compete with DRAM.

        {RAMTRON} is the company behind FRAM.

        (1997-02-17)

Fetch

        A {Macintosh} program by Jim Matthews <Fetch@Dartmouth.edu>
        for transferring files using {File Transfer Protocol} (FTP).
        Fetch requires a Mac 512KE, System 4.1, and either {KSP} 1.03
        or {MacTCP}.

        The current version of Fetch is 2.1.2.

        Fetch is Copyright 1992, Trustees of Dartmouth College.

        {(ftp://ftp.Dartmouth.edu/pub/mac/Fetch_2.1.2.sit.hqx)}.
        {(ftp://src.doc.ic.ac.uk/computing/systems/mac/info-mac/comm/tcp)}.

        (1994-11-30)

fetch-execute cycle

        <architecture, processor> The sequence of actions that a
        {central processing unit} performs to execute each {machine
        code} instruction in a program.

        At the beginning of each cycle the CPU presents the value of
        the {program counter} on the {address bus}.  The CPU then
        fetches the instruction from {main memory} (possibly via a
        {cache} and/or a {pipeline}) via the {data bus} into the
        {instruction register}.

        From the instruction register, the data forming the
        instruction is decoded and passed to the {control unit} which
        sends a sequence of control signals to the relevant {function
        units} of the CPU to perform the actions required by the
        instruction such as reading values from {registers}, passing
        them to the {ALU} to add them together and writing the result
        back to a register.

        The program counter is then incremented to address the next
        instruction and the cycle is repeated.

        The fetch-execute cycle was first proposed by {John von
        Neumann}.

        (1998-06-25)

FF

        {form feed}

ffccc

        {Floppy} {Fortran} coding convention checker.

FFP

        Formal FP.  A language similar to FP, but with regular
        sugarless {syntax}, for machine execution.

        See also {FL}.

        ["Can Programming be Liberated From the von Neumann Style?  A
        Functional Style and Its Algebra of Programs", John Backus,
        1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)].

        (1994-10-24)

FFT

        {Fast Fourier Transform}

FGDC

        {Federal Geographic Data Committee}

FGHC

        Flat GHC.  A {flat} variant of {GHC} in which {guard} calls
        can be only to {primitive}s.

        See also {KL1}.

        (1994-10-24)

FGL

        1. Flow Graph Lisp.  A distributed dataflow language for AMPS
        (Applicative Multi-Processing System).  "A Loosely-Coupled
        Applicative Multi-Processing System", R. Keller et al, NCC,
        AFIPS June 1979, pp.613- 622.

        2. Function Graph Language.  Related to FEL.

FGL+LV

        ["Functional Programming and the Logical Variable",
        G. Lindstrom, POPL 1985, pp. 266-280].

        (1994-11-30)

FGRAAL

        FORTRAN extended GRAph Algorithmic Language.  A FORTRAN
        extension for handling sets and graphs.  "On a Programming
        Language for Graph Algorithms", W.C. Rheinboldt et al, BIT
        12(2) 1972.

fgrep

        <tool> A variant of the {Unix} {grep} command which searches
        for fixed (uninterpreted) strings rather than {regular
        expressions}.  Surprisingly, this is not always faster.

        (1996-10-27)

fi

        <networking> The {country code} for Finland.

        (1999-01-27)

Fiber Distributed Data Interface

        (FDDI) A 100 Mbit/s {ANSI} {standard} {local area network}
        architecture, defined in X3T9.5.  The underlying medium is
        {optical fibre} (though it can be copper cable, in which case
        it may be called {CDDI}) and the topology is a
        {dual-attached}, counter-rotating {token ring}.

        FDDI rings are normally constructed in the form of a "dual
        ring of trees".  A small number of devices, typically
        infrastructure devices such as {router}s and {concentrator}s
        rather than {host} computers, are connected to both rings -
        these are referred to as "{dual-attached}".  Host computers
        are then connected as {single-attached} devices to the
        {router}s or {concentrator}s.  The dual ring in its most
        degenerate form is simply collapsed into a single device.  In
        any case, the whole dual ring is typically contained within a
        computer room.

        This network topology is required because the dual ring
        actually passes through each connected device and requires
        each such device to remain continuously operational (the
        standard actually allows for optical bypasses but these are
        considered to be unreliable and error-prone).  Devices such as
        {workstation}s and {minicomputer}s that may not be under the
        control of the {network manager}s are not suitable for
        connection to the dual ring.

        As an alternative to a dual-attached connection, the same
        degree of resilience is available to a {workstation} through a
        {dual-homed} connection which is made simultaneously to two
        separate devices in the same FDDI ring.  One of the
        connections becomes active while the other one is
        automatically blocked.  If the first connection fails, the
        backup link takes over with no perceptible delay.

        {Usenet} newsgroup: {news:comp.dcom.lans.fddi}.

        (1994-12-13)

Fiber Optic InterRepeater Link

        <networking> (FOIRL) An older standard of {fiber optic} guides
        used for carrying 10 MBps {Ethernet}.  The maximum length of a
        {segment} is 1 km.  A FOIRL {multiport repeater} and
        transceivers are necessary to carry the signal to multiple
        devices.

        The more resent version of Ethernet over fiber optic cables is
        {10baseFL} with a maximum segment length of 2 km.

        (1998-06-28)

fiber optics

        <spelling> US spelling of "fibre optics".  See {optical
        fibre}.

        (1997-03-31)

Fibonacci series

        <mathematics> The {infinite} sequence of numbers beginning

                1, 1, 2, 3, 5, 8, 13, ...

        in which each term is the sum of the two terms preceding it.

        The ratio of successive Fibonacci terms tends to the golden
        ratio, namely (1 + sqrt 5)/2.

        (1997-07-14)

Fibre Channel

        <communications> An {ANSI} {standard}.

        {WebStart C&C (http://www.cmpcmm.com/cc/standards.html#FCS)}.

        {Amdahl Introduction
        (http://www.amdahl.com/ext/CARP/FCA/FCintro.html)}.

        [Summary?]

        (1996-10-30)

Fibre Channel-Arbitrated Loop

        <hardware, standard> (FC-AL) A fast serial bus interface
        standard intended to replace {SCSI} on high-end {servers}.

        FC-AL has a number of advantages over SCSI.  It offers higher
        speed: the base speed is 100 {meagbytes} per second, with 200,
        400, and 800 planned.  Many devices are dual ported, i.e., can
        be accessed through two independent ports, which doubles speed
        and increases fault tolerance.  Cables can be as long as 30 m
        (coaxial) or 10 km (optical).  FC-AL enables
        {self-configuring} and {hot swapping} and the maximum number
        of devices on a single port is 126.  Finally, it provides
        software compatibility with SCSI.

        Despite all these features FC-AL is unlikely to appear on
        desktops anytime soon, partly because its price, partly
        because typical {desktop computers} would not take advantage
        of many of the advanced features.  On these systems {FireWire}
        has more potential.

        [Current status?  Reference?]

        (1999-09-12)

fibre optics

        {optical fibre}

FIDIL

        Based on "maps", generalised arrays whose index sets
        ("domains") are arbitrary D-dimensional sets.  Domains are
        first-class objects and may be constructed by union,
        intersection, etc.

        ["Fidil: A Language for Scientific Programming",
        P.N. Hilfinger et al, TR UCRL-98057, LLNL Jan 1988].

FIDO

        FInite DOmains.  A constraint language implemented on top of
        Prolog.

        {(ftp://ftp.uni-kl.de/pub1/Unix/languages/fido/)}

FidoNet

        A worldwide hobbyist network of personal computers which
        exchanges {e-mail}, discussion groups, and files.  Founded in
        1984 and originally consisting only of {IBM PC}s and
        compatibles, FidoNet now includes such diverse machines as
        {Apple II}s, {Atari}s, {Amiga}s, and {Unix} systems.  Though
        it is much younger than {Usenet}, FidoNet is already (in early
        1991) a significant fraction of {Usenet}'s size at some 8000
        systems.

field

        <data, database> An area of a {database} {record}, or
        {graphical user interface} {form}, into which a particular
        item of data is entered.

        Example usage: "The telephone number field is not really a
        numerical field", "Why do we need a four-digit field for the
        year?".

        A {database} {column} is the set of all instances of a given
        field from all records in a {table}.

        (1999-04-26)

field circus

        A derogatory pun on "field service".  The field service
        organisation of any hardware manufacturer, but especially
        {DEC}.  There is an entire genre of jokes about DEC field
        circus engineers:

        Q: How can you recognise a DEC field circus engineer with a
        flat tire?

        A: He's changing one tire at a time to see which one is flat.

        Q: How can you recognise a DEC field circus engineer who is
        out of gas?

        A: He's changing one tire at a time to see which one is flat.

        See {Easter egging} for additional insight on these jokes.

        There is also the "Field Circus Cheer" (from the {plan file}
        for {DEC} on MIT-AI):

         Maynard! Maynard!
         Don't mess with us!
         We're mean and we're tough!
         If you get us confused
         We'll screw up your stuff.

        (DEC's service HQ is located in Maynard, Massachusetts).

        (1994-12-01)

field effect transistor

        <electronics> (FET) A {transistor} with a region of {donor}
        material with two terminals called the "source" and the
        "drain", and an adjoining region of {acceptor} material
        between, called the "gate".  The voltage between the gate and
        the {substrate} controls the current flow between source and
        drain by depleting the donor region of its charge carriers to
        greater or lesser extent.

        There are two kinds of FET's, {Junction FETs} and {MOSFETs}.

        Because no current (except a minute leakage current) flows
        through the gate, FETs can be used to make circuits with very
        low power consumption.

        Contrast {bipolar transistor}.

        (1995-10-05)

field mouse

        {wireless mouse}

field-programmable gate array

        <hardware> (FPGA) A {gate array} where the logic network can
        be programmed into the device after its manufacture.  An FPGA
        consists of an array of logic elements, either gates or lookup
        table {RAM}s, {flip-flops} and programmable interconnect
        wiring.

        Most FPGAs are reprogrammable, since their logic functions and
        interconnect are defined by RAM cells.  The {Xilinx} LCA,
        {Altera} FLEX and {AT&T} ORCA devices are examples.  Others
        can only be programmed once, by closing "antifuses".  These
        retain their programming permanently.  The {Actel} FPGAs are
        the leading example of such devices.  Atmel FPGAs are
        currently (July 1997) the only ones in which part of the array
        can be reprogrammed while other parts are active.

        As of 1994, FPGAs have logic capacity up to 10K to 20K
        2-input-NAND-equivalent gates, up to about 200 I/O pins and
        can run at {clock rate}s of 50 MHz or more.  FPGA designs must
        be prepared using {CAD} software tools, usually provided by
        the chip vendor, to do technology mapping, partitioning and
        placement, routing, and binary output.  The resulting binary
        can be programmed into a {ROM} connected to the FPGA or
        {downloaded} to the FPGA from a connected computer.

        In addition to ordinary logic applications, FPGAs have enabled
        the development of {logic emulators}.  There is also research
        on using FPGAs as computing devices, taking direct advantage
        of their reconfigurability into problem-specific hardware
        processors.

        {Usenet} newsgroup: {news:comp.arch.fpga}.

        (1997-07-11)

field servoid

        [Play on "android"] /fee'ld ser'voyd/ Representative of a
        field service organisation (see {field circus}).  This has
        many of the implications of {droid}.

FIFO

        {First In First Out}

Fifth

        An enhanced version of FORTH.  M.S. Dissertation, Cliff Click
        <cliff@cs.rice.edu>, Texas A&M, 1985.  Available from the
        Software Construction Co, (409)696-5432.

Fifth Dimension Technologies

        <company, virtual reality> (5DT) Manufacturers of the {5th
        Glove}.

        (1995-04-04)

fifth generation language

        <language, artificial intelligence> A myth the Japanese spent
        a lot of money on.  In about 1982, {MITI} decided it would
        spend ten years and a lot of money applying {artificial
        intelligence} to programming, thus solving the {software
        crisis}.  The project spent its money and its ten years and in
        1992 closed down with a wimper.

        (1996-11-06)

fifth normal form

        {database normalisation}

Fight-o-net

        <messaging> A distortion of {FidoNet}, often applied after a
        flurry of {flamage} in a particular {echo}, especially the
        SYSOP echo or Fidonews (see {'Snooze}).

        (1996-11-04)

file

        <file system> An element of data storage in a {file system}.

        The history of computing is rich in varied kinds of files and
        {file systems}, whether ornate (e.g., {Macintosh file system}
        for a well-known case) or deficient (e.g., many simple
        pre-1980s file systems don't allow {directories}).

        However, the prototypical file has these characteristics:

        * It is a single sequence of bytes (but consider {Macintosh}
        {resource forks}).

        * It has a finite length, unlike, e.g. a {Unix} {device}.

        * It is stored in a {non-volatile storage} medium (but see
        {ramdrive}).

        * It exists (nominally) in a {directory}.

        * It has a name that it can be referred to by in file
        operations, possibly in combination with its {path}.

        Additionally, a file system may associate other information
        with a file, such as {permission} bits or other {file
        attributes}; timestamps for file creation, last revision, and
        last access; revision numbers (a` la VMS), and other kinds of
        {magic}.

        (1997-04-08)

File Allocation Table

        <file system> (FAT) The component of an {MS-DOS} or {Windows
        95} {file system} which describes the {files}, {directories}
        and free space on a {hard disk} or {floppy disk}.

        A disk is divided into partitions.  Under the FAT file system
        each partition is divided into clusters, each of which can be
        one or more {sectors}, depending on the size of the partition.
        Each cluster is either allocated to a file or directory or it
        is free (unused).  A directory lists the name, size,
        modification time and starting cluster of each file or
        subdirectory it contains.

        At the start of the partition is a table (the FAT) with one
        entry for each cluster.  Each entry gives the number of the
        next cluster in the same file or a special value for "not
        allocated" or a special value for "this is the last cluster in
        the chain".  The first few clusters after the FAT contain the
        {root directory}.

        The FAT file system was originally created for the {PC-M}
        {operating system} where files were catalogued using 8-bit
        addressing.  {MS DOS}'s FAT allows only {8.3} filenames.

        With the introduction of MS-DOS 4 an incompatible 16-bit FAT
        (FAT16) with 32-kilobyte {clusters} was introduced that
        allowed {partitions} of up to 2 gigabytes.

        Microsoft later created {FAT32} to support partitions larger
        than two gigabytes and {pathnames} greater that 256
        characters.  It also allows more efficient use of disk space
        since {clusters} are four kilobytes rather than 32 kilobytes.
        FAT32 was first available in {OEM} Service Release 2 of
        {Windows 95} in 1996.  It is not fully {backward compatible}
        with the 16-bit and 8-bit FATs.

        {IDG article
        (http://www.idg.net/idg_frames/english/content.cgi?vc=docid_9-62525.htm
l)}.

        {(http://www.ora.com/reference/dictionary/terms/F/File_Allocation_Table
.htm)}.

        Compare: {NTFS}.

        [How big is a FAT?  Is the term used outside MS DOS?  How long
        is a FAT16 filename?]

        (1998-09-28)

File Attach

        [FidoNet] 1.  A file sent along with a mail message from one
        BBS to another.

        2. Sending someone a file by using the File Attach option in a
        BBS mailer.

File Composition

        A typesetting language.

        ["File Composition System Reference Manual", No. 90388,
        Information Intl].

file compression

        <algorithm> The {compression} of data in a file, usually to
        reduce storage requirements.

        (1995-04-06)

file control block

        <operating system> (FCB) An {MS-DOS} data structure that
        stores information about an open file.  The number of FCBs is
        configured in {CONFIG.SYS} with a command

                FCBS=x,y

        where x (between 1 and 255 inclusive, default 4) specifies the
        number of file control blocks to allocate and therefore the
        number of files that MS-DOS can have open at one time.  y (not
        needed from DOS 5.0 onwards) specifies the number of files to
        be closed automatically if all x are in use.

        (1995-03-21)

file descriptor

        <programming, operating system> An integer that identifies an
        open {file} within a {process}.  This number is obtained as a
        result of opening a file.  Operations which read, write, or
        close a file would take the file descriptor as an input
        parameter.

        In many {operating system} implementations, file descriptors
        are small integers which index a table of open files.  In
        {Unix}, file descriptors 0, 1 and 2 correspond to the
        {standard input}, {standard output} and {standard error} files
        respectively.

        See {file descriptor leak}.

        (1998-02-06)

file descriptor leak

        <programming> (Or "fd leak" /F D leek/) A kind of programming
        {bug} analogous to a {core leak}, in which a program fails to
        close {file descriptors} ("fd"s) after file operations are
        completed, and thus eventually runs out of them.

        See {leak}.

        (1994-11-30)

file extension

        {filename extension}

FileMaker

        <software> A {database} application developed by {Claris}.  It
        is currently the leading database application for the
        {Macintosh} and is the second most popular standalone package
        for {Windows}.

        (1998-02-18)

FileMaker, Inc.

        <company> The company that distributes the {FileMaker}
        {database}.  FileMaker, Inc. was previously known as {Claris}
        and was renamed after a restructuring in January 1998.

        {Home (http://www.filemaker.com/)}.

        (1998-02-18)

filename extension

        <filename extension> The portion of a filename, following the
        final point, which indicates the kind of data stored in the
        file.  Many {operating system}s use filename extensions,
        e.g. {Unix}, {VMS}, {MS-DOS}.  They are usually from one to
        three letters (some sad old OSes support no more than three).
        Examples include "c" for {C} {source code}, "ps" for
        {PostScript}, "txt" for arbitrary text.

        Compare: {MIME type}.

        {Tony Warr's comprehensive list
        (http://camalott.com/~rebma/filex.html)}.

        (1998-01-08)

FileNet

        <storage> A system for storage of {images} on laser disk using
        {COLD}.

        (1995-11-09)

File Request

        1. The {FidoNet} equivalent of {FTP}, in which one {BBS}
        system automatically dials another and {snarf}s one or more
        files.  Often abbreviated "FReq"; files are often announced as
        being "available for FReq" in the same way that files are
        announced as being "available for/by {anonymous FTP}" on the
        {Internet}.

        2. The act of getting a copy of a file by using the File
        Request option of the {BBS} mailer.

        (1995-01-05)

File Separator

        <character> (FS) {ASCII} character 28.

        (1996-06-28)

file server

        Hardware and software that together provide file-handling and
        storage functions for multiple users on a {local area
        network}.  The most common choices for file server software
        are {Sun Microsystems}' {Network File System} for {Unix} and
        {Novell Netware} for {IBM PC} compatibles.  There is also a
        version of NFS for PCs called {PC-NFS}.  Storing files on a
        file server saves having multiple copies stored on individual
        computers, thus economising on disk space and also makes
        administrating and updating the files easier.

File Service Protocol

        <protocol> (FSP) A {protocol}, similar to {FTP}, for copying
        {files} between computers.  It's designed for {anonymous
        archives}, and has protection against {server} and {network}
        overloading.  It doesn't use connections so it can survive
        interruptions in service.

        Until 1993-08-12, FSP didn't stand for anything.  Wen-King
        was responsible for the initials and Michael Grubb
        <mg@ac.duke.edu> for their eventual expansion.  Other
        suggestions were "File Slurping Protocol", "Flaky Stream
        Protocol" and "FTP's Sexier Partner".

        {FAQ
        (ftp://ftp.germany.eu.net/pub/networking/inet/fsp/fsp-faq/)}.

        [fsp-faq, 1993-08-12].

        (1997-12-07)

file signature

        A {magic number}.

file system

        <operating system> (FS, or "filesystem") 1. A system for
        organizing {directories} and {files}, generally in terms of
        how it is implemented in the {disk operating system}.  E.g.,
        "The {Macintosh file system} is just dandy as long as you
        don't have to interface it with any other file systems".

        2. The collection of files and directories stored on a given
        drive (floppy drive, hard drive, disk {partition}, {logical}
        drive, {RAM drive}, etc.).  E.g., "mount attaches a named file
        system to the file system hierarchy at the pathname location
        directory [...]" -- {Unix manual page} for "mount(8)".

        As an extension of this sense, "file system" is sometimes used
        to refer to the representatation of the file system's
        organisation (e.g. its {file allocation table}) as opposed the
        actual content of the files in the file system.

        {Unix manual page}: fs(5), mount(8).

        (1997-04-10)

file transfer

        <networking> Copying a {file} from one computer to another
        over a computer {network}.

        See also {File Transfer Protocol}, {Kermit}, {Network File
        System}, {rcp}, {uucp}, {XMODEM}, {ZMODEM}.

        (1997-04-10)

File Transfer Protocol

        (FTP) A {client-server} protocol which allows a user on one
        computer to transfer files to and from another computer over a
        {TCP/IP} network.  Also the client program the user executes
        to transfer files.  It is defined in {STD 9}, {RFC 959}.

        See also {anonymous FTP}, {FSP}, {TFTP}.

        {Unix manual page}: ftp(1).

        (1994-12-01)

file type

        <file format> The kind of data stored in a file.  Most modern
        {operating systems} use the {filename extension} to determine
        the file type though some store this information elsewhere in
        the {file system}.  The file type is used to choose an
        appropriate icon to represent the file in a {GUI} and the
        correct {application} with which to view, edit, run, or print
        the file.

        Different operating systems support different sets of file
        types though most agree on a large common set and allow
        arbitrary new types to be defined.

        See also {MIME}.

        [URL of list of file types?]

        (1997-02-13)

filing system

        {file system}

filk

        /filk/ [SF fandom, where a typo for "folk" was adopted as a
        new word] A popular or folk song with lyrics revised or
        completely new lyrics, intended for humorous effect when
        read, and/or to be sung late at night at SF conventions.
        There is a flourishing subgenre of these called "computer
        filks", written by hackers and often containing rather
        sophisticated technical humour.  See {double bucky} for an
        example.  Compare {grilf}, {hing} and {newsfroup}.

fill-out form

        <programming> A type of {user interface} used, for example, on
        the {World-Wide Web}, to organise a set of questions or
        options for the user so that it resembles a traditional paper
        form that is filled out.  Typical query types are:
        fill-in-the-blank (text), menu of options, select zero or
        more, or select exactly one ("{radio buttons}").

        Most {World-Wide Web} {browsers} support fill-out forms.
        {Overview
        (http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overv
iew.html)}.

        (1998-03-24)

film at 11

        <jargon> (MIT, in parody of US TV newscasters) 1. Used in
        conversation to announce ordinary events, with a sarcastic
        implication that these events are earth-shattering.  "{ITS}
        crashes; film at 11."  "Bug found in scheduler; film at 11."

        2. Also widely used outside MIT to indicate that additional
        information will be available at some future time, *without*
        the implication of anything particularly ordinary about the
        referenced event.  For example, "The mail file server died
        this morning; we found garbage all over the root directory.
        Film at 11." would indicate that a major failure had occurred
        but that the people working on it have no additional
        information about it as yet; use of the phrase in this way
        suggests gently that the problem is liable to be fixed more
        quickly if the people doing the fixing can spend time doing
        the fixing rather than responding to questions, the answers to
        which will appear on the normal "11:00 news", if people will
        just be patient.

        (1998-03-24)

FILO

        First In, Last Out; a {stack}.

        Compare {FIFO}.

        (1996-02-13)

Filtabyte

        <networking, hardware> An {Ethernet controller} card made by
        {LRT} based on the {LANCE} and {SIA}.  It uses {DMA}.  Its
        {Ethernet address} can be changed by software.

        (1994-12-01)

filter

        1. (Originally {Unix}, now also {MS-DOS}) A program that
        processes an input data stream into an output data stream in
        some well-defined way, and does no I/O to anywhere else except
        possibly on error conditions; one designed to be used as a
        stage in a {pipeline} (see {plumbing}).  Compare {sponge}.

        2. ({functional programming}) A {higher-order function} which
        takes a {predicate} and a list and returns those elements of
        the list for which the predicate is true.  In {Haskell}:

                filter p []     = []
                filter p (x:xs) = if p x then x : rest else rest
                                  where
                                  rest = filter p xs

        See also {filter promotion}.

filter promotion

        In a generate and test algorithm, combining part of the filter
        with the generator in order to reduce the number of potential
        solutions generated.  A trivial example:

                filter (< 100) [1..1000]  ==>  [1..99]

        where [1..n] generates the list of integers from 1 to n.  Here
        the filter has been combined completely with the generator.
        This is an example of {fusion}.

FIMS

        Form Interface Management System.

Finagle's Law

        <humour> The generalised or "folk" version of {Murphy's Law},
        fully named "Finagle's Law of Dynamic Negatives" and usually
        rendered "Anything that can go wrong, will".  One variant
        favoured among hackers is "The perversity of the Universe
        tends towards a maximum".

        The label "Finagle's Law" was popularised by SF author Larry
        Niven in several stories depicting a frontier culture of
        asteroid miners; this "Belter" culture professed a religion
        and/or running joke involving the worship of the dread god
        Finagle and his mad prophet Murphy.

        (1995-12-14)

fine adjuster

        <jargon, tool, humour> A tool used for {percussive
        maintenance}, also known as a "hammer".

        (1999-01-15)

fine grain

        {granularity}

finger

        <tool> 1. (From {WAITS}, via {BSD Unix}) A program that
        displays information about a particular user or all users
        logged on the system, or a remote system.  Finger typically
        shows full name, last login time, idle time, terminal line,
        and terminal location (where applicable).  It may also display
        a {plan file} left by the user (see also {Hacking X for Y}).
        Some versions take a "-l" (long) argument which yeilds more
        information.

        2. Any picture (composed of {ASCII art}) depicting "the
        finger".  Originally a humorous component of one's {plan
        file} to deter the curious fingerer, it has entered the
        arsenal of some {flamer}s.

        (1995-12-14)

finger-pointing syndrome

        <programming> All-too-frequent result of {bugs}, especially in
        new or experimental configurations.  The hardware vendor
        points a finger at the software.  The software vendor points a
        finger at the hardware.  All the poor users get is the finger.

        (1995-12-14)

finite

        {compact}

finite differencing

        See {strength reduction}.

Finite State Automata

        {Finite State Machine}

Finite State Automaton

        {Finite State Machine}

Finite State Machine

        <mathematics, algorithm> (FSM or "Finite State Automaton",
        "transducer") An {abstract machine} consisting of a set of
        states (including the initial state), a set of input events, a
        set of output events and a state transition function.  The
        function takes the current state and an input event and
        returns the new set of output events and the next state.  Some
        states may be designated as "terminal states".  The state
        machine can also be viewed as a function which maps an ordered
        sequence of input events into a corresponding sequence of
        (sets of) output events.

        A {deterministic} FSM is one where the next state is uniquely
        determinied by a single input event.  A {nondeterministic} FSM
        (NFA) may have several next states for a given input event,
        which one is actually chosen may either be random or,
        according to a different definition, it may depend on an
        arbitrary number of subsequent input events.  In the latter
        case, until these subsequent events occur it is not possible
        to determine which state the machine is in.  It is possible to
        automatically translate a nondeterministic FSM into a
        deterministic one which will produce the same output given the
        same input.

        FSMs are used in {computability theory} and in some practical
        applications such as {regular expressions} and digital logic
        design.

        See also {state transition diagram}, {Turing Machine}.

        [J.H. Conway, "regular algebra and finite machines", 1971, Eds
        Chapman & Hall].

        [S.C. Kleene, "Representation of events in nerve nets and
        finite automata", 1956, Automata Studies. Princeton].

        [Hopcroft & Ullman, 1979, "Introduction to automata theory,
        languages and computations", Addison-Wesley].

        (1998-03-28)

finn

        To pull rank on somebody based on the amount of time one has
        spent on {IRC}.  The term derives from the fact that IRC was
        originally written in Finland in 1987.

        (1995-01-24)

FIPS

        {Federal Information Processing Standards}

FIR

        <electronics> {Finite Impulse Response} (filter).

firebottle

        <electronics, humour> {vacuum tube}.

firefighting

        1. What sysadmins have to do to correct sudden operational
        problems.  An opposite of hacking.  "Been hacking your new
        newsreader?"  "No, a power glitch hosed the network and I
        spent the whole afternoon fighting fires."

        2. The act of throwing lots of manpower and late nights at a
        project, especially to get it out before deadline.  See also
        {gang bang}, {Mongolian Hordes technique}; however, the term
        "firefighting" connotes that the effort is going into chasing
        bugs rather than adding features.

        (1994-12-01)

firehose syndrome

        In mainstream folklore it is observed that trying to drink
        from a firehose can be a good way to rip your lips off.  On
        computer networks, the absence or failure of flow control
        mechanisms can lead to situations in which the sending system
        sprays a massive flood of packets at an unfortunate receiving
        system, more than it can handle.

        Compare {overrun}, {buffer overflow}.

firewall

        1. {firewall code}.

        2. {firewall machine}.

firewall code

        1. The code you put in a system (say, a telephone switch) to
        make sure that the users can't do any damage. Since users
        always want to be able to do everything but never want to
        suffer for any mistakes, the construction of a firewall is a
        question not only of defensive coding but also of interface
        presentation, so that users don't even get curious about those
        corners of a system where they can burn themselves.

        2. Any sanity check inserted to catch a {can't happen} error.
        Wise programmers often change code to fix a bug twice: once to
        fix the bug, and once to insert a firewall which would have
        arrested the bug before it did quite as much damage.

firewall machine

        <networking> A dedicated gateway machine with special security
        precautions on it, used to service outside network, especially
        {Internet}, connections and dial-in lines.  The idea is to
        protect a cluster of more loosely administered machines hidden
        behind it from {crackers}.  The typical firewall is an
        inexpensive {microprocessor}-based {Unix} machine with no
        critical data, with modems and public network ports on it, but
        just one carefully watched connection back to the rest of the
        cluster.  The special precautions may include threat
        monitoring, {call-back}, and even a complete {iron box}
        keyable to particular incoming IDs or activity patterns.

        Firewalls often run {proxy gateways}.

        Synonym {flytrap}, {Venus flytrap}.

        (1997-06-08)

FireWire

        {High Performance Serial Bus}

fireworks mode

        The mode a machine is sometimes said to be in when
        it is performing a {crash and burn} operation.

Firmware

        Software stored in read-only memory (ROM) or programmable ROM
        (PROM).  Easier to change than hardware but harder than
        software stored on disk.  Firmware is often responsible for
        the behaviour of a system when it is first switched on.  A
        typical example would be a "monitor" program in a
        microcomputer which loads the full operating system from disk
        or from a network and then passes control to it.

firmy

        {stiffy}

first class module

        <programming> A {module} that is a {first class data object}
        of the {programming language}, e.g. a {record} containing
        {functions}.  In a {functional language}, it is standard to
        have first class programs, so program building blocks can have
        the same status.

        {Claus Reinke's Virtual Bookshelf
        (http://www.informatik.uni-kiel.de/~cr/bib/bookshelf/Modules.html)}.
        {Mark Jones' home page
        (http://www.cs.nott.ac.uk/Department/Staff/mpj/)}.

        (1997-06-17)

First Fit

        <algorithm> A {resource} allocation scheme (usually for
        {memory}).  First Fit fits data into memory by scanning from
        the beginning of available memory to the end, until the first
        free space which is at least big enough to accept the data is
        found.  This space is then allocated to the data.  Any left
        over becomes a smaller, separate free space.

        If the data to be allocated is bigger than the biggest free
        space, the request cannot be met, and an error is generated.

        Compare {Best Fit}.

        (1997-06-02)

first generation computer

        <architecture> A prototype computer based on {vacuum tubes}
        and other esoteric technologies.  Chronologically, any
        computer designed before the mid-1950s.  Examples include
        {Howard Aiken}'s {Mark 1} (1944), Maunchly and Eckert's
        {ENIAC} (1946), and the {IAS} computer.

        (1996-11-22)

first generation language

        Raw {machine code}.  When computers were first "programmed"
        from an input device, rather than by being rewired, they were
        fed input in the form of numbers, which they then interpreted
        as commands.  This was really low level, and a program
        fragment might look like "010307 010307".  Almost no one
        programs in machine language anymore, because translators are
        nearly trivial to write.

        (1994-12-01)

first in first out

        (FIFO) A queue.  A data structure or hardware buffer from
        which items are taken out in the same order they were put in.
        Also known as a "shelf" from the analogy with pushing items
        onto one end of a shelf so that they fall off the other.  A
        FIFO is useful for buffering a stream of data between a sender
        and receiver which are not synchronised - i.e. not sending and
        receiving at exactly the same rate.  Obviously if the rates
        differ by too much in one direction for too long then the FIFO
        will become either full ({block}ing the sender) or empty
        ({block}ing the receiver).  A {Unix} {pipe} is a common
        example of a FIFO.

        The opposite of a FIFO is a LIFO ({last in first out}) which
        is the same as a {stack}.

        (1994-10-20)

first normal form

        {database normalisation}

first-order

        Not {higher-order}.

        (1995-03-06)

first-order logic

        <language, logic> The language describing the truth of
        mathematical {formula}s.  Formulas describe properties of
        terms and have a truth value.  The following are atomic
        formulas:

         True
         False
         p(t1,..tn)     where t1,..,tn are terms and p is a predicate.

        If F1, F2 and F3 are formulas and v is a variable then the
        following are compound formulas:

         F1 ^ F2        conjunction - true if both F1 and F2 are true,

         F1 V F2        disjunction - true if either or both are true,

         F1 => F2       implication - true if F1 is false or F2 is
                        true, F1 is the antecedent, F2 is the
                        consequent (sometimes written with a thin
                        arrow),

         F1 <= F2       true if F1 is true or F2 is false,

         F1 == F2       true if F1 and F2 are both true or both false
                        (normally written with a three line
                        equivalence symbol)

         ~F1            negation - true if f1 is false (normally
                        written as a dash '-' with a shorter vertical
                        line hanging from its right hand end).

         For all v . F  universal quantification - true if F is true
                        for all values of v (normally written with an
                        inverted A).

         Exists v . F   existential quantification - true if there
                        exists some value of v for which F is true.
                        (Normally written with a reversed E).

        The operators ^ V => <= == ~ are called connectives.  "For
        all" and "Exists" are {quantifier}s whose {scope} is F.  A
        term is a mathematical expression involving numbers,
        operators, functions and variables.

        The "order" of a logic specifies what entities "For all" and
        "Exists" may quantify over.  First-order logic can only
        quantify over sets of {atomic} {proposition}s.  (E.g. For all p
        . p => p).  Second-order logic can quantify over functions on
        propositions, and higher-order logic can quantify over any
        type of entity.  The sets over which quantifiers operate are
        usually implicit but can be deduced from well-formedness
        constraints.

        In first-order logic quantifiers always range over ALL the
        elements of the domain of discourse.  By contrast,
        second-order logic allows one to quantify over subsets of M.

        ["The Realm of First-Order Logic", Jon Barwise, Handbook of
        Mathematical Logic (Barwise, ed., North Holland, NYC, 1977)].

        (1995-05-02)

First Party DMA

        {bus mastering}

fish

        (Adelaide University, Australia) 1. Another {metasyntactic
        variable}.  See {foo}.  Derived originally from the Monty
        Python skit in the middle of "The Meaning of Life" entitled
        "Find the Fish".

        2. <storage> microfiche.  A microfiche file cabinet may be
        referred to as a "fish tank".

        (1994-12-01)

FISH queue

        (By analogy with {FIFO} - First In, First Out) First In, Still
        Here.

        A joking way of pointing out that processing of a particular
        sequence of events or requests has stopped dead.  Also "FISH
        mode" and "FISHnet"; the latter may be applied to any network
        that is running really slowly or exhibiting extreme flakiness.

        (1994-12-01)

FITNR

        ({Thinking Machines, Inc.}) Fixed In the Next Release.

        A written-only notation attached to bug reports.  Often
        wishful thinking.

        (1994-12-01)

FITS

        Flexible Image Transport System.  The standard data
        interchange and archive format of the astronomy community.

        (1994-12-01)

FIX

        {Federal Information Exchange}

fix

        1. <mathematics> The {fixed point} {combinator}.  Called Y in
        {combinatory logic}.  Fix is a {higher-order function} which
        returns a fixed point of its argument (which is a function).

                fix :: (a -> a) -> a
                fix f = f (fix f)

        Which satisfies the equation

                fix f = x such that f x = x.

        Somewhat surprisingly, fix can be defined as the non-recursive
        {lambda abstraction}:

                fix = \ h . (\ x . h (x x)) (\ x . h (x x))

        Since this involves self-application, it has an {infinite
        type}.  A function defined by

                f x1 .. xN = E

        can be expressed as

                f = fix (\ f . \ x1 ... \ xN . E)
                  = (\ f . \ x1 ... \xN . E)
                        (fix (\ f . \ x1 ... \ xN . E))
                  = let f = (fix (\ f . \ x1 ... \ xN . E))
                    in \ x1 ... \xN . E

        If f does not occur {free} in E (i.e. it is not {recursive})
        then this reduces to simply

                f = \ x1 ... \ xN . E

        In the case where N = 0 and f is free in E, this defines an
        infinite data object, e.g.

                ones = fix (\ ones . 1 : ones)
                     = (\ ones . 1 : ones) (fix (\ ones . 1 : ones))
                     = 1 : (fix (\ ones . 1 : ones))
                     = 1 : 1 : ...

        Fix f is also sometimes written as mu f where mu is the Greek
        letter or alternatively, if f = \ x . E, written as mu x . E.

        Compare {quine}.

        (1995-04-13)

        2. {bug fix}.

        (1998-06-25)

fixed disk

        <storage> A {hard disk} which is not a {removable disk}.

fixed point

        <mathematics> The fixed point of a function, f is any value, x
        for which f x = x.  A function may have any number of fixed
        points from none (e.g. f x = x+1) to infinitely many (e.g. f x
        = x).  The {fixed point combinator}, written as either "fix"
        or "Y" will return the fixed point of a function.

        See also {least fixed point}.

        (1995-04-13)

fixed-point

        <programming> A number representation scheme where a number R
        is represented by an {integer} N such that R=N*B, where B is
        the (assumed) base of the representation.

        On computers with no {floating-point unit} fixed-point
        calculations can be significantly faster as all the operations
        are basically integer operations.  Apart from that,
        fixed-point representation has the advantage of having uniform
        density, i.e., the smallest resolvable difference of the
        representation is B throughout the representable range, in
        sharp contrast to {floating-point} representations.

        (1998-05-18)

fixed point combinator

        <mathematics> (Y) The name used in {combinatory logic} for the
        {fixed point} function, also written as "{fix}".

        (1994-10-20)

FIXME

        A standard tag often put in comments near a piece of code that
        needs work.  The point of doing so is that a {grep} or a
        similar pattern-matching tool can find all such places
        quickly.  This is common in {GNU} code.  Compare {XXX}.

fixpoint

        {fixed point}

fj

        <networking> The {country code} for Fiji.

        (1999-01-27)

Fjolnir

        <language> An Icelandic programming language for the {IBM PC}
        from the {University of Iceland}.

        [Pall Haraldsson <pallha@rhi.hi.is>].

        (1995-03-17)

fk

        <networking> The {country code} for the Falkland Islands
        (Malvinas).

        (1999-01-27)

FL

        <language> Function Level.

        John Backus's successor to {FP}, developed ca. 1985.  FL is
        {dynamically typed} and adds {higher-order function}s,
        {exception}s, {user-defined type}s and other features.

        ["FL Language Manual, Parts 1 & 2", J. Backus et al, IBM
        Research Report RJ 7100 (1989)].

        (1994-10-20)

F+L

        <language> Functions plus Logic.  Equational clauses within
        function definitions to solve for {logic variable} bindings.

        ["Functions plus Logic in Theory and Practice", R.B.
        Kieburtz, Feb 1987, unpublished].

        (1994-10-20)

flag

        1. <programming> A variable or quantity that can take on one
        of two values; a bit, particularly one that is used to
        indicate one of two outcomes or is used to control which of
        two things is to be done.  "This flag controls whether to
        clear the screen before printing the message."  "The program
        status word contains several flag bits."  See also {hidden
        flag}, {mode bit}.

        2. {command line option}.

        (1998-05-02)

flag day

        <jargon> A software change that is neither forward- nor
        backward-compatible, and which is costly to make and costly to
        reverse.  E.g. "Can we install that without causing a flag day
        for all users?"

        This term has nothing to do with the use of the word {flag} to
        mean a variable that has two values.  It came into use when a
        massive change was made to the {Multics} {time-sharing} system
        to convert from the old {ASCII} code to the new one; this was
        scheduled for Flag Day (a US holiday), June 14, 1966.

        See also {backward combatability}, {lock-in}.

        (1998-01-15)

FLAIR

        <language> An early system on the {IBM 650}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-03-17)

flaky

        (Or "flakey") Subject to frequent {lossage}.  This use is of
        course related to the common slang use of the word to describe
        a person as eccentric, crazy, or just unreliable.  A system
        that is flaky is working, sort of - enough that you are
        tempted to try to use it - but fails frequently enough that
        the odds in favour of finishing what you start are low.
        Commonwealth hackish prefers {dodgy}.

        (1996-01-05)

flamage

        {flame}

flame

        <messaging> 1. An {electronic mail} or {Usenet} news message
        intended to insult, provoke or rebuke, or the act of sending
        such a message.  Sometimes a flame will be delimited by marks
        such as "flame on...flame off".

        2. To speak incessantly and/or rabidly on some relatively
        uninteresting subject or with a patently ridiculous attitude
        or with hostility towards a particular person or group of
        people.

        {Usenetter} Marc Ramsey, who was at {WPI} from 1972 to 1976,
        adds: "I am 99% certain that the use of "flame" originated at
        WPI.  Those who made a nuisance of themselves insisting that
        they needed to use a {TTY} for "real work" came to be known as
        "flaming asshole lusers".  Other particularly annoying people
        became "flaming asshole ravers", which shortened to "flaming
        ravers", and ultimately "flamers".  I remember someone picking
        up on the Human Torch pun, but I don't think "flame on/off"
        was ever much used at WPI."  See also {asbestos}.

        The term may have been independently invented at several
        different places; it is also reported that "flaming" was in
        use to mean something like "interminably drawn-out
        semi-serious discussions" (late-night bull sessions) at
        Carleton College during 1968-1971.

        It is possible that the hackish sense of "flame" is much older
        than that.  The poet Chaucer was also what passed for a wizard
        hacker in his time; he wrote a treatise on the astrolabe, the
        most advanced computing device of the day.  In Chaucer's
        "Troilus and Cressida", Cressida laments her inability to
        grasp the proof of a particular mathematical theorem; her
        uncle Pandarus then observes that it's called "the fleminge of
        wrecches."  This phrase seems to have been intended in context
        as "that which puts the wretches to flight" but was probably
        just as ambiguous in Middle English as "the flaming of
        wretches" would be today.  One suspects that Chaucer would
        feel right at home on {Usenet}.

        "Flaming" is the act itself; "flamage" /flay'm*j/ the content;
        a "{flame}" is a single flaming message.

        (1998-05-27)

flame bait

        <messaging> A {Usenet} posting or other message intended to
        trigger a {flame war}, or one that invites {flames} in reply.

        (1998-05-27)

flame off

        {flame on}

flame on

        <messaging, jargon> To begin or continue to {flame}.  The
        punning reference to Marvel Comics's Human Torch is no longer
        widely recognised.

        The phrase "flame on" may actually precede the flame, in which
        case "flame off" will follow it.

        See {rave}, {burble}.

        (1996-10-29)

flamer

        <jargon, person> (Or "pain in the net") One who habitually
        {flames}.  Said especially of obnoxious {Usenet}
        personalities.

        (1996-08-26)

flame war

        <messaging, jargon> An acrimonious dispute conducted on a
        public electronic forum such as {Usenet}.  See {flame}.

        (1998-05-27)

flaming

        {flame}

FLAP

        A {symbolic mathematics} package for {IBM 360}.

        ["FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971)
        US Naval Weapons Lab].

        [Sammet 1969, p. 506].

        (1994-10-17)

flap

        1. <storage, jargon> To unload a {DECtape} (so it goes flap,
        flap, flap).  Old-time {hackers} at {MIT} tell of the days
        when the disk was device 0 and {microtapes} were 1, 2,
        etc. and attempting to flap device 0 would instead start a
        motor banging inside a cabinet near the disk.

        The term is used, by extension, for unloading any magnetic
        tape.  See also {macrotape}.  Modern {cartridge tapes} no
        longer actually flap, but the usage has remained.

        The term could well be re-applied to {DEC}'s {TK50} cartridge
        tape drive, a spectacularly misengineered contraption which
        makes a loud flapping sound, almost like an old reel-type
        lawnmower, in one of its many tape-eating failure modes.

        2. <networking> See {flapping router}.

        (1997-06-17)

flapping router

        <networking> A {router} that transmits routing updates
        alternately advertising a destination network first via one
        route, then via a different route.

        Flapping routers are identified on more advanced {protocol
        analysers} such as the Network General (TM) Sniffer.

        (1999-08-24)

flarp

        /flarp/ [Rutgers University] Yet another {metasyntactic
        variable} (see {foo}).  Among those who use it, it is
        associated with a legend that any program not containing the
        word "flarp" somewhere will not work.  The legend is
        discreetly silent on the reliability of programs which *do*
        contain the magic word.

Flash

        <file format, World-Wide Web> (Or "Shockwave Flash") A file
        format for delivering {interactive} {vector graphics} and
        animation on the {World-Wide Web}, developed by {Macromedia}.

        {Home (http://www.macromedia.com/software/flash/)}.

        (1998-07-07)

flash

        1. <chat> A program which allows one to flood another {Unix}
        user's {terminal} with {garbage}, through exploiting a common
        security hole in the victim's {host}'s {talk} {daemon}.  Users
        with "messages off" (mesg n) and users on systems running
        fixed talk daemons, or not running talk daemons at all, are
        immune.

        (1996-09-08)

        2. See {Flash Erasable Programmable Read Only Memory}.

        (1997-02-02)

Flash EPROM

        {Flash Erasable Programmable Read Only Memory}

Flash Erasable Programmable Read Only Memory

        <storage> (FEPROM, "flash memory") A kind of {non-volatile
        storage} device similar to {EEPROM}, but where erasing can
        only be done in blocks or the entire chip.

        In 1995 this relatively new technology started to replace
        {EPROM}s because reprogramming could be done with the chip
        installed.  At that time FEPROMs could be rewritten about 1000
        times.

        Like {EAPROM} and ferro-magnetic material, FEPROMs rely on {FN
        tunnelling}.  Some flash memory supports block erase.

        (1995-04-22)

flash memory

        {Flash Erasable Programmable Read Only Memory}

Flash ROM

        {Flash Erasable Programmable Read Only Memory}

flat

        1. Lacking any complex internal structure.  "That {bitty box}
        has only a flat file system, not a hierarchical one."  The verb
        form is {flatten}.  Usually used pejoratively (at least with
        respect to file systems).

        2. Said of a memory architecture like that of the {VAX} or
        {Motorola} {680x0} that is one big linear address space
        (typically with each possible value of a processor register
        corresponding to a unique address).  This is a {Good Thing}.
        The opposite is a "{segmented}" architecture like that of the
        {Intel 80x86} in which addresses are composed from a
        base-register/offset pair.  Segmented designs are generally
        considered cretinous.

        3. A flat {domain} is one where all elements except {bottom}
        are incomparable (equally well defined).  E.g. the integers.

flat address space

        <architecture> The memory architecture in which any memory
        location can be selected from a single contiguous block by a
        single integer offset.

        Almost all popular {processors} have a flat address space, but
        the {Intel x86} family has a {segmented address space}.  A
        flat address space greatly simplifies programming because of
        the simple correspondence between addresses (pointers) and
        integers.

        (1996-09-10)

flat ASCII

        <text> (Or "plain ASCII") Said of a text file that contains
        only 7-bit {ASCII} characters and uses only ASCII-standard
        {control characters} (that is, has no embedded codes specific
        to a particular text formatter {markup} language, or output
        device, and no {meta}-characters).

        Compare {flat file}.

        (1996-01-26)

flat file

        <operating system, storage> A single file containing {flat
        ASCII} representing or encoding some structure, e.g. of a
        {database}, tree, or network.  Flat files can be processed
        with general purpose tools (e.g. {awk} or {Perl}) and {text
        editors} but are often less efficient than some kind of
        {binary file} if they must be {parsed} repeatedly by a
        program.  Flat files are more portable between different
        {operating systems} and {application programs} than binary
        files, and are more easily transmitted in {electronic mail}.

        See also {flatten}, {sharchive}.

        (1996-01-26)

flatten

        To remove structural information, especially to filter
        something with an implicit tree structure into a simple
        sequence of leaves; also tends to imply mapping to
        {flat ASCII}.  "This code flattens an expression with
        parentheses into an equivalent {canonical} form."

flat thunk

        <programming> A software mechanism that allows a {Win32}
        application to load and call a 16-bit {DLL}, or a 16-bit
        application to load and call a Win32 DLL.

        See also {generic thunk}, {universal thunk}.

        (1999-04-05)

flavor

        <spelling> US spelling of "{flavour}".

        (1997-03-18)

flavorful

        {flavour}

Flavors

        {Lisp} with {object-oriented} features by D. Weinreb and
        D.A. Moon <moon@cambridge.apple.com>, 1980.

        ["Object-Oriented Programming with Flavors", D.A. Moon,
        SIGPLAN Notices 21(11):1-8 (OOPSLA '86) (Nov 1986)].

        (1994-12-01)

flavour

        <jargon> (US: flavor) 1. Variety, type, kind.  "DDT commands
        come in two flavors."  "These lights come in two flavors, big
        red ones and small green ones."  See {vanilla}.

        2. The attribute that causes something to be {flavourful}.
        Usually used in the phrase "yields additional flavour".  "This
        convention yields additional flavor by allowing one to print
        text either right-side-up or upside-down."  See {vanilla}.

        This usage was certainly reinforced by the terminology of
        quantum chromodynamics, in which quarks (the constituents of,
        e.g. protons) come in six flavors (up, down, strange, charm,
        top, bottom) and three colours (red, blue, green), however,
        hackish use of "flavor" at {MIT} predated QCD.

        3. The term for "{class}" (in the {object-oriented} sense) in
        the {LISP Machine} {Flavors} system.  Though the Flavors
        design has been superseded (notably by the {Common LISP}
        {CLOS} facility), the term "flavor" is still used as a general
        synonym for "class" by some {Lisp} hackers.

        (1994-11-01)

Fleng

        A parallel logic language.

        ["Massively Parallel Implementation of Flat GHC on the
        Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen
        Comp Sys, 1988, pp.1031-1040].

FLEX

        <language> 1. Faster LEX.  A reimplementation of the {Lex}
        {scanner} generator by Vern Paxson <vern@ee.lbl.gov>.

        {Flex++} produces {C++} and {aflex} produces {Ada}.

        FTP flex-2.3.8.tar.Z from a {GNU archive site} or
        {(ftp://ftp.ee.lbl.gov/pub/flex-2.4.3.tar.Z)}.

        ["The FLEX Scanner Generator", Vern Paxson <vern@ee.lbl.gov>,
        Systems Engineering, LBL, CA].

        2. A {real-time} language for dynamic environments.

        ["FLEX: Towards Flexible Real-Time Programs", K. Lin et al,
        Computer Langs 16(1):65-79, Jan 1991].

        3. An early {object-oriented} language developed for the
        {FLEX} machine by {Alan Kay} in about 1967.  The FLEX language
        was a simplification of {Simula} and a predecessor of
        {Smalltalk}.

        (1995-03-29)

Flex

        <software, hardware> A system developed by Ian Currie (Iain?)
        at the (then) {Royal Signals and Radar Establishment} at
        Malvern in the late 1970s.  The hardware was custom and
        {microprogrammable}, with an {operating system}, (modular)
        {compiler}, editor, {garbage collector} and {filing system}
        all written in {Algol-68}.  Flex was also re-implemented on
        the {Perq}(?).

        [I. F. Currie and others, "Flex Firmware", Technical Report,
        RSRE, Number 81009, 1981].

        [I. F. Currie, "In Praise of Procedures", RSRE, 1982].

        (1997-11-17)

Flex++

        {GNU}'s {Flex} {scanner generator} retargeted to {C++} by
        Alain Coetmeur <coetmeur@icdc.fr>.  Version 3.0.

        {(ftp://iecc.com/pub/file/flex++.tar.gz)}.
        {(ftp://iecc.com/pub/file/misc++.tar.gz)}.
        {(ftp://ftp.th-darmstadt.de/pub/programming/languages/C++/tools/flex++-
3.0.tar.gz)}.

        (1993-07-08)

Flex 2

        A preprocessor designed to make {FORTRAN} look more like
        {Pascal}.  (About 1980).  DECUS?

flib

        /flib/ ({WPI}) A meta-number, said to be an integer between 3
        and 4.

        See {grix}, {N}.

        (1995-01-31)

FLIC

        Functional Language Intermediate Code.

        An {intermediate language} used in the {Chalmers} {LML}
        compiler.

        ["FLIC - A Functional Language Intermediate Code", S. Peyton
        Jones <simonpj@dcs.gla.ac.uk> et al, RR 148, U Warwick, Sep
        1989].

        (1995-01-31)

FLIP

        1. An early {assembly language} on the {G-15}.

        [Listed in CACM 2(5):16 (May 1959)].

        2. ["FLIP User's Manual", G. Kahn, TR 5, INRIA 1981].

        3. Formal LIst Processor.

        An early language for {pattern-matching} on {Lisp} structures,
        similar to {CONVERT}.

        ["FLIP, A Format List Processor", W. Teitelman, Memo
        MAC-M-263, MIT 1966].

        (1995-01-31)

flip-flop

        <hardware> A digital logic circuit that can be in one of two
        states which it switches (or "{toggles}") between under
        control of its inputs.  It can thus be considered as a one bit
        memory.  Three types of flip-flop are common: the {SR
        flip-flop}, the {JK flip-flop} and the {D-type flip-flop} (or
        {latch}).

        Early literature refers to the "Eccles-Jordan circuit" and the
        "Eccles-Jordan binary counter", using two {vacuum tubes} as
        the active (amplifying) elements for each {bit} of information
        storage.  Later implementations using {bipolar transistors}
        could operate at up to 20 million state transitions per second
        as early as 1963.

        (1995-11-11)

flippy

        <storage> /flip'ee/ A single-sided {floppy disk} altered for
        double-sided use by addition of a second write-notch, so
        called because it must be flipped over for the second side to
        be accessible.  No longer common.

        (1995-09-25)

FLIP-SPUR

        Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16
        (May 1959).

floating-point

        <programming> A number representation consisting of a
        {mantissa}, M, an {exponent}, E, and an (assumed) {radix} (or
        "base") .  The number represented is M*R^E where R is the
        radix - usually ten but sometimes 2.

        Many different representations are used for the mantissa and
        exponent themselves.  The {IEEE} specify a {standard}
        representation which is used by many hardware floating-point
        systems.

        See also {floating-point accelerator}, {floating-point unit}.

        {Normalisation} is the process of converting a floating point
        number into {canonical} form where any number other than zero
        has a mantissa whose first digit is non-zero.

        Opposite: {fixed-point}.

        (1995-03-21)

floating-point accelerator

        (FPA) Additional hardware to perform functions on
        floating-point numbers such as addition, multiplication,
        logarithms, exponentials, trigonometric functions and various
        kinds of rounding and error detection.  A floating-point
        accelerator often functions as a {co-processor} to the {CPU}.

        The term "floating-point accelerator" suggests a physically
        larger system, often an extra circuit board, whereas a
        "floating-point unit" is probably a single chip or even part
        of a chip.

        (1994-12-01)

Floating-Point SPECbaserate

        {SPECrate_base_fp92}

Floating-Point SPECbaseratio

        {SPECbase_fp92}

Floating-Point SPECrate

        {SPECrate_fp92}

Floating-Point SPECratio

        {SPECfp92}

floating point underflow

        {underflow}

Floating-Point Unit

        (FPU) A {floating-point accelerator}, usually in a single
        {integrated circuit}, possible on the same IC as the {central
        processing unit}.

        (1994-10-27)

floating underflow

        {underflow}

F-Logic

        An {object-oriented} language and {deductive database} system.

        ["F-Logic: A Higher-Order Language for Reasoning about
        Objects, Inheritance and Scheme", ACM SIGMOD May 1989,
        pp. 134-146].

        (1994-10-20)
flood

        <chat> On a real-time network (whether at the level of
        {TCP/IP}, or at the level of, say, {IRC}), to send a huge
        amount of data to another user (or a group of users, in a
        channel) in an attempt to annoy him, lock his terminal, or to
        overflow his network buffer and thus lose his network
        connection.

        The basic principles of flooding are that you should have
        better network {bandwidth} than the person you're trying to
        flood, and that what you do to flood them (e.g., generate ping
        requests) should be *less* resource-expensive for your machine
        to produce than for the victim's machine to deal with.  There
        is also the corrolary that you should avoid being caught.

        Failure to follow these principles regularly produces
        hilarious results, e.g., an IRC user flooding himself off the
        network while his intended victim is unharmed, the attacker's
        flood attempt being detected, and him being banned from the
        network in semi-perpetuity.

        See also {pingflood}, {clonebot} and {botwar}.

        (1997-04-07)

FLOP

        1. An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-14)

        2. Erroneous singular of {FLOPS}.

Floppy

        <programming, tool> A {Fortran} coding convention checker.
        A later version can generate {HTML}.

        See also {Flow}.

        ffccc posted to comp.sources.misc volume 12.

        (1996-08-23)

floppy

        {floppy disk}

floppy disk

        <hardware, storage> (Or "floppy", "diskette") A small,
        portable plastic disk coated in a magnetisable substance used
        for storing computer data, readable by a computer with a
        floppy disk drive.  The physical size of disks has shrunk from
        the early 8 inch, to 5 1/4 inch ("minifloppy") to 3 1/2 inch
        ("microfloppy") while the data capacity has risen.

        These disks are known as "floppy" disks (or diskettes) because
        the disk is flexible and the read/write head is in physical
        contact with the surface of the disk in contrast to "{hard
        disks}" (or winchesters) which are rigid and rely on a small
        fixed gap between the disk surface and the heads.  Floppies
        may be either single-sided or double-sided.

        3.5 inch floppies are less floppy than the larger disks
        because they come in a stiff plastic "envelope" or case, hence
        the alternative names "stiffy" or "crunchy" sometimes used to
        distinguish them from the floppier kind.

        The following formats are used on {IBM PC}s and elsewhere:

         Capacity  Density  Width
          360K     double   5.25"
          720K     double   3.5"
          1.2M     high     5.25"
         1.44M     high     3.5"

        Double denisty and high density are usually abbreviated DD and
        HD.  HD 3.5 inch disks have a second hole in the envelope and
        an overlapping "HD" logo.

        (1996-08-23)

floppy disk drive

        {disk drive}

floppy drive

        {disk drive}

FLOPS

        {Floating-point} operations per second.

Flops

        <benchmark> The {MFLOPS} {benchmark}.

floptical

        <hardware, storage> (From "floppy disk" and "optical") A
        {floppy disk} which uses an optical tracking mechanism to
        improve the positioning accuracy of an ordinary magnetic head,
        thereby allowing more tracks and greater density.

        {Storage media FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/arch-storage/part1/
faq.html)}.

        (1995-03-15)

Flow

        <tool> A companion utility to {Floppy} by Julian James Bunn
        <julian@vxcrna.cxern.ch>.  Flow allows the user to produce
        various reports on the structure of {Fortran 77} code, such as
        {flow diagram}s and common block tables.  It runs under {VMS},
        {Unix}, {CMS}.

        Posted to comp.sources.misc volume 31.

        (1995-03-14)

flow chart

        <programming> An archaic form of visual control-flow
        specification employing arrows and "speech balloons" of
        various shapes.

        Hackers never use flow charts, consider them extremely silly,
        and associate them with {COBOL} programmers, {card walloper}s,
        and other lower forms of life.  This attitude follows from the
        observations that flow charts (at least from a hacker's point
        of view) are no easier to read than code, are less precise,
        and tend to fall out of sync with the code (so that they
        either obfuscate it rather than explaining it, or require
        extra maintenance effort that doesn't improve the code).

        See also {Program Design Language}.

        (1994-12-01)

flow control

        <communications, protocol> The collection of techniques used
        in serial communications to stop the sender sending data until
        the receiver can accept it.  This may be either {software flow
        control} or {hardware flow control}.  The receiver typically
        has a fixed size {buffer} into which received data is written
        as soon as it is received.  When the amount of buffered data
        exceeds a "high water mark", the receiver will signal to the
        transmitter to stop transmitting until the process reading the
        data has read sufficient data from the buffer that it has
        reached its "low water mark", at which point the receiver
        signals to the transmitter to resume transmission.

        (1995-03-22)

flower key

        The {Macintosh} {feature key}.

        (1994-12-01)

FLOW-MATIC or FLOWMATIC

        (Originally B-0) Possibly the first English-like {DP}
        language.  Developed at Remington Rand in 1958 for the
        {UNIVAC} I.

        [Sammet 1969, pp. 316-324].

        (1994-10-24)

flow of control

        {control flow}

FLPL

        FORTRAN List Processing Language.  A package of {FORTRAN}
        subroutines for handling lists by H. Gelernter et al, ca 1960.

        [Sammet 1969, p. 388].

        (1994-10-24)

FLUB

        <language> The {abstract machine} for {bootstrapping}
        {STAGE2}.

        [Mentioned in Machine Oriented Higher Level Languages, W. van
        der Poel, N-H 1974, p. 271].

        (1995-03-13)

flush

        1. To delete something, usually superfluous, or to abort an
        operation.

        "Flush" was standard {ITS} terminology for aborting an output
        operation.  One spoke of the text that would have been
        printed, but was not, as having been flushed.  It is
        speculated that this term arose from a vivid image of flushing
        unwanted characters by hosing down the internal output buffer,
        washing the characters away before they could be printed.

        2. To force temporarily buffered data to be written to more
        permanent memory.  E.g. flushing buffered disk I/O to disk, as
        with {C}'s {standard I/O} library "fflush(3)" call.  This
        sense was in use among {BLISS} programmers at {DEC} and on
        {Honeywell} and {IBM} machines as far back as 1965.  Another
        example of this usage is flushing a {cache} on a {context
        switch} where modified data stored in the cace which belongs
        to one processes must be written out to main memory so that
        the cache can be used by another process.

Flynn's taxonomy

        A classification of computer architectures based on the number
        of streams of instructions and data:

        {Single instruction/single data} stream (SISD) - a sequential
        computer.

        Multiple instruction/single data stream (MISD) - unusual.

        {Single instruction/multiple data} streams (SIMD) - e.g. an
        {array processor}.

        {Multiple instruction/multiple data} streams (MIMD) - multiple
        autonomous processors simultaneously executing different
        instructions on different data.

        ["A Survey of Parallel Computer Architectures", Duncan, Ralph,
        IEEE Computer. February 1990, pp. 5-16].

        (1994-11-08)

        [Flynn's original paper?]

fly page

        /fli:'payj/ {banner}.

Flyspeck 3

        Standard name for any {font} that is so tiny as to be
        unreadable (by analogy with names like "Helvetica 10" for
        10-point Helvetica).  Legal boilerplate is usually printed in
        Flyspeck 3.

        (1994-11-08)

flytrap

        See {firewall machine}.

FM

        Not "Frequency Modulation" but "Fucking Manual", a
        back-formation from {RTFM}.  Used to refer to the manual
        itself.

        (1994-11-08)

fm

        <networking> The {country code} for the Federated States of
        Micronesia.

        (1999-01-27)

        Heavily used for {vanity domains} by FM radio stations.

        (1999-01-27)

FMPL

        (FMPL of Accardi) Frobozz Magic Programming Language.  A
        {prototype-based}, {object-oriented}, {event-driven} (mainly
        I/O events) interpreted language with {functional} features.
        Developed at the {Experimental Computing Facility},
        {University of California, Berkeley}.

        There is an {interpreter} by Jon Blow
        <blojo@xcf.berkeley.edu>.  Version 1.

        {(ftp://xcf.berkeley.edu/src/local/fmpl)}

        Mailing list: <fmpl@xcf.berkeley.edu>.

        E-mail: Jack Hsu <tcl-archive@barkley.berkeley.edu>.

        (1992-06-02)

FMQ

        A {BNF}-based {paser generator} with an error corrector
        generator, by Jon Mauney.

        {(ftp://csczar.ncsu.edu/)}

        (1990-03-31)

FMS

        {Flexible Manufacturing System} (factory automation).

FMV

        {full-motion video}

FNAL

        Fermi National Accelerator Laboratory (Illinois, USA).

FNC

        {Federal Networking Council}

fnord

        1. <convention> A word used in {electronic mail} and {news}
        messages to tag utterances as surrealist mind-play or humour,
        especially in connection with {Discordianism} and elaborate
        conspiracy theories.  "I heard that David Koresh is sharing an
        apartment in Argentina with Hitler. (Fnord.)"  "Where can I
        fnord get the Principia Discordia from?"

        2. <programming> A {metasyntactic variable}, commonly used by
        hackers with ties to {Discordianism} or the {Church of the
        SubGenius}.

        The word "fnord" was invented in the "Illuminatus!" trilogy by
        Robert Shea and Robert Anton Wilson.

        (1995-02-28)

FN tunnelling

        {Fowler-Nordheim tunnelling}

fo

        <networking> The {country code} for the Faroe Islands.

        (1999-01-27)

FOAD

        <chat> fuck off and die.

        (1998-01-18)

FOAF

        [{Usenet}] Friend Of A Friend.  The source of an unverified,
        possibly untrue story.  This term was not originated by
        hackers (it is used in Jan Brunvand's books on urban
        folklore), but is much better recognised on {Usenet} and
        elsewhere than in mainstream English.

FOCAL

        1. FOrmula CALculator.

        An interactive system written by Rick Merrill of {DEC} in 1969
        for {PDP-5} and {PDP-8}.  It was a descendant of {AID}/{JOSS}.

        Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for {PDP-11} under
        {RT-11}).

        (1994-12-21)

        2. Forty-One CAlculator Language.

        The programming language of the HP-41 calculator line.

        (1994-12-21)

FOCL

        An {expert system shell} and {backward chaining} rule
        {interpreter} for the {Macintosh}.

        {(ftp://ics.uci.edu/pub/machine-learning-programs/KR-FOCL-ES.cpt.hqx)}

        E-mail: <pazzani@ics.uci.edu>.

        (1994-12-21)

FOCUS

        <database, language> A hierarchical {database} language from
        {Information Builders, Inc.}

        (1994-12-21)

focus group

        <product> An event where market researchers meet (potential)
        users of a product to try to plan how to improve it.

        (1999-02-24)

FOD

        /fod/ [Abbreviation for "Finger of Death", originally a
        spell-name from fantasy gaming] To terminate with extreme
        prejudice and with no regard for other people.  From {MUD}s
        where the wizard command "FOD <player>" results in the
        immediate and total death of <player>, usually as punishment
        for obnoxious behaviour.  This usage migrated to other
        circumstances, such as "I'm going to fod the process that is
        burning all the cycles."  Compare {gun}.

        In aviation, FOD means Foreign Object Damage, e.g. what happens
        when a jet engine sucks up a rock on the runway or a bird in
        flight.  Finger of Death is a distressingly apt description of
        what this generally does to the engine.

FOIL

        File Oriented Interpretive Language.  CAI language.

        ["FOIL - A File Oriented Interpretive Language",
        J.C. Hesselbart, Proc ACM 23rd National Conf (1968)].

FoIP

        {Fax over IP}

FOIRL

        {Fiber Optic InterRepeater Link}

fold case

        {case sensitivity}

folder

        <operating system> A {directory} in the sense of a collection
        of computer {files}.  The term is more common in systems such
        as the {Macintosh} or {Windows 95} which have a {graphical
        user interface} and provide a graphical {file browser} in
        which directories are traditionally depicted as folders (like
        small briefcases).

        (1997-03-20)

FOLDOC

        {Free On-line Dictionary of Computing}

followup

        On {Usenet}, a {posting} generated in response to another
        posting (as opposed to a {reply}, which goes by e-mail rather
        than being broadcast).  Followups include the ID of the
        {parent message} in their headers; smart news-readers can use
        this information to present {Usenet} news in "conversation"
        sequence rather than order-of-arrival.  See {thread}.

font

        <text> A set of {images} representing the {characters} from
        some particular {character set} in a particular size and
        {typeface}.  The image of each character may be encoded either
        as a {bitmap} (in a {bitmap font}) or by a higher-level
        description in terms of lines and areas (an {outline font}).

        There are several different computer representations for
        fonts, the most widely known are {Adobe Systems, Inc.}'s
        {PostScript} font definitions and {Apple}'s {TrueType}.  Most
        {window systems} support displaying different fonts on the
        screen and printing them.

        [Other types of font?]

        (1998-05-30)

fontology

        ({XEROX PARC}) The body of knowledge dealing with the
        construction and use of new {font}s (e.g. for window systems
        and typesetting software).  It has been said that fontology
        recapitulates file-ogeny.

        Unfortunately, this reference to the embryological dictum
        that "Ontogeny recapitulates phylogeny" is not merely a joke.
        On the Macintosh, for example, System 7 has to go through
        contortions to compensate for an earlier design error that
        created a whole different set of abstractions for fonts
        parallel to "files" and "folders" - ESR

        (1994-12-01)

foo

        <jargon> /foo/ A sample name for absolutely anything,
        especially programs and files (especially {scratch files}).
        First on the standard list of {metasyntactic variables} used
        in {syntax} examples.  See also {bar}, {baz}, {qux}, {quux},
        {corge}, {grault}, {garply}, {waldo}, {fred}, {plugh},
        {xyzzy}, {thud}.

        The etymology of "foo" is obscure.  When used in connection
        with "bar" it is generally traced to the WWII-era Army slang
        acronym {FUBAR}, later bowdlerised to {foobar}.

        However, the use of the word "foo" itself has more complicated
        antecedents, including a long history in comic strips and
        cartoons.

        "FOO" often appeared in the "Smokey Stover" comic strip by
        Bill Holman.  This surrealist strip about a fireman appeared
        in various American comics including "Everybody's" between
        about 1930 and 1952.  FOO was often included on licence plates
        of cars and in nonsense sayings in the background of some
        frames such as "He who foos last foos best" or "Many smoke but
        foo men chew".

        Allegedly, "FOO" and "BAR" also occurred in Walt Kelly's
        "Pogo" strips.  In the 1938 cartoon "The Daffy Doc", a very
        early version of Daffy Duck holds up a sign saying "SILENCE IS
        FOO!".  Oddly, this seems to refer to some approving or
        positive affirmative use of foo.  It has been suggested that
        this might be related to the Chinese word "fu" (sometimes
        transliterated "foo"), which can mean "happiness" when spoken
        with the proper tone (the lion-dog guardians flanking the
        steps of many Chinese restaurants are properly called "fu
        dogs").

        Earlier versions of this entry suggested the possibility that
        hacker usage actually sprang from "FOO, Lampoons and Parody",
        the title of a comic book first issued in September 1958, a
        joint project of Charles and Robert Crumb.  Though Robert
        Crumb (then in his mid-teens) later became one of the most
        important and influential artists in underground comics, this
        venture was hardly a success; indeed, the brothers later
        burned most of the existing copies in disgust.  The title FOO
        was featured in large letters on the front cover.  However,
        very few copies of this comic actually circulated, and
        students of Crumb's "oeuvre" have established that this title
        was a reference to the earlier Smokey Stover comics.

        An old-time member reports that in the 1959 "Dictionary of the
        TMRC Language", compiled at {TMRC} there was an entry that
        went something like this:

        FOO: The first syllable of the sacred chant phrase "FOO MANE
        PADME HUM."  Our first obligation is to keep the foo counters
        turning.

        For more about the legendary foo counters, see {TMRC}.  Almost
        the entire staff of what became the {MIT} {AI LAB} was
        involved with TMRC, and probably picked the word up there.

        Another correspondant cites the nautical construction
        "foo-foo" (or "poo-poo"), used to refer to something
        effeminate or some technical thing whose name has been
        forgotten, e.g. "foo-foo box", "foo-foo valve".  This was
        common on ships by the early nineteenth century.

        Very probably, hackish "foo" had no single origin and derives
        through all these channels from Yiddish "feh" and/or English
        "fooey".

        (1998-04-16)

foobar

        Another common {metasyntactic variable}; see {foo}.  Hackers
        do *not* generally use this to mean {FUBAR} in either the
        slang or jargon sense.

foogol

        A tiny {ALGOL}-like language by Per Lindberg, based on the
        {VALGOL} I compiler, G.A. Edgar, DDJ May 1985.  Runs on
        {vaxen}.  Posted to comp.sources.Unix archive volume 8.

        {(ftp://ftp.wustl.edu/systems/amiga/fish/fish/ff066)}

FOOL

        Fool's Lisp.  A small {Scheme} {interpreter}.

        {(ftp://scam.berkeley.edu/src/local/fools.tar.Z)}

        (1994-10-04)

fool file

        [{Usenet}] A notional repository of all the most dramatically
        and abysmally stupid utterances ever.  An entire subgenre of
        {sig block}s consists of the header "From the fool file:"
        followed by some quote the poster wishes to represent as an
        immortal gem of dimwittery; for this usage to be really
        effective, the quote has to be so obviously wrong as to be
        laughable.  More than one {Usenet}ter has achieved an unwanted
        notoriety by being quoted in this way.

Fools' Lisp

        A small {Scheme} {interpreter} by Jonathan Lee
        <jonathan@scam.berkeley.edu>.  Version 1.3.2 is R4RS
        conformant.  It runs on {Sun-3}, {Sun-4}, {Decstation}, {VAX}
        ({Ultrix}), {Sequent}, {Apollo}.

        {(ftp://scam.berkeley.edu/src/local/fools.tar.Z)}

        (1991-10-31)

Foonly

        1. The {PDP-10} successor that was to have been built by the
        Super Foonly project at the {Stanford Artificial Intelligence
        Laboratory} along with a new operating system.  The intention
        was to leapfrog from the old DEC {time-sharing} system SAIL
        was then running to a new generation, bypassing TENEX which at
        that time was the {ARPANET} {standard}.  {ARPA} funding for
        both the Super Foonly and the new operating system was cut in
        1974.  Most of the design team went to DEC and contributed
        greatly to the design of the PDP-10 model KL10.

        2. The name of the company formed by Dave Poole, one of the
        principal Super Foonly designers, and one of hackerdom's more
        colourful personalities.  Many people remember the parrot
        which sat on Poole's shoulder and was a regular companion.

        3. Any of the machines built by Poole's company.  The first
        was the F-1 (a.k.a.  Super Foonly), which was the
        computational engine used to create the graphics in the movie
        "TRON".  The F-1 was the fastest PDP-10 ever built, but only
        one was ever made.  The effort drained Foonly of its financial
        resources, and the company turned towards building smaller,
        slower, and much less expensive machines.  Unfortunately,
        these ran not the popular {TOPS-20} but a TENEX variant called
        Foonex; this seriously limited their market.  Also, the
        machines shipped were actually wire-wrapped engineering
        prototypes requiring individual attention from more than
        usually competent site personnel, and thus had significant
        reliability problems.  Poole's legendary temper and
        unwillingness to suffer fools gladly did not help matters.  By
        the time of the Jupiter project cancellation in 1983, Foonly's
        proposal to build another F-1 was eclipsed by the {Mars}, and
        the company never quite recovered.  See the {Mars} entry for
        the continuation and moral of this story.

FOOP

        OBJ2 plus object-orientation.  "Extensions and Foundations for
        Object-Oriented Programming", J. Goguen et al, in Research
        Directions in Object-Oriented Programming, B. Shriver et al
        eds, MIT Press 1987.

footprint

        1. <jargon, hardware> The floor or desk area taken up by a
        piece of hardware.

        2. <jargon, storage> The amount of {disk} or {RAM} taken up by
        a program or file.

        3. ({IBM}) The {audit trail} left by a crashed program (often
        "footprints").

        See also {toeprint}.

        (1995-04-25)

for

        {for loop}

fora

        {forum}

FORC

        Early system on IBM 704.  Listed in CACM 2(5):16 (May 1959).

Force

        A {dBASE} dialect for {MS-DOS}.

ForceOne

        A programming language by Andrew K. Wright.

        ["Polymorphism in the Compiled Language ForceOne",
        G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on
        System Sciences, 1987, pp.284-292].

        ["Design of the Programming Language ForceOne", A.K. Wright,
        MS Thesis, U Waterloo 1987].

        (1994-10-24)

ForceTwo

        An unofficial successor to {ForceOne} by Andrew K. Wright.

foreground

        (Unix) On a {time-sharing} system, a task executing in
        foreground is one able to accept input from and return output
        to the user in contrast to one running in the {background}.
        Nowadays this term is primarily associated with {Unix}, but it
        appears first to have been used in this sense on {OS/360}.
        Normally, there is only one foreground task per terminal (or
        terminal window).  Having multiple processes simultaneously
        reading the keyboard is confusing.

        (1994-10-24)

foreign key

        <database> {Attributes} contained within a database {record}
        (or other collection of related data items) which uniquely
        identify another record, but not the one within which they are
        contained.  A foreign key is a reference from one record to
        another.

        (1997-04-28)

Foresight

        <graphics, tool> A software product from {Nu Thena} providing
        graphical modelling tools for high level system design and
        {simulation}.

        (1994-10-24)

for free

        Said of a capability of a programming language or hardware
        equipment that is available by its design without needing
        cleverness to implement: "In APL, we get the matrix operations
        for free."  "And owing to the way revisions are stored in this
        system, you get revision trees for free."  The term usually
        refers to a serendipitous feature of doing things a certain
        way (compare {big win}), but it may refer to an intentional
        but secondary feature.

        (1994-12-14)

fork

        <operating system> A {Unix} {system call} used by a {process}
        (the "parent") to make a copy (the "child") of itself.  The
        child process is identical to the parent except it has a
        different {process identifier} and a zero return value from
        the fork call.  It is assumed to have used no resources.

        A fork followed by an {exec} can be used to start a different
        process but this can be inefficient and some later Unix
        variants provide {vfork} as an alternative mechanism for this.

        See also {fork bomb}.

        (1996-12-08)

fork bomb

        <programming> A particular species of {wabbit} that can be
        written in one line of {C}:

                main() {for(;;)fork();}

        or {shell}:

                $0 & $0 &

        on any {Unix} system, or occasionally created by an egregious
        coding bug.  A fork bomb process "explodes" by {recursive}ly
        spawning copies of itself using the {Unix} {system call}
        "{fork}(2)".  Eventually it eats all the process table entries
        and effectively wedges the system.  Fortunately, fork bombs
        are relatively easy to spot and kill, so creating one
        deliberately seldom accomplishes more than to bring the just
        wrath of the {god}s down upon the perpetrator.

        See also {logic bomb}.

        (1994-12-14)

forked

        (Unix; probably after "fucked") Terminally slow, or dead.
        Originated when one system was slowed to a snail's pace by an
        inadvertent {fork bomb}.

        (1994-12-14)

for loop

        <programming> A {loop} construct found in many {imperative}
        programming languages which repeatedly executes some
        instructions while a condition is true.

        In {C}, the for loop is written in the form;

         for (INITIALISATION; CONDITION; AFTER)
           STATEMENT;

        where INITIALISATION is an expression that is evaluated once
        before the loop, CONDITION is evaluated before each iteration
        and the loop exits if it is false, AFTER is evaluated after
        each iteration, and STATEMENT is any statement including a
        {compound statement} within braces "{..}" that is executed if
        CONDITION is true.

        For example:

         int i;
         for (i = 0; i < 10; i++)
         {
           printf("Hello\n");
         }

        prints "Hello" 10 times.

        The for loop is an alternative way of writing a {while loop}
        that is convenient because the loop control logic is collected
        in a single place.  It is also closely related to the {repeat
        loop}.

        (1999-07-07)

FORM

        <mathematics, tool> A system written by Jos Vermaseren
        <t68@nikhefh.nikhef.nl> in 1989 for fast handling of very
        large-scale {symbolic mathematics} problems.  FORM is a
        descendant of {Schoonschip} and is available for many
        {personal computer}s and {workstation}s.

        {(ftp://acm.princeton.edu/)}, {(ftp://nikhefh.nikhef.nl/)}.

        Mailing list: <form@can.nl>.

        (1995-04-12)

FORMAC

        FORmula MAnipulation Compiler.  J. Sammet & Tobey, IBM Boston
        APD, 1962.  An extension of {FORTRAN} for {symbolic
        mathematics}.  Versions: PL/I-FORMAC and FORMAC73.

        ["Introduction to FORMAC", J.E. Sammet et al, IEEE Trans Elec
        Comp (Aug 1964)].

        [Sammet 1969, pp. 474-491].

FORMAL

        1. FORmula MAnipulation Language.

        An early {FORTRAN} extension for {symbolic mathematics}.

        ["FORMAL, A Formula Manipulation Language", C.K. Mesztenyi,
        Computer Note CN-1, CS Dept, U Maryland (Jan 1971)].

        2.  A data manipulation language for nonprogrammers from {IBM}
        {LASC}.

        ["FORMAL: A Forms-Oriented and Visual-Directed Application
        System", N.C. Shu, IEEE Computer 18(8):38-49 (1985)].

        (1994-12-06)

Formal Description Technique

        <specification, protocol> (FDT) A {formal method} for
        developing telecomunications services and {protocol}s.  FDTs
        range from abstract to implementation-oriented descriptions.
        All FDTs offer the means for producing unambiguous
        descriptions of {OSI} services and {protocol}s in a more
        precise and comprehensive way than {natural language}
        descriptions.  They provide a foundation for analysis and
        verification of a description.  The target of analysis and
        verification may vary from abstract properties to concrete
        properties.  {Natural language} descriptions remain an
        essential adjunct to formal description, enabling an
        unfarmiliar reader to gain rapid insight into the structre and
        function of services and protocols.

        Examples of FDTs are {LOTOS}, {Z}, {SDL} and {Estelle}.

        [ISO/IEC DTR10167: "Guidelines for the application of
        {Estelle}, {LOTOS} and {SDL}"].

        (1994-12-06)

formal methods

        <mathematics, specification> Mathematically based techniques
        for the {specification}, development and verification of
        software and hardware systems.

        {Referentially transparent} languages are amenable to symbolic
        manipulation allowing {program transformation} (e.g. changing
        a clear inefficient specification into an obscure but
        efficient program) and proof of correctness.

        {Oxford FM archive
        (http://www.comlab.ox.ac.uk/archive/formal-methods.html)}

        (1996-05-15)

Formal Object Role Modeling Language

        <language> (FORML) A {CASE} language?

        (1997-04-12)

formal review

        <project> A technical review conducted with the customer
        including the types of reviews called for in DOD-STD-2167A
        (Preliminary Design Review, Critical Design Review, etc.)

        (1996-05-15)

FORMAT-FORTRAN

        {FORTRAN Matrix Abstraction Technique FORTRAN}

Formatting Output Specification Instance

        <text, standard> (FOSI) An old {SGML} {DTD} {standard} for
        {document management} in the US military, to be replaced (soon
        after Oct 1996?) by the {ISO} standard {DSSSL}.

        (1996-10-07)

Formes

        <language, music> An {object-oriented} language for music
        composition and synthesis, written in {VLISP}.

        ["Formes: Composition and Scheduling of Processes", X. Rodet &
        P. Cointe, Computer Music J 8(3):32-50 (Fall 1984)].

        (1996-06-24)

form factor

        <hardware> A term, popular among {marketroids} in
        1998, denoting the shape of something designed.

        (1998-03-30)

form feed

        <character> (FF, Control-L, {ASCII} 12) The character used to
        start a new page on a printer.  This is done by "feeding" a
        new page (or "form") through the printer.

        (1996-06-24)

form function

        <jargon> The shape of something designed.  This term is
        currently (Feb 1998) in vogue among {marketroids}.

        (1998-02-11)

FORML

        1. <language> {Formal Object Role Modeling Language}.

        2. <event> {Forth Modification Lab}.

        (1997-04-12)

forms

        1. <programming> {fill-out form}.

        2. <library> (Xforms) A {GUI} component library for {X11}.

        (1998-03-24)

formula

        1. In logic, a sequence of symbols representing terms,
        {predicate}s, {connective}s and {quantifier}s which is either
        true or false.

        2. <language, music> FORTH Music Language.  An extension of
        {FORTH} with concurrent note-playing processes.  Runs on
        {Macintosh} and {Atari ST} with {MIDI} output.

        ["Formula: A Programming Language for Expressive Computer
        Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991)].

        3. Preprocessor language for the {Acorn Archimedes}, allowing
        inline high-level statements to be entered in an assembly
        program.  Written in {nawk}.

Formula ALGOL

        An {ALGOL} extension for {symbolic mathematics}, strings and
        lists, developed by A.J. Perlis and R. Iturriaga at {Carnegie}
        for the {CDC G-20} in 1962.

        ["An Extension of ALGOL for Manipulating Formulae",
        A.J. Perlis et al, CACM 7(2):127-130 (Feb 1964)].

        [Sammet 1969, p. 583].

        (1995-02-15)

Forsythe

        A descendent of {Algol 60}, intended to be as uniform and
        general as possible, while retaining the basic character of
        its progenitor.  Forsythe features {higher-order procedure}s
        and {intersection type}s.

        {(ftp://e.ergo.cs.cmu.edu/)}

        ["Preliminary Design of the Programming Language Forsythe",
        J.C. Reynolds, CMU-CS-88-159, 1988].

FORTH

        1. <language> An interactive extensible language using
        {postfix syntax} and a data stack, developed by Charles
        H. Moore in the 1960s.  FORTH is highly user-configurable and
        there are many different implementations, the following
        description is of a typical default configuration.

        Forth programs are structured as lists of "words" - FORTH's
        term which encompasses language keywords, primitives and
        user-defined {subroutines}.  Forth takes the idea of
        subroutines to an extreme - nearly everything is a subroutine.
        A word is any string of characters except the separator which
        defaults to space.  Numbers are treated specially.  Words are
        read one at a time from the input stream and either executed
        immediately ("interpretive execution") or compiled as part of
        the definition of a new word.

        The sequential nature of list execution and the implicit use
        of the data stack (numbers appearing in the lists are pushed
        to the stack as they are encountered) imply postfix syntax.
        Although postfix notation is initially difficult, experienced
        users find it simple and efficient.

        Words appearing in executable lists may be "{primitives}"
        (simple {assembly language} operations), names of previously
        compiled procedures or other special words.  A procedure
        definition is introduced by ":" and ended with ";" and is
        compiled as it is read.

        Most Forth dialects include the source language structures
        BEGIN-AGAIN, BEGIN-WHILE-REPEAT, BEGIN-UNTIL, DO-LOOP, and
        IF-ELSE-THEN, and others can be added by the user.  These are
        "compiling structures" which may only occur in a procedure
        definition.

        FORTH can include in-line {assembly language} between "CODE"
        and "ENDCODE" or similar constructs.  Forth primitives are
        written entirely in {assembly language}, secondaries contain a
        mixture.  In fact code in-lining is the basis of compilation
        in some implementations.

        Once assembled, primitives are used exactly like other words.
        A significant difference in behaviour can arise, however, from
        the fact that primitives end with a jump to "NEXT", the entry
        point of some code called the sequencer, whereas
        non-primitives end with the address of the "EXIT" primitive.
        The EXIT code includes the scheduler in some {multi-tasking}
        systems so a process can be {deschedule}d after executing a
        non-primitive, but not after a primitive.

        Forth implementations differ widely.  Implementation
        techniques include {threaded code}, dedicated Forth
        processors, {macros} at various levels, or interpreters
        written in another language such as {C}.  Some implementations
        provide {real-time} response, user-defined data structures,
        {multitasking}, {floating-point} arithmetic, and/or {virtual
        memory}.

        Some Forth systems support virtual memory without specific
        hardware support like {MMU}s.  However, Forth virtual memory
        is usually only a sort of extended data space and does not
        usually support executable code.

        FORTH does not distinguish between {operating system} calls
        and the language.  Commands relating to I/O, {file systems}
        and {virtual memory} are part of the same language as the
        words for arithmetic, memory access, loops, IF statements, and
        the user's application.

        Many Forth systems provide user-declared "vocabularies" which
        allow the same word to have different meanings in different
        contexts.  Within one vocabulary, re-defining a word causes
        the previous definition to be hidden from the interpreter (and
        therefore the compiler), but not from previous definitions.

        FORTH was first used to guide the telescope at NRAO, Kitt
        Peak.  Moore considered it to be a {fourth-generation
        language} but his {operating system} wouldn't let him use six
        letters in a program name, so FOURTH became FORTH.

        Versions include fig-FORTH, FORTH 79 and FORTH 83.

        {FAQs
        (http://www.complang.tuwien.ac.at/forth/faq/faq-general-2.html)}.
        {ANS Forth standard, dpANS6
        (http://www.taygeta.com/forth/dpans.html)}.

        FORTH Interest Group, Box 1105, San Carlos CA 94070.

        See also {51forth}, {F68K}, {cforth}, {E-Forth}, {FORML},
        {TILE Forth}.

        [Leo Brodie, "Starting Forth"].

        [Leo Brodie, "Thinking Forth"].

        [Jack Woehr, "Forth, the New Model"].

        [R.G. Loeliger, "Threaded Interpretive Languages"].

        2. {FOundation for Research and Technology - Hellas}.

        (1997-04-16)

for The Rest Of Them

        {for The Rest Of Us}

for The Rest Of Us

        (From the {Macintosh} slogan "The computer for the rest of
        us") 1. Used to describe a {spiffy} product whose
        affordability shames other comparable products, or (more
        often) used sarcastically to describe {spiffy} but very
        overpriced products.

        2. Describes a program with a limited interface, deliberately
        limited capabilities, non-{orthogonal}ity, inability to
        compose primitives, or any other limitation designed to not
        "confuse" a nave user.  This places an upper bound on how far
        that user can go before the program begins to get in the way
        of the task instead of helping accomplish it.  Used in
        reference to {Macintosh} software which doesn't provide
        obvious capabilities because it is thought that the poor
        {luser} might not be able to handle them.  Becomes "the rest
        of *them*" when used in third-party reference; thus, "Yes, it
        is an attractive program, but it's designed for The Rest Of
        Them" means a program that superficially looks neat but has no
        depth beyond the surface flash.

        See also {WIMP}, {Macintrash}, {point-and-drool interface},
        {user-friendly}.

        (1995-02-15)

Forth Modification Lab

        <event> (FORML) A {Forth} conference held every November on
        the West coast of the USA ().

        (1997-04-12)

FORTRAN

        FORmula TRANslator.

        The first and still the most widely used programming language
        for numerical and scientific applications.  The original
        versions lacked {recursive} procedures and {block structure}
        and had a line-oriented {syntax} in which certain columns had
        special significance.

        There have been a great many versions.

        See also {convert.f90}, {Fortrash}.

        [Was {FORTRAN I} the first version?]

        (1994-10-24)

FORTRAN 66

        FORTRAN IV standardised.  ASA X3.9-1966.

FORTRAN 77

        A popular version of {FORTRAN} with Block IF, PARAMETER and
        SAVE statements added, but still no WHILE.  It has
        fixed-length character strings, format-free I/O, and {array}s
        with lower bounds.

        [ANSI X3.9-1978].

        {GNU version (ftp://prep.ai.mit.edu/pub/gnu/g77)}

        {Amiga version (ftp://ftp.cso.uiuc.edu/amiga/fish/ff470/BCF)}.

        (1994-12-16)

Fortran 90

        (Previously "Fortran 8x" and "Fortran Extended") An extensive
        enlargement of {FORTRAN 77}.  Fortran 90 has {derived type}s,
        {assumed shape array}s, {array section}s, functions returning
        arrays, case statement, {module} subprograms and internal
        subprograms, optional and keyword subprogram arguments,
        {recursion}, and {dynamic allocation}.  It is defined in ISO
        1539:1991, soon to be adopted by {ANSI}.

        ["Fortran 90 Explained", M. Metcalf et al, Oxford University
        Press 1990].

        (1994-12-16)

FORTRAN Automatic Symbol Translator

        <language> (FAST) An {assembly language} for the {IBM 650} by
        {MITRE Corporation}.

        [CACM 2(5):16 (May 1959)].

        [Sammet 1969, p.526].

        (1994-11-09)

Fortran D

        A {data-parallel} {FORTRAN} developed by {Ken Kennedy} at
        {Rice University}.

        ["Fortran D Language Specification", G. Fox et al, TR 90079,
        Rice U, March 1991].

        E-mail: Theresa Chapman <tlc@cs.rice.edu>.

        (1994-12-16)

FORTRAN I

        An early version of {FORTRAN} designed by {John Backus} at
        {IBM} for the {IBM 704}.  The design was begun in 1954 and a
        {compiler} released in April 1957.

        [Was this the first FORTRAN?]

        (1995-02-15)

FORTRAN II

        1958.  Added subroutines.

FORTRAN III

        This was only distributed to ca. 20 sites.  See Wexelblat.

FORTRAN IV

        IBM 1962.  For the IBM 7090/94.  Many implementations went
        well beyond the original definition.

Fortran-Linda

        Scientific Computer Assocs <linda@sca.com>.

Fortran M

        Parallel extensions to Fortran with processes and channels by
        Ian Foster <fortran-m@mcs.anl.gov>.

        ["Fortran M: A Language for Modular Parallel Programming",
        I. Foster et al, MCS-P327-0992, ANL, 1992].

        (1994-10-26)

FORTRAN Matrix Abstraction Technique FORTRAN

        <language> (FORMAT-FORTRAN) A language for manipulation,
        printing and plotting of large matrices.

        ["FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)"
        AFFDL-TR-66-207, Douglas Aircraft Co.  Oct 1968].

        (1996-09-29)

FORTRAN-Plus

        FORTRAN for the DAP parallel machine, implements many
        Fortran 90 features.

FORTRANSIT

        <language> FORTRAN Internal Translator.

        A subset of {FORTRAN} translated into {IT} on the {IBM 650}.
        It was in use in the late 1950s and early 1960s.

        Compilation took place in several steps (using {punched card}s
        as the only input/output media).  FORTRANSIT was converted to
        IT {Internal Translator} which was converted into {SOAP} and
        thence to {machine code}.

        In the SOAP -> machine code step, the user had to include card
        decks for all the subroutines used in his FORTRANSIT program
        (including e.g. square root, sine, and even basic {floating
        point} routines).

        [Sammet 1969, p. 141].

        (1995-03-30)

FORTRAN V

        Preliminary work on adding character handling to {FORTRAN} by
        {IBM} ca. 1962.  This name as never really used.

        (1994-10-26)

FORTRAN VI

        {IBM}'s internal name for early {PL/I} work ca. 1963.

        [Sammet 1969, p. 540].

        (1994-10-25)

Fortrash

        /for'trash/ Hackerism for the {FORTRAN} language, referring to
        its primitive design, gross and irregular {syntax}, limited
        {control construct}s, and slippery, exception-filled
        {semantics}.

        (1994-10-26)

FORTRUNCIBLE

        A cross between FORTRAN and RUNCIBLE for the IBM 650.
        Listed in CACM 2(5):16 (May 1959).

fortune cookie

        ({WAITS}, via the {Unix} "fortune" program) A quotation, item
        of trivia, joke, or maxim selected at random from a collection
        (the "{cookie file}") and printed to the user's tty at login
        time or (less commonly) at logout time.

        There was a fortune program on {TOPS-20}.

        [First program?]

        (1995-02-14)

forum

        <messaging> (Plural "fora" or "forums") Any discussion group
        accessible through a dial-in {BBS} (e.g. {GEnie}, {CI$}), a
        {mailing list}, or a {Usenet} {newsgroup} (see {network,
        the}).  A forum functions much like a {bulletin board}; users
        submit {postings} for all to read and discussion ensues.

        Contrast real-time {chat} or point-to-point personal {e-mail}.

        (1998-01-18)

for values of

        <jargon> A common rhetorical maneuver at {MIT} is to use any
        of the canonical {random numbers} as placeholders for
        variables.  "The max function takes 42 arguments, for
        arbitrary values of 42".  "There are 69 ways to leave your
        lover, for 69 = 50".  This is especially likely when the
        speaker has uttered a random number and realises that it was
        not recognised as such, but even "non-random" numbers are
        occasionally used in this fashion.  A related joke is that pi
        equals 3 - for small values of pi and large values of 3.

        This usage probably derives from the programming language MAD
        ({Michigan Algorithm Decoder}), an {ALGOL}-like language that
        was the most common choice among mainstream (non-hacker) users
        at {MIT} in the mid-1960s.  It had a {control structure} FOR
        VALUES OF X = 3, 7, 99 DO ... that would repeat the indicated
        instructions for each value in the list (unlike the usual FOR
        that generates an {arithmetic sequence} of values).  MAD is
        long extinct, but similar for-constructs still flourish
        (e.g. in {Unix}'s {shell} languages).

        (1994-12-16)

forward analysis

        An analysis which determines properties of the output of a
        program from properties of the inputs.

forward chaining

        A data-driven technique used in constructing {goal}s or
        reaching {inference}s derived from a set of {fact}s.  Forward
        chaining is the basis of {production system}s.  Oppose
        {backward chaining}.

        (1994-10-28)

forward compatibility

        {forward compatible}

forward compatible

        <jargon> A system is foreward compatible if it is designed to
        be {compatible} with planned later versions of itself.

        See also {extensible}.

        Compare: {backward compatible}.

        (1998-01-15)

forward delta

        The delta which, when combined with a version, creates a child
        version.  See change management

forward engineering

        <process> The traditional process of moving from high-level
        abstractions and logical, implementation-independent designs
        to the physical implementation of a system.

        Contrast {reverse engineering}.

        (1996-10-02)

Forward Error Correction

        <algorithm> (FEC) A class of methods for controling errors in
        a one-way {communication} system.  FEC sends extra information
        along with the data, which can be used by the receiver to
        check and correct the data.

        A {CPU} writing data to {RAM} is a kind of one-way
        communication - see {error correcting memory} and {error
        checking and correction}.

        (1996-10-02)

forwards compatibility

        {forward compatible}

forwards compatible

        {forward compatible}

FORWISS

        Bayerische Forschungszentrum fuer Wissensbasierte Systeme
        (Bavarian research centre for knowledge-based systems) in
        Passau.

For Your Information

        (FYI) A subseries of {RFC}s that are not technical {standard}s
        or descriptions of {protocol}s.  FYIs convey general
        information about topics related to {TCP/IP} or the
        {Internet}.

        See also {STD}.

        (1994-10-26)

FOSI

        {Formatting Output Specification Instance}

FOSIL

        Fredette's Operating System Interface Language.  A portable
        {job control language} for {IBM} {OS360}, {UNIVAC} {EXEC 8}
        and {Honeywell} {GCOS}.

        ["Fredette's Operating System Interface Language (FOSIL)",
        G.N. Baird in Command Languages, C. Unger ed, N-H 1973].

        (1994-10-26)

fossil

        1. In software, a misfeature that becomes understandable only
        in historical context, as a remnant of times past retained so
        as not to break compatibility.  Example: the retention of
        {octal} as default base for string escapes in {C}, in spite of
        the better match of {hexadecimal} to ASCII and modern
        byte-addressable architectures.  See {dusty deck}.

        2. More restrictively, a feature with past but no present
        utility.  Example: the force-all-caps (LCASE) bits in the V7
        and {BSD} Unix tty driver, designed for use with monocase
        terminals.  (In a perversion of the usual
        backward-compatibility goal, this functionality has actually
        been expanded and renamed in some later {USG Unix} releases as
        the IUCLC and OLCUC bits.)

        3. The FOSSIL (Fido/Opus/Seadog Standard Interface Level)
        driver specification for serial-port access to replace the
        {brain-dead} routines in the IBM PC ROMs.  Fossils are used by
        most {MS-DOS} {BBS} software in preference to the "supported"
        ROM routines, which do not support interrupt-driven operation
        or setting speeds above 9600; the use of a semistandard FOSSIL
        library is preferable to the {bare metal} serial port
        programming otherwise required.  Since the FOSSIL
        specification allows additional functionality to be hooked in,
        drivers that use the {hook} but do not provide serial-port
        access themselves are named with a modifier, as in "video
        fossil".

foundation

        The axiom of foundation states that the membership relation is
        well founded, i.e. that any non-empty collection Y of sets has
        a member y which is disjoint from Y.  This rules out sets
        which contain themselves (directly or indirectly).

FOundation for Research and Technology - Hellas

        <company> (FORTH) A small Greek software and research company
        associated with the Institute of Computer Science,

        Address: Science and Technology Park of Crete, Vassilika
        Vouton, P.O.Box 1385 GR 711 10 Heraklion, Crete, Greece.

        Telephone: +30 (81) 39 16 00, Fax: +30 (81) 39 16 01.

        (1997-04-12)

four-colour glossies

        1. Literature created by {marketroid}s that allegedly contains
        technical specs but which is in fact as superficial as
        possible without being totally {content-free}.  "Forget the
        four-colour glossies, give me the tech ref manuals."  Often
        applied as an indication of superficiality even when the
        material is printed on ordinary paper in black and white.
        Four-colour-glossy manuals are *never* useful for finding a
        problem.

        2. [rare] Applied by extension to manual pages that don't
        contain enough information to diagnose why the program doesn't
        produce the expected or desired output.

four colour map theorem

        <mathematics, application> (Or "four colour theorem") The
        theorem stating that if the plane is divided into connected
        regions which are to be coloured so that no two adjacent
        regions have the same colour (as when colouring countries on a
        map of the world), it is never necessary to use more than four
        colours.  The proof, due to Appel and Haken, attained
        notoriety by using a computer to check tens of thousands of
        cases and is thus not humanly checkable, even in principle.
        Some thought that this brought the philosophical status of the
        proof into doubt.

        There are now rumours of a simpler proof, not requiring the
        use of a computer.

        (1995-03-25)

four colour theorem

        {four colour map theorem}

Fourier transform

        <mathematics> A technique for expressing a waveform as a
        weighted sum of sines and cosines.

        Computers generally rely on the version known as {discrete
        Fourier transform}.

        Named after J. B. Joseph Fourier (1768 -- 1830).

        See also {wavelet}, {discrete cosine transform}.

        (1997-03-9)

fourth generation computer

        <architecture> A computer built using {Very Large Scale
        Integration} (VLSI) {integrated circuits}, especially a
        {microcomputer} based on a {microprocesseor}, or a {parallel
        processor} containing two to thousands of {CPU}s.

        VLSI made it routine to fabricate an entire CPU, main memory,
        or similar device with a single integrated circuit that can be
        mass produced at very low cost.  This has resulted in new
        classes of machines such as {personal computers}, and high
        performance parallel processors that contains thousands of
        CPUs.

        (1996-11-22)

fourth generation language

        An "application specific" language.  The term was invented by
        Jim Martin to refer to non-procedural {high level language}s
        built around {database} systems.  The first three generations
        were developed fairly quickly, but it was still frustrating,
        slow, and error prone to program computers, leading to the
        first "programming crisis", in which the amount of work that
        might be assigned to programmers greatly exceeded the amount
        of programmer time available to do it.  Meanwhile, a lot of
        experience was gathered in certain areas, and it became clear
        that certain applications could be generalised by adding
        limited programming languages to them.  Thus were born
        report-generator languages, which were fed a description of
        the data format and the report to generate and turned that
        into a {COBOL} (or other language) program which actually
        contained the commands to read and process the data and place
        the results on the page.

        Some other successful 4th-generation languages are: {database
        query language}s, e.g. {SQL}; {Focus}, {Metafont},
        {PostScript}, {RPG-II}, {S}, {IDL-PV/WAVE}, {Gauss},
        {Mathematica} and {data-stream language}s such as {AVS},
        {APE}, {Iris Explorer}.

fourth normal form

        {database normalisation}

Fowler-Nordheim tunnelling

        <electronics> (US: "tunneling") The quantum mechanical effect
        exploited in {EAPROM} and {Flash Erasable Programmable Read
        Only Memory}.  It differs from {Frenkel-Pool Tunnelling} in
        that it does not rely on defects in the {semicondictor}.

        [More detail?]

        (1997-02-02)

FoxBASE+

        <database> A {dBASE} III+-like product from {Fox Software}.

        [Features?  Dates?  Status?]

        (1997-11-18)

FoxPRO

        <database> A {dBASE} IV-like product from {Fox Software}.

        [Features?  Dates?  Status?]

        (1997-11-18)

Fox Software

        <company> Developers of {FoxBASE+} and {FoxPRO}.  Fox Software
        merged with {Microsoft} around 1992.

        Addresss: Perrysburg, OH, USA.

        [More details?]

        (1997-11-18)

FP

        1. {functional programming}.

        2. {floating-point}.

        3. Functional Programming.  A {combinator}-based {functional
        language} by John Backus stressing the use of {higher-order
        function}s.

        Implementation by Andy Valencia.
        {(ftp://apple.com/comp.sources.Unix/volume13)}.

        See also {FFP}, {FL}, {IFP}, {Berkeley FP}.

        ["Can Programming be Liberated From the von Neumann Style?  A
        Functional Style and Its Algebra of Programs", John Backus,
        1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)].

        4. <programming> {Function Point}.

        (1995-03-12)

FP2

        Functional Parallel Programming.  A {term rewriting} language
        which unifies {functional programming} and {parallel
        programming}.  Every object is a term and every computation is
        done by rewriting.  Rewrite rules are used to specify
        {algebraic data type}s and parallel processes.

        ["Term Rewriting as a Basis for the Design of a Functional and
        Parallel Programming Language.  A Case Study: The Language
        FP2", Ph. Jorrand in Fundamentals of Artificial Intelligence,
        LNCS 258, Springer 1986, pp. 221-276].

        (1994-10-20)

FPA

        1. <hardware> {floating-point accelerator}.

        2. <programming> {Function Point Analysis}.

fpc

        A translator from {Backus}'s {FP} to {C}.

        {(ftp://apple.com/comp.sources.Unix/Volume20)}

FPGA

        {Field-Programmable Gate Array}

FPLMTS

        <communications> {Future Public Land Mobile
        Telecommunications System}.

FPM

        {Fast Page Mode Dynamic Random Access Memory}

FP/M

        <programming> An {abstract machine} and intermediate language
        for {functional languages}, used to implement {Hope}.  FP/M is
        an optimisation of the {SECD machine}.

        ["The Compilation of FP/M Programs into Conventional Machine
        Code", A.J. Field, Imperial College, London, 1985].

        ["Functional Programming", A.J. Field & P.G. Harrison, A-W
        1988].

        (1994-10-20)

FPM DRAM

        {Fast Page Mode Dynamic Random Access Memory}

fprintf

        <library> Variant of the {C} library routine {printf} which
        prints to a given {stream}.  E.g.

                fprintf(stderr, "%s: can't open file \"%s\".",
                        argv[0], argv[1]);

        which prints to the "{standard error}" output stream.

        (1995-04-25)

FPU

        {floating-point unit}

FQDN

        {fully qualified domain name}

FQL

        <language> A {functional database} language.

        ["An Implementation Technique for Database Query Languages",
        O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June
        1982)].

        (1995-04-27)

fr

        <networking> The {country code} for France.

        (1999-01-27)

fractal

        <mathematics, graphics> A fractal is a rough or fragmented
        geometric shape that can be subdivided in parts, each of which
        is (at least approximately) a smaller copy of the whole.
        Fractals are generally self-similar (bits look like the whole)
        and independent of scale (they look similar, no matter how
        close you zoom in).

        Many mathematical structures are fractals; e.g. {Sierpinski
        triangle}, {Koch snowflake}, {Peano curve}, {Mandelbrot set}
        and {Lorenz attractor}.  Fractals also describe many
        real-world objects that do not have simple geometric shapes,
        such as clouds, mountains, turbulence, and coastlines.

        {Benoit Mandelbrot}, the discoverer of the {Mandelbrot set},
        coined the term "fractal" in 1975 from the Latin fractus or
        "to break".  He defines a fractal as a set for which the
        {Hausdorff Besicovich dimension} strictly exceeds the
        {topological dimension}.  However, he is not satisfied with
        this definition as it excludes sets one would consider
        fractals.

        {sci.fractals FAQ
        (ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.fractals/)}.

        See also {fractal compression}, {fractal dimension}, {Iterated
        Function System}.

        {Usenet} newsgroups: {news:sci.fractals},
        {news:alt.binaries.pictures.fractals}, {news:comp.graphics}.

        ["The Fractal Geometry of Nature", Benoit Mandelbrot].

        [Are there non-self-similar fractals?]

        (1997-07-02)

fractal compression

        <algorithm> A technique for encoding {images} using
        {fractals}.

        {Yuval Fisher's fractal image compression site
        (http://inls.ucsd.edu/y/Fractals/)}.

        [Summary?]

        (1998-03-27)

fractal dimension

        <mathematics> A common type of fractal dimension is the
        Hausdorff-Besicovich Dimension, but there are several
        different ways of computing fractal dimension.  Fractal
        dimension can be calculated by taking the limit of the
        quotient of the log change in object size and the log change
        in measurement scale, as the measurement scale approaches
        zero.  The differences come in what is exactly meant by
        "object size" and what is meant by "measurement scale" and how
        to get an average number out of many different parts of a
        geometrical object.  Fractal dimensions quantify the static
        *geometry* of an object.

        For example, consider a straight line.  Now blow up the line
        by a factor of two.  The line is now twice as long as before.
        Log 2 / Log 2 = 1, corresponding to dimension 1.  Consider a
        square.  Now blow up the square by a factor of two.  The
        square is now 4 times as large as before (i.e. 4 original
        squares can be placed on the original square).  Log 4 / log 2
        = 2, corresponding to dimension 2 for the square.  Consider a
        snowflake curve formed by repeatedly replacing ___ with _/\_,
        where each of the 4 new lines is 1/3 the length of the old
        line.  Blowing up the snowflake curve by a factor of 3 results
        in a snowflake curve 4 times as large (one of the old
        snowflake curves can be placed on each of the 4 segments
        _/\_).  Log 4 / log 3 = 1.261...  Since the dimension 1.261 is
        larger than the dimension 1 of the lines making up the curve,
        the snowflake curve is a fractal.  [sci.fractals FAQ].

FRAD

        <communications> {Frame Relay Access Device}.

fragile

        {brittle}

fragment

        {fragmentaton}

fragmentation

        1. <networking> {segmentation}.

        2. The process, or result, of splitting a large area of free
        memory (on disk or in main memory) into smaller non-contiguous
        blocks.  This happens after many blocks have been allocated
        and freed.  For example, if there is 3 kilobytes of free space
        and two 1k blocks are allocated and then the first one (at the
        lowest address) is freed, then there will be 2k of free space
        split between the two 1k blocks.  The maximum size block that
        could then be allocated would be 1k, even though there was 2k
        free.  The solution is to "compact" the free space by moving
        the allocated blocks to one end (and thus the free space to
        the other).  See {garbage collection}.

FRAM

        {Ferroelectric Random Access Memory}

frame

        1. <networking> A {data link layer} "packet" which contains the
        header and trailer information required by the physical
        medium.  That is, {network layer} {packets} are encapsulated
        to become frames.

        See also {datagram}, {encapsulation}, {packet}.

        2. <programming> (language implementation) See {activation
        record}.

        3. <hardware> One complete scan of the active area of a
        {display screen}.  Each frame consists of a number N of
        horizontal {scan lines}, each of which, on a computer display,
        consists of a number M of {pixels}.  N is the {vertical
        resolution} of the display and M is the {horizontal
        resolution}.  The rate at which the displayed image is updated
        is the {refresh rate} in frames per second.

        (1994-12-16)

frame buffer

        <hardware> Part of a video system in which an {image} is
        stored, {pixel} by pixel and which is used to refresh a
        {raster} image.  The term "{video memory}" suggests a fairly
        static display whereas a frame buffer holds one frame from a
        sequence of frames forming a moving image.

        Frame buffers are found in {frame grabbers} and {time base
        correction} systems, for example.

        (1997-10-03)

Frame Check Sequence

        <communications> (FCS) The extra characters added to a {frame}
        for {error detection and correction}(?).  FCS is used in
        {X.25}, {HDLC}, {Frame Relay}, and other {data link layer}
        {protocols}.

        (1998-02-27)

frame grabber

        <hardware> A device that captures a single {frame} from an
        {analog} {video} signal (from a video camera or {VCR}) and
        stores it as a digital {image} under computer control.

        (1997-07-11)

FrameKit

        <language> A {frame language}.

        ["The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO,
        CMU 1988].

        (1994-10-20)

FrameMaker

        <text> A commercial document preparation program produced by
        {Frame Technology Corporation} who were taken over by {Adobe
        Systems, Inc.}  in 1995/6.  FrameMaker is available for a wide
        variety of {workstations} and is designed for technical and
        scientific documents.  It uses a powerful system of templates
        and paragraph styles to control {WYSIWYG} formatting.  It
        supports graphics, tables and contents pages among other
        things.

        Version: FrameMaker 5.

        See also {Maker Interchange Format}.

        (1996-12-13)

frame pointer

        A pointer to the current {activation record} in an
        implementation of a {block structured} language.

        (1994-10-20)

frame rate

        <graphics> The number of {frame}s of an animation which are
        displayed every second.  The higher the frame rate, the
        smoother the animation will appear but the more processing
        power and system {bandwidth} is required.

        (1995-04-01)

Frame Relay

        <communications> A {DTE}-{DCE} interface specification based
        on {LAPD} (Q.921), the {Integrated Services Digital Network}
        version of {LAPB} ({X.25} {data link layer}).  A common
        specification was produced by a consortium of {StrataCom},
        {cisco}, {Digital} and Northern Telecom.

        Frame Relay is the result of {wide area network}ing
        requirements for speed; {LAN}-{WAN} and LAN-LAN
        {internetworking}; "bursty" data communications; multiplicity
        of {protocol}s and {protocol transparency}.  These
        requirements can be met with technology such as {optical
        fibre} lines, allowing higher speeds and fewer transmission
        errors; intelligent network end devices ({personal computers},
        {workstations}, and {servers}); standardisation and adoption
        of ISDN protocols.  Frame Relay could connect dedicated lines
        and {X.25} to {ATM}, {SMDS}, {BISDN} and other "{fast packet}"
        technologies.

        Frame Relay uses the same basic {data link layer} {framing} and
        {Frame Check Sequence} so current {X.25} hardware still works.
        It adds addressing (a 10-bit {Data Link Connection Identifier}
        (DLCI)) and a few control bits but does not include
        retransmissions, link establishment, windows or error
        recovery.  It has none of X.25's {session layer} but adds some
        simple interface management.  Any {network layer} protocol can
        be used over the data link layer Frames.

        {(ftp://funet.fi/documents/IETF-Frame-Relay-Intro.ps)}

        (1996-11-16)

Frame Relay Access Device

        <communications> (FRAD) Hardware and software that turns
        {packets} from {TCP}, {SNA}, {IPX}, etc into {frames} that can
        be sent over a {frame relay} {wide area network}.

        FRADs are a hot topic in data comms because companies like
        {Netlink}, {Motorola}, {Stratacom} are making lots of money
        out of them.

        (1995-11-17)

Frame Technology Corporation

        <company> The company which developed {FrameMaker}, taken over
        by {Adobe Systems, Inc.} in late 1995/early 1996.

        (1995-01-30)

framework

        In {object-oriented} systems, a set of {class}es that embodies
        an abstract design for solutions to a number of related
        problems.

        (1995-01-30)

Framework 4

        A European Union funding programme, the {information
        technology} portion of which replaced {ESPRIT}.

        (1994-09-19)

framing specification

        A specification of the "{protocol} bits" that surround the
        "data bits" on a communications channel to allow the data to
        be "framed" into chunks, like start and {stop bit}s in
        {RS-232}.  It allows a receiver to synchronize at points along
        the data stream.

        (1995-01-13)

FRANK

        ["Using BINS for Interprocess Communication", P.C.J. Graham,
        SIGPLAN Notices 20(2):32-41 (Feb 1985)].

        (1995-01-13)

Franz Lisp

        Named after the Hungarian composer Franz Liszt (1811-1886).
        R. Fateman et al, UC Berkeley ca 1980.  A {MacLisp}-like
        dialect of {Lisp}, developed primarily for work in symbolic
        algebra.  Written in {C}.  "The FRANZ LISP Manual",
        J.K. Foderaro et al. UC Berkeley 1980.  Version: Opus 38.22.
        Liszt (the compiler) Version 8.08.

        {(ftp://ted.cs.uidaho.edu/pub/hol/franz.tar.Z)}

        See also {Liszt}.

FRED

        Robert Carr.  Language used by Framework, Ashton-Tate.

fred

        1. The personal name most frequently used as a {metasyntactic
        variable} (see {foo}).  Allegedly popular because it's easy
        for a non-touch-typist to type on a standard QWERTY keyboard.
        Unlike {J. Random Hacker} or "J. Random Loser", this name has
        no positive or negative loading (but see {Mbogo, Dr. Fred}).
        See also {barney}.

        2. An acronym for "Flipping Ridiculous Electronic Device";
        other F-verbs may be substituted for "flipping".

frednet

        /fred'net/ Used to refer to some {random} and uncommon
        {protocol} encountered on a {network}.  "We're implementing
        bridging in our {router} to solve the frednet problem."

free

        See {free software}, {free variable}.

FreeBSD

        <operating system> A free {operating system} based on the {BSD
        4.4-lite} release from {Computer Systems Research Group} at
        the {University of California at Berkeley}.

        FreeBSD requires an {ISA}, {EISA}, {VESA}, or {PCI} based
        computer with an {Intel 80386SX} to {Pentium} CPU (or
        compatible {AMD} or {Cyrix} CPU) with 4 megabytes of {RAM} and
        60MB of disk space.

        Some of FreeBSD's features are: {preemptive multitasking} with
        dynamic priority adjustment to ensure smooth and fair sharing
        of the computer between applications and users.  Multiuser
        access - {peripherals} such as printers and tape drives can be
        shared between all users.  Complete {TCP/IP} networking
        including {SLIP}, {PPP}, {NFS} and {NIS}.  {Memory
        protection}, {demand-paged virtual memory} with a merged
        {VM}/{buffer cache} design.  FreeBSD was designed as a {32 bit
        operating system}.  {X Window System} (X11R6) provides a
        {graphical user interface}.  {Binary compatibility} with many
        programs built for {SCO}, {BSDI}, {NetBSD}, {386BSD}, and
        {Linux}.  Hundreds of ready-to-run applications in the FreeBSD
        ports collection.  FreeBSD is {source code compatible} with
        most popular commercial {Unix} systems and thus most
        applications require few, if any, changes to compile.  {Shared
        libraries}.  A full compliment of {C}, {C++}, {Fortran} and
        {Perl} development tools and many other languages.  {Source
        code} for the entire system is available.  Extensive on-line
        documentation.

        {Home (http://www.freebsd.org/)}.

        {(ftp://ftp.freebsd.org/pub/FreeBSD)} or try your nearest
        {mirror site} listed at the home site or buy the {CD-ROM} from
        {Walnut Creek}.

        (1998-11-24)

FreeHEP

        An organisation offering a repository of software and related
        information for high energy physics applications.

Freenet

        Community-based bulletin board system with e-mail, information
        services, interactive communications, and conferencing.
        Freenets are funded and operated by individuals and volunteers
        - in one sense, like public television.  They are part of the
        National Public Telecomputing Network (NPTN), an organisation
        based in Cleveland, Ohio, devoted to making computer
        telecommunication and networking services as freely available
        as public libraries.

freerexx

        {REXX} {interpreter}s for {Unix} in {C++}.

        {(ftp://rexx.uwaterloo.ca/pub/freerexx/rx102.tar.Z)}

free software

        According to {Richard Stallman} and the {Free Software
        Foundation}, free software is software that everyone is free
        to copy, redistribute and modify.  That implies it must be
        available as source code.  It does not imply that it is free
        of charge, so anyone can sell free software so long as they
        don't impose any new restrictions on its redistribution or
        use.

        {This dictionary} is free in this sense, though it is not
        really {software}.

        There are many other kinds of "free software" in the more
        obvious sense of "free of charge".  See "{-ware}".

Free Software Foundation

        <body> (FSF) An organisation devoted to the creation and
        dissemination of {free software}, i.e. software that is free
        from licensing fees or restrictions on use.  The Foundation's
        main work is supporting the {GNU} project, started by {Richard
        Stallman} (RMS), partly to proselytise for his position that
        information is community property and all software source
        should be shared.

        The GNU project has developed the GNU {Emacs} editor and a {C}
        compiler, {gcc}, replacements for many Unix utilities and many
        other tools.  A complete {Unix}-like operating system ({HURD})
        is in the works (April 1994).

        Software is distributed under the terms of the {GNU General
        Public License}, which also provides a good summary of the
        Foundation's goals and principles.  The Free Software
        Foundation raises most of its funds from distributing its
        software, although it is a charity rather than a company.
        Although the software is freely available (e.g. by {FTP} - see
        below) users are encouraged to support the work of the FSF by
        paying for their distribution service or by making donations.

        One of the slogans of the FSF is "Help stamp out software
        hoarding!"  This remains controversial because authors want to
        own, assign and sell the results of their labour.  However,
        many hackers who disagree with RMS have nevertheless
        cooperated to produce large amounts of high-quality software
        for free redistribution under the Free Software Foundation's
        imprimatur.

        See {copyleft}, {General Public Virus}, {GNU archive site}.

        {(ftp://ftp.gnu.ai.mit.edu)}

        Unofficial WWW pages: {PDX
        (http://www.cs.pdx.edu/~trent/gnu/)}, {DeLorie
        (http://www.delorie.com/gnu/)}.

        E-mail: <gnu@prep.ai.mit.edu>.

        Address: Free Software Foundation, Inc., 675 Massachusetts
        Avenue, Cambridge, MA 02139, USA.

        Telephone: +1 (617) 876 3296.

        (1995-12-10)

free variable

        1. A variable referred to in a function, which is not an
        argument of the function.  In {lambda-calculus}, x is a {bound
        variable} in the term M = \ x . T, and a free variable of T.
        We say x is bound in M and free in T.  If T contains a subterm
        \ x . U then x is rebound in this term.  This nested, inner
        binding of x is said to "shadow" the outer binding.
        Occurrences of x in U are free occurrences of the new x.

        Variables bound at the top level of a program are technically
        free variables within the terms to which they are bound but
        are often treated specially because they can be compiled as
        fixed addresses.  Similarly, an identifier bound to a
        recursive function is also technically a free variable within
        its own body but is treated specially.

        A {closed term} is one containing no free variables.

        See also {closure}, {lambda lifting}, {scope}.

        2. In {logic}, a variable which is not quantified (see
        {quantifier}).

freeware

        <legal> {Software}, often written by enthusiasts and
        distributed at no charge by users' groups, or via {electronic
        mail}, local {bulletin board}s, {Usenet}, or other electronic
        media.

        At one time, "freeware" was a trademark of {Andrew
        Fluegelman}, the author of the well-known {MS-DOS}
        communications program {PC-TALK III}.  It wasn't enforced
        after his mysterious disappearance and presumed death in 1984.

        "Freeware" should not be confused with "{free software}"
        (roughly, software with unrestricted redistribution) or
        "{shareware}" (software distributed without charge for which
        users can pay voluntarily).

        (1995-08-06)

freeze

        To lock an evolving software distribution or document against
        changes so it can be released with some hope of stability.
        Carries the strong implication that the item in question will
        "unfreeze" at some future date.

        There are more specific constructions on this term.  A
        "feature freeze", for example, locks out modifications
        intended to introduce new features but still allows bugfixes
        and completion of existing features; a "code freeze" connotes
        no more changes at all.  At {Sun Microsystems} and elsewhere,
        one may also hear references to "code slush" - that is, an
        almost-but-not-quite frozen state.

Frege, Gottlob

        {Gottlob Frege}

Frequency Division Multiple Access

        {Frequency Division Multiplexing}

Frequency Division Multiplexing

        <communications> (FDM) The simultaneous transmission of
        multiple separate signals through a shared medium (such as a
        wire, {optical fibre} or light beam) by modulating, at the
        transmitter, the separate signals into separable frequency
        bands, and adding those results linearly either before
        transmission or within the medium.  While thus combined, all
        the signals may be amplified, conducted, translated in
        frequency and routed toward a destination as a single signal,
        resulting in economies which are the motivation for
        multiplexing.  Apparatus at the reciever separates the
        multiplexed signals by means of frequency passing or rejecting
        filters, and demodulates the results individually, each in the
        manner appropriate for the modulation scheme used for that
        band or group.

        Bands are joined to form groups, and groups may then be joined
        into larger groups; this process may be considered
        recursively, but such technique is common only in large and
        sophisticated systems and is not a necessary part of FDM.

        Neither the transmitters nor the recievers need be close to
        each other; ordinary radio, television, and cable service are
        examples of FDM.  It was once the mainstay of the long
        distance telephone system.  The more recently developed {time
        division multiplexing} in its several forms lends itself to
        the handling of digital data, but the low cost and high
        quality of available FDM equipment, especially that intended
        for television signals, make it a reasonable choice for many
        purposes.

        (1995-03-08)

Frequency Shift Keying

        <communications> (FSK) The use of {frequency modulation} to
        transmit digital data, i.e. two different {carrier}
        frequencies are used to represent zero and one.

        FSK was originally used to transmit {teleprinter} messages by
        radio ({RTTY}) but can be used for most other types of radio
        and land-line digital telegraphy.  More than two frequencies
        can be used to increase transmission rates.

        (1997-07-14)

frequently asked question

        <convention> (FAQ, or rarely FAQL, FAQ list) A document
        provided for many {Usenet} {newsgroups} (and, more recently,
        {World-Wide Web} services) which attempts to answer questions
        which new readers often ask.  These are maintained by
        volunteers and posted regularly to the newsgroup.  You should
        always consult the FAQ list for a group before posting to it
        in case your question or point is common knowledge.

        The collection of all FAQ lists is one of the most precious
        and remarkable resources on the {Internet}.  It contains a
        huge wealth of up-to-date expert knowledge on many subjects of
        common interest.  Accuracy of the information is greatly
        assisted by its frequent exposure to criticism by an
        interested, and occasionally well-informed, audience (the
        readers of the relevant newsgroup).

        The main {FTP archive} for FAQs is on a computer called {RTFM}
        at {MIT}, where they can be accessed either {by group
        (ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/)} or {by
        hierarchy (ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/)}.
        There is another archive at {Imperial College
        (ftp://src.doc.ic.ac.uk/usenet/news-info/)}, London, UK and a
        {World-Wide Web} archive in {Ohio
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html)},
        USA.

        The FAQs are also posted to {Usenet} newsgroups:
        {news:comp.answers}, {news:news.answers} and
        {news:alt.answers}.

        (1997-12-08)

Fresco

        1. <standard, programming> An {object-oriented} {API} for
        {graphical user interface}s, under development by the {X
        Consortium} as an open, multi-vendor {standard}.

        2. <language, specification> An {object-oriented}
        {specification language}.

        ["Refinement in Fresco", in Object Oriented Specification Case
        Studies, K. Lano et al eds, P-H 1993].

        (1996-04-28)

Fresh

        <language>

        ["Fresh: A Higher-Order Language Based on Unification",
        G. Smolka, in Logic Programming: Functions, Relations and
        Equations", D. DeGroot et al, P-H 1986, pp. 469-524].

        (1996-04-28)

friction feed

        <printer> A method some {printers} and {plotters} use to move
        paper by rotating one or both of a pair of spring-loaded
        rubber-coated rollers with the paper sandwiched between them.

        Friction feed printers are notorious for slipping when the
        rollers wear out, but can take standard typing paper.

        For printers with a {sheet feeder}, friction feed is more
        appropriate than {sprocket feed} which requires the holes in
        the paper to engage with the sprockets of the feed mechanism.

        (1997-07-09)

fried

        1. <hardware> Non-working due to hardware failure; burnt out.
        Especially used of hardware brought down by a "power glitch"
        (see {glitch}), {drop-outs}, a short, or some other electrical
        event.  (Sometimes this literally happens to electronic
        circuits!  In particular, resistors can burn out and
        transformers can melt down, emitting noxious smoke - see
        {friode}, {SED} and {LER}.  However, this term is also used
        metaphorically.)  Compare {frotzed}.

        2. <jargon> Of people, exhausted.  Said particularly of those
        who continue to work in such a state.  Often used as an
        explanation or excuse.  "Yeah, I know that fix destroyed the
        file system, but I was fried when I put it in."  Especially
        common in conjunction with "brain": "My brain is fried today,
        I'm very short on sleep."

        (1996-04-28)

Friend

        Relationship between classes in the language C++.

FRINGE

        C. Katz, GE, 1961.  Subcomponent of GE-255 GECOM system.
        Sorting and merging of data, reports and file maintenance.

frink

        /frink/ The unknown ur-verb, fill in your own meaning.  Found
        especially on the {Usenet} newsgroup {news:alt.fan.lemurs},
        where it is said that the lemurs know what "frink" means, but
        they aren't telling.

        Compare {gorets}.

        (1994-12-16)

friode

        <humour, electronics> /fri:'ohd/ (TMRC) A reversible (that is,
        fused, blown, or {fried}) {diode}.  A friode may have been a
        {SED} at some time.

        See also {LER}.

        (1996-04-28)

fritterware

        An excess of capability that serves no productive end.  The
        canonical example is font-diddling software on the Mac (see
        {macdink}); the term describes anything that eats huge amounts
        of time for quite marginal gains in function but seduces
        people into using it anyway.  See also {window shopping}.

FRL

        Frame Representation Language.

        MIT.

        ["The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab,
        1977].

        (1994-12-16)

FRMT-FTRN

        Scientific language.  1976.

frob

        /frob/ 1.  [MIT] The {TMRC} definition was "FROB = a
        protruding arm or trunnion"; by metaphoric extension, a "frob"
        is any random small thing; an object that you can comfortably
        hold in one hand; something you can frob (sense 2).  See
        {frobnitz}.

        2. Abbreviated form of {frobnicate}.

        3. [{MUD}] A command on some {MUD}s that changes a player's
        experience level (this can be used to make wizards); also, to
        request {wizard} privileges on the "professional courtesy"
        grounds that one is a wizard elsewhere.  The command is
        actually "frobnicate" but is universally abbreviated to the
        shorter form.

frobnicate

        /frob'ni-kayt/ (Possibly from {frobnitz}, and usually
        abbreviated to {frob}, but "frobnicate" is recognised as the
        official full form).  To manipulate or adjust, to {tweak}.
        One frequently frobs bits or other 2-state devices.  Thus:
        "Please frob the light switch" (that is, flip it), but also
        "Stop frobbing that clasp; you'll break it".  One also sees
        the construction "to frob a frob".

        Usage: frob, {twiddle}, and {tweak} sometimes connote points
        along a continuum.  "Frob" connotes aimless manipulation;
        "twiddle" connotes gross manipulation, often a coarse search
        for a proper setting; "tweak" connotes fine-tuning.  If
        someone is turning a knob on an oscilloscope, then if he's
        carefully adjusting it, he is probably tweaking it; if he is
        just turning it but looking at the screen, he is probably
        twiddling it; but if he's just doing it because turning a knob
        is fun, he's frobbing it.  The variant "frobnosticate" has
        also been reported.

        (1994-12-16)

frobnitz

        /frob'nits/, plural "frobnitzem" /frob'nit-zm/ or "frobni"
        /frob'ni:/ (TMRC) An unspecified physical object, a widget.
        Also refers to electronic {black boxes}.  This rare form is
        usually abbreviated to "frotz", or more commonly to {frob}.
        Also used are "frobnule" (/frob'n[y]ool/) and "frobule"
        (/frob'yool/).  Starting perhaps in 1979, "frobozz" /fr*-boz'/
        (plural: "frobbotzim" /fr*-bot'zm/) has also become very
        popular, largely through its exposure as a name via {Zork}.
        These variants can also be applied to nonphysical objects,
        such as data structures.

        Pete Samson, compiler of the original {TMRC} lexicon, adds,q
        "Under the TMRC (railway) layout were many storage boxes,
        managed (in 1958) by David R. Sawyer.  Several had fanciful
        designations written on them, such as "Frobnitz Coil Oil".
        Perhaps DRS intended Frobnitz to be a proper name, but the
        name was quickly taken for the thing".  This was almost
        certainly the origin of the term.

        (1994-12-16)

frogging

        ({University of Waterloo}) 1. Partial corruption of a text
        file or input stream by some bug or consistent glitch, as
        opposed to random events like line noise or media failures.
        Might occur, for example, if one bit of each incoming
        character on a tty were stuck, so that some characters were
        correct and others were not.

        See {terminak} for a historical example.

        2. By extension, accidental display of text in a mode where
        the output device emits special symbols or {mnemonic}s rather
        than conventional ASCII.  This often happens, for example,
        when using a terminal or comm program on a device like an {IBM
        PC} with a special "high-half" character set and with the
        bit-parity assumption wrong.  A hacker sufficiently familiar
        with ASCII bit patterns might be able to read the display
        anyway.

Frolic

        A {Prolog} system in {Common Lisp}.

        {(ftp://ftp.cs.utah.edu/pub/frolic.tar.Z)}

        (1991-11-23)

front end

        1. An intermediary computer that does set-up and filtering for
        another (usually more powerful but less friendly) machine (a
        "back end").

        2. Software that provides an interface to another program
        "behind" it, which may not be as {user-friendly}.  Probably
        from analogy with hardware front-ends that interfaced with
        {mainframe}s.

front-end processor

        (FEP) 1. A small computer necessary to enable an {IBM}
        {mainframe} using {SNA} to communicate beyond the limits of
        the {dinosaur pen}.

        2. A small computer controlling the screen and keyboard of a
        {Symbolics 3600} {LISP Machine}.

frotz

        /frots/ 1.  See {frobnitz}.

        2. "mumble frotz": An interjection of mildest disgust.

frotzed

        /frotst/ {down} because of hardware problems.  Compare
        {fried}.  A machine that is merely frotzed may be fixable
        without replacing parts, but a fried machine is more seriously
        damaged.

frowney

        (Or "frowney face") See {emoticon}.

fry

        1. To fail.  Said especially of smoke-producing hardware
        failures.  More generally, to become non-working.  Usage:
        never said of software, only of hardware and humans.  See
        {fried}, {magic smoke}.

        2. To cause to fail; to {roach}, {toast}, or {hose} a piece of
        hardware.  Never used of software or humans, but compare
        {fried}.

FS

        1. <file system> {file system}.

        2. <character> {File Separator}.

fsck

        <operating system> file system check.  The {Unix} program that
        checks a {file system} for internal consistency and bad blocks
        etc. and can repair some faults.

        fsck is often used after a {crash} when the file system has
        been left in an inconsistent state, e.g. due to incomplete
        flushing of {buffers}.

        Used on {Usenet} {newsgroup} alt.sysadmin.recovery as
        substitute for "fuck" and became more main-stream after the
        {Communications Decency Act}.

        (1998-03-06)

FSF

        {Free Software Foundation}

FSK

        {Frequency Shift Keying}

FSL

        Formal Semantics Language.

        A language for {compiler} writing.

        ["A Formal Semantics for Computer Languages and its Application
        in a Compiler-Compiler", J.A. Feldman, CACM 9(1) (Jan 1966)].

        [Sammet 1969, p. 641].

        (1995-01-23)

FSM

        1. <theory> {Finite State Machine}.

        2. <networking> {FDDI Switching Module}.

        ({3Com} implements this device on its {LAN} switches).

        [What is it?]

        (1997-05-16)

FSP

        {File Service Protocol}

fsplit

        A tool to split up monolithic {Fortran} programs.

FT

        {fault tolerant}

FTAM

        File Transfer, Access, and Management: an application layer
        protocol for file transfer and remote manipulation (ISO 8571).

FTP

        {File Transfer Protocol}

FTP archive

        {archive site}

FTP by mail

        A service offered by {DEC} to allow people without {Internet}
        access to get copies of files which are available by
        {anonymous FTP}.  Send a message with just the word "help" in
        the body to <ftpmail@decwrl.dec.com>.

FTP server

        <networking> A network {server} program or computer which
        responds to requests for files via {FTP}.

        A busy {Internet} {archive site} may have one or more
        computers dedicated to running FTP server software.  These
        will typically have {hostnames} beginning with "ftp.",
        e.g. ftp.denet.dk.

        (1998-07-02)

FTP Software, Inc.

        <company> Developers of the original {PC/TCP} {Packet Driver}
        specification.

        Address: 26 Princess St. Wakefield, MA 01880-3004.  Telephone:
        +1 (617) 246 0900.

        (1994-12-05)

FTTP

        Do you mean {FTP} or {HTTP}?

FTX

        <operating system> {Stratus}' {Unix operating system}.

        (1998-07-06)

FUBAR

        1. (WWII military slang) Fucked up beyond all
        recognition (or repair).

        See {foobar}.

        2. <hardware> The Failed UniBus Address Register in a
        {VAX}.  A good example of how jargon can occasionally be snuck
        past the {suit}s.

        Larry Robinson <lrobins@indiana.edu> reports the following
        nonstandard use for FUBAR:

        One day somebody got mad at the {card reader} (or card eater
        that day) on our {Univac 3200}.  He taped a sign, "This thing
        is FUBAR", on the metal weight that sits on the stack of
        unread cards.  The sign stayed there for over a year.  One
        day, somebody said, "Don't forget to put the fubar on top of
        the stack".  It stuck!  We called that weight the fubar until
        they took away the machine.  The replacement card reader had
        two spring loaded card clamps, one for the feed and one for
        the return, and we called THOSE fubars until we dumped punch
        cards.

        Incidently, the way he taped the sign on the weight made up
        for the lack of a little nylon piece that was missing from it,
        and fixed the card reader.  That's why the sign stayed there.

        (1997-03-18)

FUD

        <jargon> /fuhd/ An acronym invented by {Gene Amdahl}
        after he left {IBM} to found his own company: "FUD is the
        fear, uncertainty, and doubt that {IBM} sales people instill
        in the minds of potential customers who might be considering
        [Amdahl] products."  The idea, of course, was to persuade them
        to go with safe IBM gear rather than with competitors'
        equipment.  This implicit coercion was traditionally
        accomplished by promising that Good Things would happen to
        people who stuck with IBM, but Dark Shadows loomed over the
        future of competitors' equipment or software.

        (1995-05-23)

fudge

        1. To perform in an incomplete but marginally acceptable way,
        particularly with respect to the writing of a program.  "I
        didn't feel like going through that pain and suffering, so I
        fudged it - I'll fix it later."

        2.  The resulting code.

fudge factor

        A value or parameter that is varied in an ad hoc way to
        produce the desired result.  The terms "tolerance" and {slop}
        are also used, though these usually indicate a one-sided
        leeway, such as a buffer that is made larger than necessary
        because one isn't sure exactly how large it needs to be, and
        it is better to waste a little space than to lose completely
        for not having enough.  A fudge factor, on the other hand, can
        often be tweaked in more than one direction.  A good example
        is the "fuzz" typically allowed in {floating-point}
        calculations: two numbers being compared for equality must be
        allowed to differ by a small amount; if that amount is too
        small, a computation may never terminate, while if it is too
        large, results will be needlessly inaccurate.  Fudge factors
        are frequently adjusted incorrectly by programmers who don't
        fully understand their import.  See also {coefficient of X}.

Fudgets

        <programming> (From "functional widgets") {Graphical user
        interface} {widgets} available as The Fudget library - a
        toolkit for concurrent programming of graphical user
        interfaces, {client/servers} and more written in {Haskell} by
        Thomas Hallgren <hallgren@cs.chalmers.se> and Magnus Carlsson
        <magnus@cs.chalmers.se>.

        Version: h9 1995-07-04 (Baastad Spring School Release).

        {Home (http://www.cs.chalmers.se/Fudgets/)}

        {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers)}

        (1996-03-17)

FUDGIT

        A double-precision multi-purpose fitting program by Thomas
        Koenig <ig25@rz.uni-karlsruhe.de>.  It can manipulate complete
        columns of numbers in the form of vector arithmetic.  FUDGIT
        is also an expression language {interpreter} understanding
        most of {C} {grammar} except pointers.  Morever, FUDGIT is a
        front end for any plotting program supporting commands from
        stdin, e.g. {Gnuplot}.

        Version 2.27 runs on {AIX}, {HP-UX}, {Linux}, {IRIX}, {NeXT},
        {SunOS}, {Ultrix}.

        {(ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/)}

        (1993-03-22)

FUD wars

        /fuhd worz/ Political posturing, intended to create {FUD},
        engaged in by hardware and software vendors ostensibly
        committed to standardisation but actually willing to fragment
        the market to protect their own shares.  The {Unix
        International} vs. {OSF} conflict is but one outstanding
        example.

        (1994-12-01)

Fuel-can

        A derogatory term for the {Atari Falcon}.

        (1994-12-22)

Fugue

        <language, music> A music language implemented in {Xlisp}.

        ["Fugue: A Functional Language for Sound Synthesis",
        R.B. Dannenberg et al, Computer 24(7):36-41 (Jul 1991)].

        (1994-12-01)

Fujitsu

        <company> A Japanese elecronics corporation.  It owns {ICL}.

        Home {USA (http://www.fujitsu.com/)}, {Japan
        (http://www.fujitsu.co.jp/index-e.html)}.

        (1995-03-14)

full-custom

        Design of {integrated circuit}s at the transistor or polygon
        level.  This is in contrast to the use of libraries of
        components.  Full-custom design requires considerable skill
        and experience and is usually only feasible for simple
        circuits, especially ones with much repetition, such as memory
        device, where a small saving in the size and power consumption
        of a component will yeild a large overall saving.

        (1994-12-01)

full-duplex

        <communications> (fdx) 1. A term used to describe a
        communications channel down which data can travel in both
        directions at once.

        2. An obsolete term for {remote echo}.

        Compare {simplex}, {half-duplex}.

        (1999-10-23)

full-duplex Switched Ethernet

        <networking> (FDSE) A {Switched Ethernet} link which can carry
        data in both directions simultaneously, doubling transmission
        capacity from the usual 10 to 20 megabits per second.

        (1996-06-20)

full laziness

        <functional programming> A transformation, described by
        Wadsworth in 1971, which ensures that subexpressions in a
        function body which do not depend on the function's arguments
        are only evaluated once.  E.g. each time the function

                f x = x + sqrt 4

        is applied, (sqrt 4) will be evaluated.  Since (sqrt 4) does
        not depend on x, we could transform this to:

                f x = x + sqrt4
                sqrt4 = sqrt 4

        We have replaced the dynamically created (sqrt 4) with a
        single shared constant which, in a {graph reduction} system,
        will be evaluated the first time it is needed and then updated
        with its value.

        See also {fully lazy lambda lifting}, {let floating}.

        (1994-11-09)

full-motion video

        (FMV) Any system used to deliver moving video images and sound
        on a computer.  Video images and sound are stored on disk;
        {compact disc} is preferred because of the amount of data
        required.  Some form of {video compression} is used to reduce
        the amount of data and to allow it to be read from disk
        quickly enough.  Compression can be relatively slow but
        decompression is done in {real-time} with the picture quality
        and {frame rate} varying with the processing power available,
        the size of the picture and whether it appears in a {window}
        or uses the whole screen.

        {Acorn Computers}' system is called {Replay} and {Apple
        Computer}'s is {QuickTime}.

        Compare {MPEG}, {H.261}.

        [IBM PC equivalent?  Do they all use compression?  Web page?]

        (1994-11-09)

full outer join

        {outer join}

fully associative cache

        A cache where data from any address can be stored in any cache
        location.  The whole address must be used as the tag.  All
        tags must be compared simultaneously (associatively) with the
        requested address and if one matches then its associated data
        is accessed.  This requires an associative memory to hold the
        tags which makes this form of cache more expensive.  It does
        however solve the problem of contention for cache locations
        ({cache conflict}) since a block need only be flushed when the
        whole cache is full and then the block to flush can be
        selected in a more efficient way.

        See also {direct mapped cache}, {set associative cache}.

Fully Automated Compiling Technique

        <language> (FACT, "Honeywell-800 Business Compiler") A
        pre-{COBOL} English-like business data processing language for
        the {Honeywell 800}, developed ca. 1959.

        [Sammet 1969, p. 327].

        (1994-12-01)

fully lazy lambda lifting

        John Hughes's optimisation of {lambda lifting} to give {full
        laziness}.  {Maximal free expression}s are shared to minimise
        the amount of recalculation.  Each inner sub-expression is
        replaced by a function of its maximal free expressions
        (expressions not containing any {bound variable}) applied to
        those expressions.  E.g.

                f = \ x . (\ y . (+) (sqrt x) y)

        ((+) (sqrt x)) is a maximal free expression in
        (\ y . (+) (sqrt x) y) so this inner {abstraction} is replaced
        with

                (\ g . \ y . g y) ((+) (sqrt x))

        Now, if a {partial application} of f is shared, the result of
        evaluating (sqrt x) will also be shared rather than
        re-evaluated on each application of f.  As Chin notes, the
        same benefit could be achieved without introducing the new
        {higher-order function}, g, if we just extracted out (sqrt x).

        This is similar to the {code motion} optimisation in
        {procedural language}s where constant expressions are moved
        outside a loop or procedure.

        (1994-12-01)

fully qualified domain name

        (FQDN) The full name of a system, consisting of its local
        {hostname} and its {domain} name.  For example, "venera" is a
        hostname and "venera.isi.edu" is an FQDN.  A FQDN should be
        sufficient to determine a unique {Internet address} for any
        host on the {Internet}.  The same naming scheme is also used
        for some hosts which are not on the Internet, but share the
        same name-space for {electronic mail} addressing.  A host
        which does not have a FQDN (which is not "{domainist}") must
        be addressed using a {bang path}.

        All {Internet} computers and most {UUCP} sites can now resolve
        FQDNs, thanks to a large amount of behind-the-scenes magic and
        {PD} software written since 1980 or so.

        See also {network, the}, {network address}.

        (1994-12-01)

fum

        [XEROX PARC]  At PARC, often the third of the standard
        {metasyntactic variable}s (after {foo} and {bar}).  Competes
        with {baz}, which is more common outside PARC.

Fun

        A {typed lambda-calculus}, similar to {SOL}[2].  "On
        Understanding Types, Data Abstractions and Polymorphism",
        L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985).

function

        1. <mathematics> (Or "map", "mapping") If D and C are sets
        (the domain and codomain) then a function f from D to C,
        normally written "f : D -> C" is a subset of D x C such that:

        1. For each d in D there exists some c in C such that (d,c) is
        an element of f.  I.e. the function is defined for every
        element of D.

        2. For each d in D, c1 and c2 in C, if both (d,c1) and (d,c2)
        are elements of f then c1 = c2.  I.e. the function is uniquely
        defined for every element of D.

        See also {image}, {inverse}, {partial function}.

        2. <programming> Computing usage derives from the mathematical
        term but is much less strict.  In programming (except in
        {functional programming}), a function may return different
        values each time it is called with the same argument values
        and may have {side effects}.

        A {procedure} is a function which returns no value but has
        only {side-effects}.  The {C} language, for example, has no
        procedures, only functions.  {ANSI C} even defines a {type},
        {void}, for the result of a function that has no result.

        (1996-09-01)

functional

        1. Working correctly.

        2. Pertaining to {functional programming}.

        3. {higher-order function}.

functional database

        <database, language> A {database} which uses a {functional
        language} as its {query language}.

        Databases would seem to be an inappropriate application for
        functional languages since, a {purely functional language}
        would have to return a new copy of the entire database every
        time (part of) it was updated.  To be practically {scalable},
        the update mechanism must clearly be {destructive} rather than
        functional; however it is quite feasible for the {query
        language} to be purely functional so long as the database is
        considered as an argument.

        One approach to the update problem would use a {monad} to
        encapsulate database access and ensure it was {single
        threaded}.  Alternative approaches have been suggested by
        Trinder, who suggests non-destructive updating with shared
        data structures, and Sutton who uses a variant of a Phil
        Wadler's {linear type} system.

        There are two main classes of functional database languages.
        The first is based upon {Backus}' {FP} language, of which
        {FQL} is probably the best known example.  {Adaplan} is a more
        recent language which falls into this category.

        More recently, people have been working on languages which are
        syntactically very similar to modern {functional programming
        language}s, but which also provide all of the features of a
        database language, e.g. bulk data structures which can be
        incrementally updated, type systems which can be incrementally
        updated, and all data persisting in a database.  Examples are
        {PFL} [Poulovassilis&Small, VLDB-91], and {Machiavelli} [Ohori
        et al, ACM SIGMOD Conference, 1998].

        {Query optimisation} is very important for database languages
        in general and the {referential transparency} of functional
        languages allows optimisations which would be harder to verify
        in presence of {side-effect}s.

        [Trinder, P., "Referentially transparent database languages",
        1989 Glasgow Workshop on Functional programming]

        [Breazu-Tannen et al., DBPL-91].

        [Poulovassilis, VLDB-94].

        (1995-05-09)

functional dependency

        <database> Given a relation R (in a {relational database}),
        attribute Y of R is functionally dependent on attribute X of R
        and X of R functionally determines Y of R (in symbols R.X ->
        R.Y) if and only if each X in R has associated with it
        precisely one Y in R (at any one time).  Attributes X and Y
        may be {composite}.

        This is very close to a {function} in the mathematical sense.

        (1997-09-01)

functionality

        <programming> Waffle for "{features}" or "function".  The
        capabilities or behaviours of a program, part of a program or
        system, seen as the sum of its {features}.  Roughly, "the
        things it can do".  Generally used in a comparitive sense,
        e.g. "The latest update adds some useful functionality".

        (1997-07-14)

functional language

        <language> A language that supports and encourages {functional
        programming}.

        (1995-11-08)

functional program

        <language> A program employing the {functional programming}
        approach or written in a {functional language}.

        (1995-11-07)

functional programming

        <programming> (FP) A program in a functional language consists
        of a set of (possibly {recursive}) {function} definitions and
        an expression whose value is output as the program's result.
        Functional languages are one kind of {declarative language}.
        They are based on the {typed lambda-calculus} with constants.
        There are no {side-effect}s to expression evaluation so an
        expression (e.g. a function applied to certain arguments) will
        always evaluate to the same value (if its evaluation
        terminates).  Furthermore, an expression can always be
        replaced by its value without changing the overall result
        ({referential transparency}).

        The order of evaluation of subexpressions is determined by the
        language's {evaluation strategy}.  In a {strict}
        ({call-by-value}) language this will specify that arguments
        are evaluated before applying a function whereas in a
        non-strict ({call-by-name}) language arguments are passed
        unevaluated.

        Programs written in a functional language are generally
        compact and elegant, but have tended, until recently, to run
        slowly and require a lot of memory.

        Examples of functional languages are {Clean}, {FP}, {Haskell},
        {Hope}, {LML}, {Miranda} and {SML}.  Many other languages such
        as {Lisp} have a subset which is {purely functional} but also
        contain non-functional constructs.

        See also {lazy evaluation}, {reduction}.

        {Lecture notes
        (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.ps)}
        or the same {in dvi-format
        (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.dvi)}.

        {FAQ
        (http://www.cs.nott.ac.uk/Department/Staff/gmh/faq.html)}.

        {SEL-HPC Article Archive
        (http://www.lpac.ac.uk/SEL-HPC/Articles/)}.

        (1999-01-08)

functional programming language

        <language> A language that supports and encourages {functional
        programming}.

        (1995-11-08)

functional requirements

        <specification> What a system should be able to do, the
        functions it should perform.

        This term is used at both the {user requirements} analysis and
        {software requirements} specifications phases in the {software
        life-cycle}.

        [When is a requirement not "functional"?]

        (1999-09-30)

functional specification

        <programming, project> A description of what a system (e.g. a
        piece of {software}) does or should do (but not how it should
        do it).  The functional specification is one of the inputs to
        the {design} process.

        See {IEEE}/{ANSI} Std. 610.12-1990.

        (1999-04-07)

functional testing

        <testing> (Or "black-box testing", "closed-box testing") The
        application of test data derived from the specified functional
        requirements without regard to the final program structure.

        (1996-05-15)

functional unit

        A subsystem of the {central processing unit} of a computer.
        E.g. {arithmetic and logic unit}, {memory address register},
        {barrel shifter}, {register file}.

        (1995-02-10)

function application

        A {function} applied to (some of) its {argument}s.  If it is
        not applied to all its argument then it is a "{partial
        application}".  Application is usually written in the form
        f(x) but some languages such as command line interpreters and
        many {functional language}s use {juxtaposition}: f x.  {Lisp}
        places the parentheses around the whole application: (f x).

function complete

        <programming> State of a {software} component or system such
        that each {function} described by the software's {functional
        specification} can be reached by at least one {functional
        path}, and attempts to operate as specified.

        (1999-04-07)

Function Graph Language

        (FGL) Used as the machine language for the AMPS (Applicative
        Multi-Processing System) proposed by Robert Keller, Gary
        Lindstrom and Suhas Patil at the University of Utah.

function key

        (From the {IBM 3720} terminal's Programmed Function Keys (PF
        keys)) One of a set of special keys on a computer or
        {terminal} keyboard which can be programmed so as to cause an
        {application program} to perform certain actions.

        Function keys on a terminal may either generate short fixed
        sequences of characters, often beginning with the {escape}
        character ({ASCII} 27), or the characters they generate may be
        configured by sending special character sequences to the the
        terminal.

        On a {microcomputer} keyboard, the function keys may generate
        a fixed, single byte code, outside the normal {ASCII} range,
        which is translated into some other configurable sequence by
        the keyboard {device driver} or interpreted directly by the
        {application program}.

        (1995-02-07)

Function Point Analysis

        <programming> (FPA) A standard metric for the relative size
        and complexity of a software system, originally developed by
        Alan Albrecht of {IBM} in the late 1970s.

        Functon points (FPs) can be used to estimate the relative size
        and complexity of software in the early stages of development
        - analysis and design.  The size is determined by identifying
        the components of the system as seen by the end-user: the
        inputs, outputs, inquiries, interfaces to other systems, and
        logical internal files.  The components are classified as
        simple, average, or complex.  All of these values are then
        scored and the total is expressed in Unadjusted FPs (UFPs).
        Complexity factors described by 14 general systems
        characteristics, such as reusability, performance, and
        complexity of processing can be used to weight the UFP.
        Factors are also weighted on a scale of 0 - not present, 1 -
        minor influence, to 5 - strong influence.  The result of these
        computations is a number that correlates to system size.

        Although the FP metric doesn't correspond to any actual
        physical attribute of a software system (such as {lines of
        code} or the number of subroutines) it is useful as a relative
        measure for comparing projects, measuring productivity, and
        estimating the amount a development effort and time needed for
        a project.

        See also {International Function Point Users Group}.

        (1996-05-16)

functor

        In {category theory}, a functor F is an operator on types.  F
        is also considered to be a {polymorphic} operator on functions
        with the type

                F : (a -> b) -> (F a -> F b).

        Functors are a generalisation of the function "{map}".  The
        type operator in this case takes a type T and returns type
        "list of T".  The map function takes a function and applies it
        to each element of a list.

        (1995-02-07)

funky

        Said of something that functions, but in a slightly strange,
        {kluge}y way.  It does the job and would be difficult to
        change, so its obvious non-optimality is left alone.  Often
        used to describe interfaces.  The more bugs something has that
        nobody has bothered to fix because workarounds are easier, the
        funkier it is.  {TECO} and {UUCP} are funky.  The {Intel}
        {i860}'s exception handling is extraordinarily funky.  Most
        standards acquire funkiness as they age.  "The new mailer is
        installed, but is still somewhat funky; if it bounces your
        mail for no reason, try resubmitting it."  "This {UART} is
        pretty funky.  The data ready line is active-high in interrupt
        mode and active-low in {DMA} mode."

FUNLOG

        Functional programming plus unification.  "Lazy" in the sense
        that expressions are reduced only if they are not unifiable.

        ["FUNLOG: A Computational Model Integrating Logic Programming
        and Functional Programming", P.A. Subrahmanyam et al, in Logic
        Programming: Functions, Relations and Equations, D. DeGroot et
        al eds, P-H 1986].

FunnelWeb

        A {literate-programming} tool by Ross Williams
        <ross@spam.adelaide.edu.au>.  It emphasises simplicity and
        reliability.  It provides a {macro} facility and assists in
        the production of typeset {documentation}.  It is independent
        of the input programming language.

        Posted to comp.sources.unix volume 26 under {CopyLeft}.  Runs
        on {Sun}, {Vax}, {Macintosh} and {IBM PC}.

        (1993-04-11)

funny money

        Notional units of computing time and/or storage handed to
        students at the beginning of a computer course; also called
        "play money" or "purple money" (in implicit opposition to real
        or "green" money).

        In New Zealand and Germany the odd usage "paper money" has
        been recorded; in Germany, the particularly amusing synonym
        "transfer ruble" commemorates the funny money used for trade
        between COMECON countries back when the Soviet Bloc still
        existed.

        When your funny money ran out, your account froze and you
        needed to go to a professor to get more.  Fortunately, the
        plunging cost of {time-sharing} cycles has made this less
        common.  The amounts allocated were almost invariably too
        small, even for the non-hackers who wanted to slide by with
        minimum work.  In extreme cases, the practice led to
        small-scale black markets in bootlegged computer accounts.  By
        extension, phantom money or quantity tickets of any kind used
        as a resource-allocation hack within a system.

furrfu

        <jargon> Written-only equivalent of "Sheesh!"; it is, in fact,
        "sheesh" modified by {rot13}.  Evolved in mid-1992 as a
        response to notably silly postings repeating urban myths on
        the {Usenet} {news:newsgroup alt.folklore.urban}, after some
        posters complained that "Sheesh!" as a response to {newbie}s
        was being overused.

        See also {FOAF}.

        (1995-10-25)

FUSE

        A {DEC} {software development environment} for {ULTRIX},
        offering an integrated toolkit for developing, testing,
        debugging and maintenance.

FUSION

        Software package supplied by Network Research Corporation
        claiming to connect various different configurations of LAN.

fusion

        <programming> A {program transformation} where a {composition}
        of two functions is replaced by in-lining them and combining
        their bodies.  E.g.

                f x = g (h x)   ==>     f x = g (2 * x)
                g x = x + 1             f x = 2 * x + 1
                h x = 2 * x

        This has the beneficial effect of reducing the number of
        function calls.  It can be especially useful where the
        intermediate result is a large data structure which can be
        eliminated.

        See also {vertical loop combination}.

        (1994-12-05)

FutureBasic

        <language> A {BASIC} compiler for the {Macintosh}.

        {Unofficial home (http://users.ids.net/~paumic/FutureBasic/)}.
        {Staz Software (http://www.stazsoftware.com/fbinfo.html)}.

        (1996-12-17)

futz

        <jargon> To waste time on non-productive activity.  Not
        normally used for game playing.

        (1995-03-27)

fuzzball

        A {DEC} {LSI-11} running a particular suite of homebrewed
        software written by Dave Mills and assorted co-conspirators,
        used in the early 1980s for {Internet} {protocol} testbedding
        and experimentation.  These were used as {NSFnet} {backbone}
        sites in its early 56KB-line days.  A few were still active on
        the {Internet} in early 1991, doing odd jobs such as network
        time service.

        (1994-12-05)

fuzzy computing

        {fuzzy logic}

fuzzy logic

        A superset of {Boolean logic} dealing with the concept of
        partial truth -- {truth value}s between "completely true" and
        "completely false".  It was introduced by Dr. Lotfi Zadeh of
        {UCB} in the 1960's as a means to model the uncertainty of
        {natural language}.

        Any specific theory may be generalised from a discrete (or
        "crisp") form to a continuous (fuzzy) form, e.g. "fuzzy
        calculus", "fuzzy differential equations" etc.  Fuzzy logic
        replaces Boolean truth values with degrees of truth which are
        very similar to probabilities except that they need not sum to
        one.  Instead of an assertion pred(X), meaning that X
        definitely has the property associated with {predicate}
        "pred", we have a truth function truth(pred(X)) which gives
        the degree of truth that X has that property.  We can combine
        such values using the standard definitions of fuzzy logic:

                truth(not x)   = 1.0 - truth(x)
                truth(x and y) = minimum (truth(x), truth(y))
                truth(x or y)  = maximum (truth(x), truth(y))

        (There are other possible definitions for "and" and "or",
        e.g. using sum and product).  If truth values are restricted to
        0 and 1 then these functions behave just like their Boolean
        counterparts.  This is known as the "extension principle".

        Just as a Boolean predicate asserts that its argument
        definitely belongs to some subset of all objects, a fuzzy
        predicate gives the degree of truth with which its argument
        belongs to a {fuzzy subset}.

        {Usenet} newsgroup: {news:comp.ai.fuzzy}.

        E-mail servers: <fuzzynet@aptronix.com>,
        <rnalib@its.bldrdoc.gov>, <fuzzy-server@til.com>.

        {(ftp://ftp.hiof.no/pub/Fuzzy)},
        {(ftp://ntia.its.bldrdoc.gov/pub/fuzzy)}.

        {FAQ
        (ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/fuzzy-logic)}.

        {James Brule, "Fuzzy systems - a tutorial", 1985
        (http://life.anu.edu.au/complex_systems/fuzzy.html)}.

        {STB Software Catalog
        (http://krakatoa.jsc.nasa.gov/stb/catalog.html)}, includes a
        few fuzzy tools.

        [H.J. Zimmerman, "Fuzzy Sets, Decision Making and Expert
        Systems", {Kluwer}, Dordrecht, 1987].

        ["Fuzzy Logic, State of the Art", Ed. R. Lowen, Marc Roubens,
        Theory and Decision Library, D: System theory, Knowledge
        Engineering and Problem Solving 12, {Kluwer}, Dordrecht, 1993,
        ISBN 0-7923-2324-6].

        (1995-02-21)

fuzzy subset

        In {fuzzy logic}, a fuzzy subset F of a set S is defined by a
        "membership function" which gives the degree of membership of
        each element of S belonging to F.

fweep

        ({WPI}) One step below a {gweep}, a person who uses the system
        solely to play games and use {electronic mail}.

        Compare {dweeb}, {twink}, {terminal junkie}, {tourist},
        {weenie}.

        (1995-01-31)

FWIW

        For what it's worth.

fx

        <networking> The {country code} for metropolitan France.

        Apprently not widely used.

        (1999-01-27)

FX-87

        Effects.  A {polymorphic} language based on {Scheme}, allowing
        {side effects} and {first-class} functions.  It attempts to
        integrate functional and {imperative} programming.
        Expressions have types, side effects (e.g. reading, writing or
        allocating) and regions (stating where the effects may occur).

        Versions: FX-89, {FX-90}.

        {(ftp://brokaw.lcs.mit.edu/)}

        ["The FX-87 Reference Manual", D.K. Gifford
        <gifford@lcs.mit.edu> et al, MIT/LCS/TR-407, Oct 1987].

        (1995-01-31)

FX-90

        A language with partial type and effect reconstruction and
        first-class {modules}.

        (1995-01-31)

FYA

        For your amusement.

FYI

        {For Your Information}

FYI4

        [Malkin, G., and A. Marine, "FYI on Questions and Answers:
        Answers to Commonly asked "New Internet User" Questions", FYI
        4, RFC 1325, Xylogics, SRI, May 1992.]

G

        1. <language> ["G: A Functional Language with Generic Abstract
        Data Types", P.A.G. Bailes, Computer Langs 12(2):69-94
        (1987)].

        2. <language> A language developed at {Oregon State
        University} in 1988 which combines {functional programming},
        {object-oriented programming}, relational, {imperative} and
        {logic programming} (you name it we got it).

        ["The Multiparadigm Language G", J. Placer, Computer Langs
        16:235-258(1991)].

        3. <unit> The abbreviated form of {giga-}.

        (1996-08-12)

<g>

        <chat> grin.  An alternative to {smiley}.

        (1998-01-18)

G2

        A {real-time} {expert system} from {Gensym Corporation}.

G3

        1. <protocol, compression> {Group 3} fax.

        2. <hardware, processor> {PowerPC G3}.

        (1998-09-10)

G4

        {Group 4}

GA

        {genetic algorithm}

ga

        <networking> The {country code} for Gabon.

        (1999-01-27)

Gabriel

        <language> A graphical {DSP} language for {simulation} and
        real systems.

        ["A Design Tool for Hardware and Software for Multiprocessor
        DSP Systems," E.A.  Lee, E. Goei, J. Bier & S. Bhattacharya,
        DSP Systems, Proc ISCAS-89, 1989].

        (1994-12-23)

gabriel

        /gay'bree-*l/ (After {Richard Gabriel}) An unnecessary (in the
        opinion of the opponent) stalling tactic, e.g. tying one's
        shoelaces or combing one's hair repeatedly, asking the time,
        etc.  Also used to refer to the perpetrator of such tactics.
        Also, "pulling a Gabriel", "Gabriel mode".

        (1999-10-12)

Gabriel, Richard

        {Richard Gabriel}

GADS

        Picture retrieval language.  "Integrated Geographical
        Databases: The GADS Experience", P.E. Mantey et al, in
        Database Techniques for Pictorial Applications, A. Blaser ed,
        pp.193-198.

Gaelic

        For automated test programs.  Used in military, essentially
        replaced by ATLAS.

gag

        Equivalent to {choke}, but connotes more disgust. "Hey, this
        is FORTRAN code.  No wonder the C compiler gagged."  See also
        {barf}.

GAIA

        GUI Application Interoperability Architecture.  An {OSF}
        project.

GAL

        <hardware> {Generic Array Logic}.

        (1995-12-09)

Galaxy

        <language> An extensible language in the vein of {EL/1} and
        {RCC}.

        ["Introduction to the Galaxy Language", Anne F. Beetem et al,
        IEEE Software 6(3):55-62].

        (1995-12-09)

Galileo

        ["Galileo: A Strongly Typed Interactive Conceptual Language",
        A.  Albano et al, ACM Trans Database Sys 10(2):230-260 (June
        1985)].

Gambit

        <language> A variant of {Scheme} R3.99 supporting the {future}
        construct of {Multilisp} by Marc Feeley
        <feeley@iro.umontreal.ca>.  Implementation includes optimising
        compilers for {Macintosh} (with Toolbox and built-in editor)
        and {Motorola} {680x0} {Unix} systems and {HP300}, {BBN}
        {GP100} and {NeXT}.  Version 2.0 conforms to the {IEEE}
        {Scheme} standard.

        Gambit used {PVM} as its intermediate language.

        {(ftp://acorn.cs.brandeis.edu/dist)},
        {(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff764/Gambit_Terp)}.
        {(ftp://ftp.iro.umontreal.ca/pub/parallele/gambit/)}.

        Mailing list: gambit@trex.umontreal.ca.

        (1998-02-10)

games

        <games> "The time you enjoy wasting is not time wasted." --
        {Bertrand Russell}.

        Here are some games-related pages on the {Web}: {Imperial
        Nomic (http://www.mit.edu:8001/people/achmed/fascist/)},
        {Thoth's games and recreations page
        (http://www.cis.ufl.edu/~thoth/library/recreation.html)},
        {Games Domain (http://wcl-rs.bham.ac.uk/GamesDomain)},
        {Zarf's List of Games on the Web
        (http://www.leftfoot.com/games.html)},
        {Dave's list of pointers to games resources
        (http://wcl-rs.bham.ac.uk/~djh/index.html)},
        {Collaborative Fiction
        (http://asylum.cid.com/fiction/fiction.html)}.

        See also {3DO}, {ADL}, {ADVENT}, {ADVSYS}, {alpha/beta
        pruning}, {Amiga}, {CHIP-8}, {Core Wars}, {DROOL}, {empire},
        {I see no X here.}, {Infocom}, {Inglish}, {initgame}, {life},
        {minimax}, {moria}, {mudhead}, {multi-user Dimension},
        {nethack}, {ogg}, {plugh}, {rogue}, {SPACEWAR}, {virtual
        reality}, {wizard mode}, {wumpus}, {xyzzy}, {ZIL}, {zorkmid}.

        See also {game theory}.

        (1996-03-03)

game tree

        <games> A {tree} representing contingencies in a game.  Each
        {node} in a game tree represents a possible position (e.g.,
        possible configuration of pieces on a chessboard) in the game,
        and each branching ("edge" in graph terms) represents a
        possible move.

        (1998-11-14)

GAMMA

        <language> 1. A language for matrices and generation of
        mathematical programming reports.

        ["GAMMA 3.3 for MPS/MPSX, IBM System:/360", Bonnor & Moore
        Assocs (Mar 1975)].

        2. A high-level parallel language.

        [Research Directions in High-Level Parallel Languages,
        LeMetayer ed, Springer 1992].

        (1994-11-29)

gamma correction

        <hardware> Adjustments applied during the display of a digital
        representation of colour on a screen in order to compensate
        for the fact that the {Cathode Ray Tubes} used in computer
        {monitors} (and televisions) produce a light intensity which
        is not proportional to the input {voltage}.  The light
        intensity is actually proportional to the input voltage raised
        to the inverse power of some constant, called gamma.  Its
        value varies from one display to another, but is usually
        around 2.5.

        Because it is more intuitive for the colour components (red,
        green and blue) to be varied linearly in the computer, the
        actual voltages sent to the monitor by the {display hardware}
        must be adjusted in order to make the colour component
        intensity on the screen proportional to the value stored in
        the computer's {display memory}.  This process is most easily
        achieved by a dedicated module in the display hardware which
        simply scales the outputs of the {display memory} before
        sending them to the {digital-to-analogue converters}.

        More expensive {graphics cards} and {workstations}
        (particularly those used for {CAD} applications) will have a
        gamma correction facility.

        In combination with the "{white-point}" gamma correction is
        used to achieve precise colour matching.

        {Robert Berger's explanation of monitor gamma
        (http://www.cs.cmu.edu/afs/cs.cmu.edu/user/rwb/www/gamma.html)}.

        [{"Digital Imaging in C and the World Wide Web", W. David
        Schwaderer (http://www.itknowledge.com/)}].

        (1999-02-01)

GAMS

        {Guide to Available Mathematical Software}

gamut

        The gamut of a {monitor} is the set of colours it can display.
        There are some colours which can't be made up of a mixture of
        red, green and blue phosphor emissions and so can't be
        displayed by any monitor.

        [Examples?]

        (1994-11-29)

GAN

        Generating and Analyzing Networks.  "GAN - A System for
        Generating and Analyzing Activity Networks", A. Schurmann,
        CACM 11(10) (Oct 1968).

GANDALF

        A software development environment from Carnegie Mellon
        University.

gang bang

        The use of large numbers of loosely coupled programmers in an
        attempt to wedge a great many features into a product in a
        short time.  Though there have been memorable gang bangs
        (e.g. that over-the-weekend assembler port mentioned in
        Steven Levy's "Hackers"), most are perpetrated by large
        companies trying to meet deadlines; the inevitable result is
        enormous buggy masses of code entirely lacking in
        {orthogonal}ity.  When market-driven managers make a list of
        all the features the competition has and assign one programmer
        to implement each, the probability of maintaining a coherent
        (or even functional) design goes infinitesimal.  See also
        {firefighting}, {Mongolian Hordes technique}, {Conway's Law}.

GAP

        <mathematics, tool> Groups Algorithms and Programming.

        A system for {symbolic mathematics} for computational discrete
        algebra, especially group theory, by Johannes Meier, Alice
        Niemeyer, Werner Nickel, and Martin Schonert of Aachen.  GAP
        was designed in 1986 and implemented 1987.  Version 2.4 was
        released in 1988 and version 3.1 in 1992.

        {Sun version (ftp://ftp.math.rwth-aachen.de/pub/gap)}

        ["GAP 3.3 Manual, M. Schonert et al, Lehrstuhl D Math, RWTH
        Aachen, 1993].

        (1995-04-12)

GAPLog

        General Amalgamated Programming with Logic.  {LOGPRO} group,
        Linkoping Sweden.  A restricted version of {constraint logic
        programming}, using {S-unification} but not restricted to a
        single domain.

        [Chapter in forthcoming Springer book on ESPRIT]

garbageabetical order

        <humour> 1. The result of using an {insertion} sort to merge
        data into an unsorted list.

        2. The state of any file or list that is supposed to be
        sorted, but is not.

        (1997-02-11)

garbage collect

        {garbage collection}

garbage collection

        <programming> (GC) The process by which dynamically allocated
        storage is reclaimed during the execution of a program.  The
        term usually refers to automatic periodic storage reclamation
        by the garbage collector (part of the {run-time system}), as
        opposed to explicit code to free specific blocks of memory.

        Automatic garbage collection is usually triggered during
        memory allocation when the amount free memory falls below some
        threshold or after a certain number of allocations.  Normal
        execution is suspended and the garbage collector is run.
        There are many variations on this basic scheme.

        Languages like {Lisp} represent expressions as {graphs} built
        from {cells} which contain pointers and data.  These languages
        use automatic {dynamic storage allocation} to build
        expressions.  During the evaluation of an expression it is
        necessary to reclaim space which is used by subexpressions but
        which is no longer pointed to by anything.  This reclaimed
        memory is returned to the free memory pool for subsequent
        reallocation.

        Without garbage collection the program's memory requirements
        would increase monotonically throughout execution, possibly
        exceeding system limits on {virtual memory} size.

        The three main methods are {mark-sweep garbage collection},
        {reference counting} and {copying garbage collection}.

        See also the {AI koan} about garbage collection.

        (1997-08-25)

Gargoyle

        A language for compiler writing.

        [J.V. Garwick, CACM 7(1):16-20, (Jan 1964)].

        (1994-11-04)

Garnet

        1. A graphical object editor and {Macintosh} environment.

        2. A user interface development environment for {Common Lisp}
        and {X11} from The Garnet project team.  It helps you create
        graphical, interactive user interfaces.

        Version 2.2 includes the following: a custom {object-oriented
        programming} system which uses a {prototype-instance model}.
        automatic {constraint} maintenance allowing properties of
        objects to depend on properties of other objects and be
        automatically re-evaluated when the other objects change.  The
        constraints can be arbitrary Lisp expressions.  Built-in,
        high-level input event handling.  Support for {gesture
        recognition}.  {Widget}s for multi-font, multi-line,
        mouse-driven text editing.  Optional automatic layout of
        application data into lists, tables, trees or graphs.
        Automatic generation of {PostScript} for printing.  Support
        for large-scale applications and data {visualisation}.

        Also supplied are: two complete widget sets, one with a
        {Motif} {look and feel} implemented in {Lisp} and one with a
        custom {look and feel}.  Interactive design tools for creating
        parts of the interface without writing code: Gilt interface
        builder for creating {dialog box}es.  Lapidary interactive
        tool for creating new {widget}s and for drawing
        application-specific objects.  C32 {spreadsheet} system for
        specifying complex {constraint}s.

        Not yet available: Jade automatic dialog box creation system.
        Marquise interactive tool for specifying behaviours.

        {(ftp://a.gp.cs.cmu.edu/usr/garnet/garnet)}.

        (1999-07-02)

GARP

        A graphical language for {concurrent} programming.

        ["Visual Concurrent Programmint in GARP", S.K. Goering er al,
        PARLE '89 v.II, LNCS 366, pp. 165-180].

        (1994-11-03)

garply

        /gar'plee/ A {metasyntactic variable} like {foo}, once popular
        among {SAIL} hackers.

        (1994-11-03)

Gartner Group

        <company> One of the biggest IT industry research firms.

        Address: Connecticut, USA.

        [URL?]

        (1997-09-30)

gas

        {GNU assembler}

GASP

        {Graph Algorithm and Software Package}

gas plasma display

        <electronics> A type of display containing super-energised
        neon gas, used mostly in flat {monitor} and television
        {screens}.  Each {pixel} has a {transistor} that controls its
        colour and brightness.

        {Plasma
        (http://www.kipinet.com/mmp/mmp_apr96/dep_techwatch.html)}.
        {Flat Screen Technology
        (http://www.montegonet.com/plasma.html)}.  {More about Gas
        Plasma (http://advancedplasma.com/whatis.html)}.

        [How does it work?]

        (1998-04-30)

GAT

        Generalized Algebraic Translator.  Improved version of IT.  On
        IBM 650 RAMAC.

        [Sammet 1969, p. 142].

GATE

        GAT Extended?  Based on {IT}.

        [Sammet 1969, p. 139].

gate

        <hardware> A low-level {digital} logic component.  Gates
        perform {Boolean} {functions} (e.g. {AND}, {NOT}), store
        {bit}s of data (e.g. a {flip-flop}), and connect and
        disconnect various parts of the overall circuit to control the
        flow of data ({tri-state} buffer).

        In a {CPU}, the term applies particularly to the buffers that
        route data between the various {functional units}.  Each gate
        allows data to flow from one unit to another or enables data
        from one output onto a certain {bus}.

        (1999-09-02)

gated

        /gayt-dee/ Gate daemon.

        A program which supports multiple routing {protocol}s and
        protocol families.  It may be used for routing, and makes an
        effective {platform} for routing {protocol} research.

        {(ftp://gated.cornell.edu)}

        See also {Exterior Gateway Protocol}, {Open Shortest Path
        First}, {Routing Information Protocol}, {routed}.

        (1994-12-07)

Gates

        {Bill Gates}

gateway

        1. <networking> {protocol converter}.

        2. <networking> This term was previously used for a {router}
        or other kind of {internetworking} device but this use is now
        deprecated.  By this definition, a {router} is a layer 3
        ({network layer}) gateway, and a {mail gateway} is a layer 7
        ({application layer}) gateway.

        3. <hypertext> An interface between some external source of
        information and a {World-Wide Web} {server}.  {Common Gateway
        Interface} is a {standard} for such interfaces.

        (1996-03-07)

Gateway 2000

        <company> One of the lagest US manufacturers of {IBM
        compatibles}, founded by CEO Ted Waitt in September 1985, in
        Sioux City, Iowa.  In 1990 the company moved to North Sioux
        City, South Dakota.

        In August 1994, quarterly profits were $4 million on sales of
        $617 million.  Sales for the first quarter of 1997 were $1.42
        billion.

        On 1997-05-15 Gateway bought the {Amiga} brand.

        {Home (http://www.gw2k.com/)}.

        (1998-07-30)

Gauss

        1. <person> {Carl Friedrich Gauss}

        2. <statistics> Gaussian distribution.

        See {normal distribution}.

        3. <unit> The unit of magnetic field strength. 1 gauss = 1
        Maxwell / cm^2.

        A good loudspeaker coil magnet flux density is of the order of
        10 000 gauss.

        (1995-03-18)

Gaussian distribution

        <statistics> {normal distribution}.

gawk

        {GNU} {awk}.  Gawk is a superset of standard awk and includes
        some {Plan 9} features.

        Version 2.15.3 by David Trueman <david@cs.dal.ca> and Arnold
        Robbins <arnold@cc.gatech.edu> is actively developed.  It has
        been ported to {Unix}, {MS-DOS}, {Macintosh} and {Archimedes}.

        Available by {FTP} from your nearest {GNU archive site} or
        {(ftp://prep.ai.mit.edu/pub/gnu/)}, {Mac version
        (ftp://archive.umich.edu/mac/utilities/developerhelps/macgawk2.11.cpt.h
qx)}.

        (1993-11-08)

GB

        <unit> {gigabytes} or {gigabits} - see {MB}.  Giga stands for
        10^9 - a US billion, or in computing for 2^30.

        The text of a thirty volume encyclopaedia would require about
        one gigabyte of {ASCII} storage.

        (1997-03-27)

Gb

        <unit> Gigabit.  10^9 {bit}s.  Might also be wrongly used for
        {gigabyte} ({GB}).

        (1997-03-27)

gb

        <networking> (Great Britain) A {country code} for United
        Kingdom.  "{uk}" is generally used instead.

        (1999-01-27)

g-bell

        {bell}

GBIP

        {General Purpose Interface Bus}

GBML

        {Genetics Based Machine Learning}

gbps

        {gigabits per second}

GC

        1. {garbage collection}.

        2. A storage allocator with {garbage collection} by
        Hans-J. Boehm <boehm@parc.xerox.com> and Alan J. Demers.  Gc
        is a plug-in replacement for {C}'s {malloc}.  Since the
        collector does not require pointers to be tagged, it does not
        attempt to ensure that all inaccessible storage is reclaimed.

        Version 3.4 has been ported to {Sun-3}, {Sun-4}, {Vax}/{BSD},
        {Ultrix}, {Intel 80386}/{Unix}, {SGI}, {Alpha}/{OSF/1},
        {Sequent} (single threaded), {Encore} (single threaded),
        {RS/600}, {HP-UX}, {Sony News}, {A/UX}, {Amiga}, {NeXT}.

        {(ftp://parcftp.xerox.com/pub/russell/gc3.4.tar.Z)}

        (1993-11-05)

GCC

        The {GNU} {C} {compiler} by {Richard Stallman} et al.  A very
        high quality, very portable compiler for {C}, {C++} and
        {Objective C}.  The compiler is designed to support multiple
        {front-end}s and multiple {back-end}s by translating first
        into {Register Transfer Language} and from there into
        {assembly code} for the target architecture.  Front ends for
        {Ada}, {Pascal} and {Fortran} are under development.

        GNU C is a superset of {K&R C} and {ANSI C}.  The extensions
        include compound statement within an expression, pointers to
        labels, local labels, nested functions, {typeof} operator,
        compound and conditional expressions and casts allowed as
        lvalues, long long ints, {array}s of variable length, {macro}s
        with variable number of arguments, nonconstant initialisers,
        constructor expressions, labelled elements in initialisers,
        case ranges, variable attributes, {global register variable}s.

        Version: 2.5.7.  Distributed under {GNU} {General Public
        License}.  Ported to {3b1}, {AMD 29k}, {AIX385}, {DEC Alpha},
        {Altos3068}, {Amix}, {ARM}, {Convex}, {CRDS}, {Elxsi},
        {FX2800}, {FX80}, {Genix}, {HP320}, {Clipper}, {Intel 80386} -
        {MS-DOS}, {ISC}, {SCO}, {SysV.3}, {SysV.4}, {Mach}, {BSD},
        {Linux}, {MS Windows}, {OS/2} - {Iris}, {i860}, {i960},
        {Irix4}, {68000}, {Motorola m88k} {SvsV.3}, {MIPS}-news,
        {mot3300}, {NeXT}, {NS32K}, {NWS3250}-v.4, {HP-PA}, {PC532},
        {Plexus}, {Pyramid}, {ROMP}, {RS/6000}, {SPARC}-{SunOs},
        {SPARC}-{Solaris2}, {SPARC}-{SysV}.4, {SPUR}, {Sun386},
        {Tahoe}, {TOW}, {Umpis}, {VAX}-{VMS}, {VAX}-{BSD}, {WE32K},
        {Hitachi}-{SH}, {Hitachi}-{8300}.

        {dsp56k-gcc} is {Motorola}'s port to the {Motorola}
        {DSP56000}.

        {FTP} gcc-2.X.X.tar.gz from your nearest {GNU archive site}.
        {MS-DOS (ftp://oak.oakland.edu/pub/msdos/djgpp/)}.  Mailing
        list: gnu.gcc.help.  E-mail: gnu.gcc.bug (bug reports),
        gnu.gcc.announce (announcements).

        ["Using and Porting GNU CC", R.M. Stallman, 1992-12-16].

        (1993-11-27)

GCL

        General Control Language.  A portable job control language.

        ["A General Control Interface for Satellite Systems",
        R.J. Dakin in Command Languages, C. Unger ed, N-H 1973].

G-Code

        1. Johnsson & Augustsson, Chalmers Inst Tech.  Intermediate
        language used by the G-machine, an implementation of graph
        reduction based on supercombinators.  "Efficient Compilation
        of Lazy Evaluation", T. Johnsson, SIGPLAN Notices 19(6):58-69
        (June 1984).

        2. A machine-like language for the representation and
        interpretation of attributed grammars.  Used as an
        intermediate language by the Coco compiler generator.  "A
        Compiler Generator for Microcomputers", P. Rechenberg et al,
        P-H 1989.

GCOS

        <operating system> /jee'kohs/ An {operating system} developed
        by {General Electric} from 1962; originally called GECOS (the
        General Electric Comprehensive Operating System).

        The GECOS-II operating system was developed by {General
        Electric} for the 36-bit {GE-635} in 1962-1964.  Contrary to
        rumour, GECOS was not cloned from {System/360} [{DOS/360}?] -
        the GE-635 architecture was very different from the {IBM 360}
        and GECOS was more ambitious than DOS/360.

        GE Information Service Divsion developed a large special
        multi-computer system that was not publicised because they did
        not wish {time sharing} customers to challenge their bills.
        Although GE ISD was marketing {DTSS} - the first commercial
        time sharing system - GE Computer Division had no license from
        Dartmouth and GE-ISD to market it to external customers, so
        they designed a time-sharing system to sell as a standard part
        of GECOS-III, which replaced GECOS-II in 1967.  GECOS TSS was
        more general purpose than DTSS, it was more a programmer's
        tool (program editing, e-mail on a single system) than a BASIC
        TSS.

        The {GE-645}, a modified 635 built by the same people, was
        selected by {MIT} and {Bell} for the {Multics} project.
        Multics' infancy was as painful as any infancy.  Bell pulled
        out in 1969 and later produced {Unix}.

        After the buy-out of GE's computer division by {Honeywell},
        GECOS-III was renamed GCOS-3 (General Comprehensive Operating
        System).  Other OS groups at Honeywell began referring to it
        as "God's Chosen Operating System", allegedly in reaction to
        the GCOS crowd's uninformed and snotty attitude about the
        superiority of their product.  [Can anyone confirm this?]
        GCOS won and this led in the orphaning and eventual death of
        Honeywell {Multics}.

        Honeywell also decided to launch a new product line called
        Level64, and later DPS-7.  It was decided to mainatin, at
        least temporarily, the 36-bit machine as top of the line,
        because GCOS-3 was so successfull in the 1970s.  The plan in
        1972-1973 was that GCOS-3 and Multics should converge.  This
        plan was killed by Honeywell management in 1973 for lack of
        resources and the inability of Multics, lacking {databases}
        and {transaction processing}, to act as a business operating
        system without a substantial reinvestment.

        The name "GCOS" was extended to all Honeywell-marketed product
        lines and GCOS-64, a completely different 32-bit operating
        system, significanctly inspired by Multics, was designed in
        France and Boston.  GCOS-62, another different 32-bit low-end
        DOS level was designed in Italy.  GCOS-61 represented a new
        version of a small system made in France and the new DPS-6
        16-bit {minicomputer} line got GCOS-6.

        When the intended merge between GCOS-3 and Multics failed, the
        Phoenix designers had in mind a big upgrade of the
        architecture to introduce {segmentation} and {capabilities}.
        GCOS-3 was renamed GCOS-8, well before it started to use the
        new features which were introduced in next generation
        hardware.

        The GCOS licenses were sold to the Japanese companies {NEC}
        and {Toshiba} who developed the Honeywell products, including
        GCOS, much further, surpassing the {IBM 3090} and {IBM 390}.

        When Honeywell decided in 1984 to get its top of the range
        machines from NEC, they considered running Multics on them but
        the Multics market was considered too small.  Due to the
        difficulty of porting the ancient Multics code they considered
        modifying the NEC hardware to support the Multics compilers.

        GCOS3 featured a good {Codasyl} {database} called IDS
        (Integrated Data Store) that was the model for the more
        successful {IDMS}.

        Several versions of transaction processing were designed for
        GCOS-3 and GCOS-8.  An early attempt at TP for GCOS-3, not
        taken up in Europe, assumed that, as in {Unix}, a new process
        should be started to handle each transaction.  IBM customers
        required a more efficient model where multiplexed {threads}
        wait for messages and can share resources.  Those features
        were implemented as subsystems.

        GCOS-3 soon acquired a proper {TP monitor} called Transaction
        Driven System (TDS).  TDS was essentially a Honeywell
        development.  It later evolved into TP8 on GCOS-8.  TDS and
        its developments were commercially successful and predated IBM
        {CICS}, which had a very similar architecture.

        GCOS-6 and GCOS-4 (ex-GCOS-62) were superseded by {Motorola
        68000}-based {minicomputers} running {Unix} and the product
        lines were discontinued.

        In the late 1980s Bull took over Honeywell and Bull's
        management choose Unix, probably with the intent to move out
        of hardware into {middleware}.  Bull killed the Boston
        proposal to port Multics to a platform derived from DPS-6.
        Very few customers rushed to convert from GCOS to Unix and new
        machines (of CMOS technology) are still to be introduced in
        1997 with GCOS-8.  GCOS played a major role in keeping
        Honeywell a dismal also-ran in the {mainframe} market.

        Some early Unix systems at {Bell Labs} used GCOS machines for
        print spooling and various other services.  The field added to
        "/etc/passwd" to carry GCOS ID information was called the
        "{GECOS field}" and survives today as the "pw_gecos" member
        used for the user's full name and other human-ID information.

        (1998-04-23)

GCR

        {Group Code Recording}

GCT

        <programming, tool> A {test-coverage} tool by Brian Marick
        <marick@testing.com>, based on {GNU C}.  Version 1.4 was
        ported to {Sun3}, {Sun4}, {RS/6000}, {68000}, {88000},
        {HP-PA}, {IBM 3090}, {Ultrix}, {Convex}, {SCO} but not
        {Linux}, {Solaris}, or {Microsoft Windows}.

        Commercial support is available from the author (+1 217 351
        7228).

        {(ftp://cs.uiuc.edu/pub/testing/gct.file/)}.

        (1999-07-08)

gd

        <networking> The {country code} for Grenada.

        (1999-01-27)

GDB

        {GNU} debugger.  The {FSF}'s {symbolic debugger} for {C},
        {C++} and other languages.  Developed by many people but most
        recently Fred Fish <fnf@cygnus.com>, Stu Grossman
        <grossman@cygnus.com> and John Gilmore <gnu@cygnus.com> all of
        {Cygnus} Support.  GDB fills the same niche as {dbx}.
        Programs must be compiled to include debugging symbols.

        Version 4.11.  Distributed under {GNU} {CopyLeft}.  It runs on
        most {Unix} variants, {VMS}, {VXWorks}, {Amiga} and {MS-DOS}.

        FTP gdb-*.tar.[zZ] from a {GNU archive site}.
        E-mail: <bug-gdb@prep.ai.mit.edu> (bug reports).

        (1993-10-29)

GDBPSK

        {Gaussian Differential Binary Phase Shift Keying}

Gdel, Kurt

        {Kurt Gdel}

GDI

        {Graphic Display Interface}

GDMO

        Guidelines for the Definition of Managed Objects.

        A standard (ISO/IEC 10165-4) for defining data models on ASN.1

GDPL

        Generalized Distributed Programming Language.  "GDPL - A
        Generalized Distributed Programming Language", K. Ng et al,
        Proc 4th Intl Conf Distrib Comp Sys, IEEE 1984, pp.69-78.

ge

        <networking> The {country code} for Georgia.

        (1999-01-27)

GEA

        Graph Extended ALGOL.  Extension of ALGOL 60 for graph
        manipulation, on UNIVAC 1108.  "A Language for Treating
        Graphs", S. Crespi-Reghizzi et al, CACM 13(5) (May 1970).

GEANT

        A simulation, tracking and drawing package for HEP.

GECOM

        <language> A language for the {GE-255} series, like {COBOL}
        with some {ALGOL} features added, in use around 1964-5.  GECOM
        included many of the early COBOL constructs including {report
        writer} and {TABSOL} (programming by {truth table}).  Another
        (planned but unimplemented?) component was {FRINGE}.

        [Sammet 1969, p. 329].

        [Dates?]

        (1996-09-15)

GECOS

        {GCOS}

Gedanken

        John Reynolds, 1970.  "GEDANKEN - A Simple Typeless Language
        Based on the Principle of Completeness and the Reference
        Concept", J.C.  Reynolds, CACM 13(5):308-319 (May 1970).

gedanken

        /g*-dahn'kn/ Ungrounded; impractical; not well-thought-out;
        untried; untested.

        "Gedanken" is a German word for "thought".  A thought
        experiment is one you carry out in your head.  In physics, the
        term "gedanken experiment" is used to refer to an experiment
        that is impractical to carry out, but useful to consider
        because it can be reasoned about theoretically.  (A classic
        gedanken experiment of relativity theory involves thinking
        about a man in an elevator accelerating through space.)
        Gedanken experiments are very useful in physics, but must be
        used with care.  It's too easy to idealise away some important
        aspect of the real world in constructing the "apparatus".

        Among hackers, accordingly, the word has a pejorative
        connotation.  It is typically used of a project, especially
        one in artificial intelligence research, that is written up in
        grand detail (typically as a Ph.D.  thesis) without ever being
        implemented to any great extent.  Such a project is usually
        perpetrated by people who aren't very good hackers or find
        programming distasteful or are just in a hurry.  A "gedanken
        thesis" is usually marked by an obvious lack of intuition
        about what is programmable and what is not, and about what
        does and does not constitute a clear specification of an
        algorithm.  See also {AI-complete}, {DWIM}.

geef

        (Ostensibly from "gefingerpoken") {mung}.

        See also {blinkenlights}.

        (1995-01-18)

geek

        {computer geek}

geek out

        To temporarily enter techno-nerd mode while in a non-hackish
        context, for example at parties held near computer equipment.
        Especially used when you need to do or say something highly
        technical and don't have time to explain: "Pardon me while I
        geek out for a moment."

        See {computer geek}, {propeller head}.

        (1995-01-18)

GEI

        A German software engineering company.

GE Information Services

        <networking, company> One of the leading on-line services,
        started on 1st October 1985, providing subscribers with
        hundreds of special interest areas, computer hardware and
        software support, award-winning multi-player games, the most
        software files in the industry (over 200 000), worldwide news,
        sports updates, business news, investment strategies, and
        {Internet} {electronic mail} and fax (GE Mail).  Interactive
        conversations (Chat Lines) and {bulletin board}s (Round
        Tables) with associated software archives are also provided.

        GEnie databases (through the ARTIST gateway) allow users to
        search the full text of thousands of publications, including
        Dun & Bradstreet Company Profiles; a GEnie NewsStand with more
        than 900 newspapers, magazines, and newsletters; a Reference
        Center with information ranging from Agriculture to World
        History; the latest in medical information from MEDLINE; and
        patent and trademark registrations.

        {Home (http://www.genie.com/)}.  {Shopping 2000
        (http://www.shopping2000.com/shopping2000/genie/)}.

        Telephone: +1 (800) 638 9636.

        TDD: +1 (800) 238 9172.

        E-mail: <info@genie.geis.com>.

        [Connection with: GE Information Services, Inc., a division of
        General Electric Company, Headquarters: Rockville, Maryland,
        USA?]

        (1995-04-13)

GEM

        <operating system> One of the first commercially available
        {GUI}s.  Borrowing heavily from the {Macintosh} {WIMP}-style
        interface it was available for both the {IBM} compatible
        market (being packaged with {Amstrad}'s original {PC} series)
        and more successfully for the {Atari} ST range.  The PC
        version was produced by {Digital Research} (more famous for
        {DR-DOS}, their {MS-DOS} clone), and was not developed very
        far.  The Atari version, however, continued to be developed
        until the early 1990s and the later versions supported 24-bit
        colour modes, full colour {icons} and a nice looking sculpted
        3D interface.

        (1997-01-10)

gen

        {generate}

gender mender

        <hardware> (Or "gender bender", "gender blender", "sex
        changer", and even "homosexual adaptor") A cable connector
        shell with either two male or two female connectors on it,
        used to correct the mismatches that result when some {loser}
        didn't understand the {RS-232C} specification and the
        distinction between {DTE} and {DCE}.  Used especially for
        RS-232C parts in either the original {D-25} or the {IBM PC}'s
        {D-9} connector.

        There appears to be some confusion as to whether a "male
        homosexual adaptor" has pins on both sides (is doubly male) or
        sockets on both sides (connects two males).

        (1995-04-16)

Gene Amdahl

        <person> A former {IBM} engineer who founded {Amdahl
        Corporation}.

        (1995-05-23)

General Electric Comprehensive Operating System

        {GCOS}

General Magic

        A software company based in Mountain View, California.
        Products released in 1994 after four years in development
        include: {Telescript} - a communications-oriented programming
        language; {Magic Cap} - an {OOPS} designed for {PDA}s; and a
        new, third generation {GUI}.  {Motorola}'s {Envoy}, due for
        release in the third quarter of 1994, will use {Magic Cap} as
        its {OS}.

        What {PostScript} did for cross-{platform}, device-independent
        documents, Telescript aims to do for cross-{platform},
        network-independent messaging.  Telescript protects
        programmers from many of the complexities of network
        protocols.

        Competitors for Magic Cap include {Microsoft}'s {Windows for
        Pens}/{Winpad}, {PenPoint}, {Apple Computer}'s {Newton
        Intelligence} and {GEOS} by {GeoWorks}.

        {Home (http://www.genmagic.com/)}

        (1995-02-23)

General Packet Radio Service

        <communications> (GPRS) A {GSM} data transmission technique
        that does not set up a continuous channel from a portable
        terminal for the transmission and reception of data, but
        transmits and receives data in {packets}.  It makes very
        efficient use of available radio spectrum, and users pay only
        for the volume of data sent and received.

        See also: {packet radio}.

        (1999-09-12)

General Protection Failure

        (GPF, or General Protection Fault) An addressing error, caught
        by the processor's {memory protection} hardware, that cannot
        be attributed to any expected condition such as a {page
        fault}.

        (1995-03-28)

General Protection Fault

        {General Protection Failure}

General Public Licence

        <spelling> It's spelled "{General Public License}".

        (In the UK, "licence" is a noun and "license" is a verb (like
        "advice"/"advise") but in the US both are spelled "license").

        (1995-05-12)

General Public License

        <legal> (GPL, note US spelling) The licence applied to most
        {software} from the {Free Software Foundation} and the {GNU}
        project and other authors who choose to use it.

        The licences for most software are designed to prevent users
        from sharing or changing it.  By contrast, the GNU General
        Public License is intended to guarantee the freedom to share
        and change {free software} - to make sure the software is free
        for all its users.  The GPL is designed to make sure that
        anyone can distribute copies of free software (and charge for
        this service if they wish); that they receive source code or
        can get it if they want; that they can change the software or
        use pieces of it in new free programs; and that they know they
        can do these things.  The GPL forbids anyone to deny others
        these rights or to ask them to surrender the rights.  These
        restrictions translate to certain responsibilities for those
        who distribute copies of the software or modify it.

        See also {General Public Virus}.

        (1994-10-27)

General Public Virus

        <software, legal> A pejorative name for some versions of the
        {GNU} project {copyleft} or {General Public License} (GPL),
        which requires that any tools or {application programs}
        incorporating copylefted code must be source-distributed on
        the same terms as GNU code.  Thus it is alleged that the
        copyleft "infects" software generated with GNU tools, which
        may in turn infect other software that reuses any of its code.

        {Copyright} law limits the scope of the GPL to "programs
        textually incorporating significant amounts of GNU code" so
        GPL is only passed on if actual GNU source is transmitted.
        This used to be the case with the {Bison} {parser} skeleton
        until its licence was fixed.

        {(http://org.gnu.de/manual/bison/html_chapter/bison_2.html#SEC2)}.

        (1999-07-14)

General Purpose Graphic Language

        ["A General Purpose Graphic Language", H.E. Kulsrud, CACM
        11(4) (Apr 1968)].

General Purpose Interface Bus

        {IEEE 488}

General Purpose Language

        (GPL) An {ALGOL 60} variant with user-definable types and
        operators.

        [Sammet 1969, p. 195].

        ["The GPL Language", J.V. Garwick et al, TER-05, CDC, Palo
        Alto 1969].

General Purpose Macro-generator

        <language> (GPM) An early text-processing language similar to
        {TRAC}, implemented on the {Atlas 2}.

        ["A General Purpose Macrogenerator", C. Strachey, Computer J
        8(3):225-241, Oct 1965].

        [Was this {Christopher Strachey}?]

        (1998-06-29)

General Recursion Theorem

        <mathematics> {Cantor}'s {theorem}, originally stated for
        {ordinal}s, which extends {inductive} proof to {recursive}
        construction.  The proof is by pasting together "attempts"
        (partial solutions).

        [Better explanation?]

        (1995-06-15)

generate

        To produce something according to an {algorithm} or program or
        set of rules, or as a (possibly unintended) {side effect} of
        the execution of an algorithm or program.

        The opposite of {parse}.

        (1995-06-15)

generation

        An attempt to classify the degree of sophistication of
        programming languages.

        See {First generation language} -- {Fifth generation
        language}.

        (1995-06-15)

Generic Array Logic

        <hardware, integrated circuit> (GAL) A newer kind of
        {Programmable Array Logic} based on {EEPROM} storage cells,
        been pioneered by {Lattice}.  GALs can be erased and
        reprogrammed and usually replace a whole set of different PALs
        (hence the name).

        (1995-12-09)

Generic Expert System Tool

        <artificial intelligence> (GEST) An {expert system shell} for
        {Symbolics} {Lisp machine}, with {frames}, {forward chaining},
        {backward chaining} and {fuzzy logic}; written by John
        Gilmore(?)  at GA Tech.

        Current version as of 1995-04-16: 4.0.

        {(ftp://ftp.gatech.edu/pub/ai/gest.tar.Z)}.

        (1995-04-16)

genericity

        <programming> The possibility for a language to provided
        parameterised {modules} or types.  E.g. List(of:Integer) or
        List(of:People).

        (1996-05-19)

generic markup

        <text> In computerised document preparation, a method of
        adding information to the text indicating the logical
        components of a document, such as paragraphs, headers or
        footnotes.  {SGML} is an example of such a system.  Specific
        instructions for layout of the text on the page do not appear
        in the markup.

        (1996-05-19)

generic programming

        <programming> A programming technique which aims to make
        programs more adaptable by making them more general.  Generic
        programs often embody non-traditional kinds of {polymorphism};
        ordinary programs are obtained from them by suitably
        instantiating their parameters.  In contrast with normal
        programs, the parameters of a generic programs are often quite
        rich in structure.  For example they may be other programs,
        {types} or {type constructors} or even programming
        {paradigms}.

        (1997-11-22)

Generic Routing Encapsulation

        <networking, protocol> (GRE) A {protocol} which allows an
        arbitrary network protocol A to be transmitted over any other
        arbitrary network protocol B, by encapsulating the {packets}
        of A within GRE packets, which in turn are contained within
        packets of B.

        Defined in {RFC 1701} and {RFC 1702} (GRE over IP).

        (1998-07-19)

Generic Security Service Application Programming Interface

        <security, programming> (GSS-API) An application level
        interface ({API}) to system security services.  It provides a
        generic interface to services which may be provided by a
        variety of different security mechanisms.  {Vanilla} GSS-API
        supports {security contexts} between two entities (known as
        "principals").

        GSS-API is a draft internet standard which is being developed
        in the {Common Authentication Technology Working Group}
        (cat-wg) of the {Internet Engineering Task Force} (IETF).

        Initial specifications for GSS-API appeared in {RFC 1508} and
        {RFC 1509}.  Subsequent revisions appeared in several draft
        standards documents.

        {(http://www.dstc.qut.edu.au/~barton/work/project.html)}.

        (1996-05-19)

generic thunk

        <programming> A software mechanism that allows a 16-bit
        {Windows} application to load and call a {Win32} {DLL} under
        {Windows NT} and {Windows 95}.

        See also {flat thunk}, {universal thunk}.

        (1999-04-05)

generic type variable

        <programming> (Also known as a "schematic type variable").
        Different occurrences of a generic type variable in a type
        expression may be instantiated to different types.  Thus, in
        the expression

                let id x = x in
                (id True, id 1)

        id's type is (for all a: a -> a).  The universal {quantifier}
        "for all a:" means that a is a generic type variable.  For the
        two uses of id, a is instantiated to Bool and Int.  Compare
        this with

                let id x = x in
                let f g = (g True, g 1) in
                f id

        This looks similar but f has no legal {Hindley-Milner type}.
        If we say

                f :: (a -> b) -> (b, b)

        this would permit g's type to be any instance of (a -> b)
        rather than requiring it to be at least as general as (a ->
        b).  Furthermore, it constrains both instances of g to have
        the same result type whereas they do not.  The type variables
        a and b in the above are implicitly quantified at the top
        level:

                f :: for all a: for all b: (a -> b) -> (b, b)

        so instantiating them (removing the {quantifier}s) can only be
        done once, at the top level.  To correctly describe the type
        of f requires that they be locally quantified:

                f :: ((for all a: a) -> (for all b: b)) -> (c, d)

        which means that each time g is applied, a and b may be
        instantiated differently.  f's actual argument must have a
        type at least as general as ((for all a: a) -> (for all b:
        b)), and may not be some less general instance of this type.
        Type variables c and d are still implicitly quantified at the
        top level and, now that g's result type is a generic type
        variable, any types chosen for c and d are guaranteed to be
        instances of it.

        This type for f does not express the fact that b only needs to
        be at least as general as the types c and d.  For example, if
        c and d were both Bool then any function of type (for all a: a
        -> Bool) would be a suitable argument to f but it would not
        match the above type for f.

Genesia

        An {expert system} developed by Electricite de France and
        commercialised by {STERIA} (Paris).

genetic algorithm

        (GA) An {evolutionary algorithm} which generates each
        individual from some encoded form known as a "chromosome" or
        "genome".  Chromosomes are combined or mutated to breed new
        individuals.  "Crossover", the kind of recombination of
        chromosomes found in sexual reproduction in nature, is often
        also used in GAs.  Here, an offspring's chromosome is created
        by joining segments choosen alternately from each of two
        parents' chromosomes which are of fixed length.

        GAs are useful for multidimensional optimisation problems in
        which the chromosome can encode the values for the different
        variables being optimised.

        {Illinois Genetic Algorithms Laboratory
        (http://GAL4.GE.UIUC.EDU/illigal.home.html)} (IlliGAL).

        (1995-02-03)

genetic algorithms

        {genetic algorithm}

genetic programming

        <programming> (GP) A programming technique which extends the
        {genetic algorithm} to the domain of whole computer programs.
        In GP, populations of programs are genetically bred to solve
        problems.  Genetic programming can solve problems of system
        identification, classification, control, robotics,
        optimisation, game playing, and {pattern recognition}.

        Starting with a primordial ooze of hundreds or thousands of
        randomly created programs composed of functions and terminals
        appropriate to the problem, the population is progressively
        evolved over a series of generations by applying the
        operations of Darwinian fitness proportionate reproduction and
        crossover (sexual recombination).

        (1995-03-31)

GEnie Services

        {GE Information Services}

Genken Programming Language

        <language> (GPL) A variant of {PL360} by K. Asai of the Japan
        Atomic Energy Research Institute.

        ["Experience With GPL", K. Asai, in Machine Oriented Higher
        Level Languages, W. van der Poel, N-H 1974, pp. 371-376].

        (1995-04-13)

GENOVA

        An old statistical package still in use on some {VM}
        computers.

        (1995-11-28)

gensym

        /jen'sim/ [MacLISP for "generated symbol"] 1. To invent a new
        name for something temporary, in such a way that the name is
        almost certainly not in conflict with one already in use.

        2. The resulting name.  The canonical form of a gensym is
        "Gnnnn" where nnnn represents a number; any LISP hacker would
        recognise G0093 (for example) as a gensym.

        3. A freshly generated data structure with a gensymmed name.
        Gensymmed names are useful for storing or uniquely identifying
        crufties (see {cruft}).

Gensym Standard Interface

        <programming> (GSI) A set of {C} libraries and programming
        tools used to interface {G2} to external systems.
        Commercially available bridges are available to {SCADA}
        systems and {PLC}s.

        (1997-02-11)

Gentleman's Portable Coroutine System

        A {coroutine} package in {FORTRAN}.

        ["A Portable Coroutine System", W.M. Gentleman, Info Proc 71,
        C.V. Freiman ed, 1972].

        (1995-02-01)

GEN-X

        An expert system developed by General Electric.

Geographical Information System

        {Geographic Information System}

        [Which is more common?]

        (1995-12-21)

Geographic Information System

        <application> (GIS) A computer system for capturing, storing,
        checking, integrating, manipulating, analysing and displaying
        data related to positions on the Earth's surface.  Typically,
        a GIS is used for handling maps of one kind or another.  These
        might be represented as several different layers where each
        layer holds data about a particular kind of feature
        (e.g. roads).  Each feature is linked to a position on the
        graphical image of a map.

        Layers of data are organised to be studied and to perform
        statistical analysis (i.e. a layer of customer locations could
        include fields for Name, Address, Contact, Number, Area).
        Uses are primarily government related, town planning, local
        authority and public utility management, environmental,
        resource management, engineering, business, marketing, and
        distribution.

        {GIS dictionary
        (http://www.geo.ed.ac.uk/root/agidict/html/welcome.html)}.

        {(http://www.ncl.ac.uk/~ngraphic/wotzagis.html)}

        (1995-12-21)

GEORGE

        Charles Hamblin, 1957.  One of the earliest programming
        languages, stack-oriented, used reverse Polish notation.
        Implemented on the English Electric DEUCE.  "GEORGE: A
        Semi-Translation Programming Scheme for the DEUCE, Programming
        and Operations Manual", C. L. Hamblin, U New S Wales (1958).
        "Computer Languages", C.L. Hamblin, Aust J Sci 20(5):135-139
        (Dec 1957) and Aust Comp J 17(4):195-198 (Nov 1985).

George Boole

        <person> 1815-11-02 - 1864-12-08.  An English mathematician
        best known for his contribution to symbolic logic ({Boolean
        Algebra}) but also active in other fields such as probability
        theory, {algebra}, analysis, and differential equations.  He
        lived, taught, and is buried in Cork City, Ireland.  The Boole
        library at University College Cork is named after him.

        For centuries philosophers have studied logic, which is
        orderly and precise reasoning.  George Boole argued in 1847
        that logic should be allied with mathematics rather than with
        philosophy.

        Demonstrating logical principles with mathematical symbols
        instead of words, he founded {symbolic logic}, a field of
        mathematical/philosophical study.  In the new discipline he
        developed, known as {Boolean algebra}, all objects are divided
        into separate classes, each with a given property; each class
        may be described in terms of the presence or absence of the
        same property.  An electrical circuit, for example, is either
        on or off.  Boolean algebra has been applied in the design of
        {binary} computer circuits and telephone switching equipment.
        These devices make use of Boole's two-valued (presence or
        absence of a property) system.

        Born in Lincoln, Lincolnshire, UK, George Boole was the son of
        a tradesman and was largely self-taught.  He began teaching at
        the age of 16 to help support his family.  In his spare time
        he read mathematical journals and soon began to write articles
        for them.  By the age of 29, Boole had received a gold medal
        for his work from the British Royal Society.  His
        'Mathematical Analysis of Logic', a pamphlet published in
        1847, contained his first statement of the principles of
        symbolic logic.  Two years later he was appointed professor of
        mathematics at Queen's College in Ireland, even though he had
        never studied at a university.

        He died in Ballintemple, Ireland, on 1864-12-08.

        {Compton's Encyclopedia Online
        (http://comptons2.aol.com/encyclopedia/ARTICLES/00619_A.html)}.

        (1998-11-19)

GEOS

        A small windowing, {microkernel} (less than 64 kbytes long)
        operating system written in heavily {bum}med {assembly
        language} for {MS-DOS} computers.  It {multitask}s rather
        nicely on a 6 Mhz {Intel 80286} with at least 512K memory.

        It was adapted to {PDA}s by adding pen recognition, which
        doesn't work very well.

        {Usenet} newsgroup: {news:comp.os.geos}.

        (1995-01-21)

GEPURS

        An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-21)

Gerald

        ["Gerald: An Exceptional Lazy Functional Programming
        Language", A.C. Reeves et al, in Functional Programming,
        Glasgow 1989, K. Davis et al eds, Springer 1990].

        (1995-01-10)

Gerald Sussman

        <person> (Gerald J. Sussman, Jerry) A noted {hacker} at {MIT}
        and one of the developers of {SCHEME} and {6.001}.

        {(http://martigny.ai.mit.edu/~gjs/gjs.html)}

        (1996-11-29)

German

        <human language> \j*r'mn\ A human language written (in latin
        alphabet) and spoken in Germany, Austria and parts of
        Switzerland.

        German writing normally uses four non-{ASCII} characters:
        "", the first three have "umlauts" (two dots over the
        top): A O and U and the last is a double-S ("scharfes S")
        which looks like the Greek letter beta (except in capitalised
        words where it should be written "SS").  These can be written
        in ASCII in several ways, the most common are ae, oe ue AE OE
        UE ss or sz and the {TeX} versions "a "o "u "A "O "U "s.

        See also {ABEND}, {blinkenlights}, {DAU}, {DIN}, {gedanken},
        {GMD}, {kluge}.

        {Usenet} newsgroup: {news:soc.culture.german}.
        {(ftp://src.doc.ic.ac.uk/usenet/news-info/soc.answers/german-faq)},
        {(ftp://alice.fmi.uni-passau.de/pub/dictionaries/german.dat.Z)}.

        (1995-03-31)

GEST

        {Generic Expert System Tool}

Get a life!

        <abuse> Standard way of suggesting that someone has succumbed
        to terminal {geek}dom.  Often heard on {Usenet}, especially as
        a way of suggesting that the target is taking some obscure
        issue of {theology} too seriously.  This exhortation was
        popularised by William Shatner on a "Saturday Night Live"
        episode in a speech that ended "Get a *life*!", but some
        respondents believe it to have been in use before then.  It
        was certainly in wide use among hackers for at least five
        years before achieving mainstream currency in early 1992.

        (1995-01-18)

Get a real computer!

        Typical hacker response to news that somebody is having
        trouble getting work done on a system that (a) is
        single-tasking, (b) has no hard disk, or (c) has an address
        space smaller than 16 megabytes.  This is as of mid-1993; note
        that the threshold for "real computer" rises with time, and it
        may well be (for example) that machines with character-only
        displays will be generally considered "unreal" in a few years
        (GLS points out that they already are in some circles).  See
        {bitty box} and {toy}.

get.com

        <operating system> A command which can be created using debug
        in {MS DOS} to set the errorlevel according to which key is
        pressed.  The errorlevel can then be interrogated from a
        {batch file} by a series of commands like this:

         get
         if errorlevel 118 goto E118
         if errorlevel 117 goto E117
         if errorlevel 116 goto E116
         if errorlevel 115 goto E115
         if errorlevel 114 goto E114

        where E118 etc. are labels in the batch file.

        (1996-02-01)

getty

        <operating system> A {Unix} program which sets terminal type,
        modes, speed and line discipline for a {serial port}, and is
        used in the login process.

        (1996-12-08)

gf

        <networking> The {country code} for French Guiana.

        (1999-01-27)

g file

        <messaging> (General file) A mid 1980s term for text files,
        usually short and unpublished found on {BBS}s.  The g-files
        section on BBSs contain text files of general interest,
        viewable on-line; this is as opposed to files in the file
        transfer section, which are generally downloadable but not
        viewable on-line.

        When used on the {Internet}, this term generally refers to the
        types of file most often associated with old BBSs such as
        instructions on {phreak}ing or making bombs.

        (1996-06-20)

GFLOPS

        {gigaflops}

GFR

        {Grim File Reaper}

gh

        <networking> The {country code} for Ghana.

        (1999-01-27)

GHC

        <language>

        1. {Guarded horn clauses}.

        2. {Glasgow Haskell Compiler}.

        (1999-01-05)

ghost

        <chat> (Or "zombie") The image of a user's session on {IRC}
        and similar systems, left when the session has been terminated
        (properly or, often, improperly) but the server (or the
        network at large) believes the connection is still active and
        belongs to a real user.

        Compare {clonebot}.

        (1997-04-07)

ghostscript

        The {GNU} {PostScript} {interpreter} with {previewer}s for
        serval systems and many {font}s.  Written by L. Peter Deutsch
        <ghost@aladdin.com>.  Version 2.6.1.

        FTP from a {GNU archive site} or
        {(ftp://ftp.cs.wisc.edu/pub/X)}.

        (1993-05-29)

ghostview

        An {X Window System} interface to the {ghostscript}
        {PostScript} {interpreter}.

gi

        <networking> The {country code} for Gibraltar.

        (1999-01-27)

Gibson, William

        {William Gibson}

gid

        1. <operating system> {group identifier}.

        2. <filename extension> {global index}.

        (1997-01-30)

GIF

        {Graphics Interchange Format}

GIF89

        {Graphics Interchange Format}

GIF89a

        {animated GIF}

GIFF

        Do you mean {GIF} or is this some kind of {IFF}?

gig

        {gigabyte}

giga-

        {prefix}

gigabit

        <unit> 2^30 {bits}, 1,073,741,824 bits.

        See {prefix}.

        (1995-11-12)

gigabits per second

        <unit> {Gbps} A unit of information transfer rate.

        See {gigabit}.

        (1996-05-25)

gigabyte

        <unit> 2^30 = 1,073,741,824 {byte}s = 1024 {megabytes}.

        Roughly the amount of data required to encode a human gene
        sequence (including all the redundant codons).

        See {prefix}.

        (1995-09-29)

gigaflop

        {gigaflops}

gigaflops

        <unit> (GFLOPS) One thousand million (10^9) {floating point}
        operations per second.

        One of them is strictly "one gigaflops" in the same way that
        one mile per hour isn't 1 MP.

        See {prefix}.

        (1998-04-19)

GIGO

        /gi:'goh/ 1. Garbage In, Garbage Out.  A reference to the fact
        that computers, unlike humans, will unquestioningly process
        the most nonsensical of input data and produce nonsensical
        output.  Of course a properly written program will reject
        input data that is obviously erroneous but such checking is
        not always easy to specify and is tedious to write.

        GIGO is usually said in response to {lusers} who complain that
        a program didn't "do the right thing" when given imperfect
        input or otherwise mistreated in some way.  Also commonly used
        to describe failures in human decision making due to faulty,
        incomplete, or imprecise data.

        2. Garbage In, Gospel Out.  This more recent expansion is a
        sardonic comment on the tendency human beings have to put
        excessive trust in "computerised" data.

gilley

        <humour> ({Usenet}) The unit of analogical bogosity.
        According to its originator, the standard for one gilley was
        "the act of bogotoficiously comparing the shutting down of
        1000 machines for a day with the killing of one person".  The
        milligilley has been found to suffice for most normal
        conversational exchanges.

        (1995-03-17)

gillion

        <unit> /gil'y*n/ or /jil'y*n/ (From {giga-} by analogy with
        mega/million and tera/trillion) 10^9.

        Same as an American billion or a British "milliard".  How one
        pronounces this depends on whether one speaks {giga-} with a
        hard or soft "g".

        (1995-03-17)

Gilmore, John

        {John Gilmore}

GIM-1

        Generalized Information Management Language.  Nelson, Pick,
        Andrews.  Proc SJCC 29:169-73, AFIPS (Fall 1966).

GIN

        A special-purpose {macro assembler} used to build the {GEORGE
        3} {operating system} for {ICL1900} series computers.

        (1994-11-02)

GINA

        Generic Interactive Application.  An {application framework}
        based on {Common Lisp} and {OSF}/{Motif}, designed to simplify
        the construction of graphical interactive applications.

        GINA consists of {CLM} - a language binding for {OSF}/{Motif}
        in {Common Lisp}; the GINA application framework - a {class
        library} in {CLOS}; the GINA interface builder - an
        interactive tool implemented with GINA to design {Motif}
        windows.

        Version 2.2 requires {OSF}/{Motif} 1.1 or better, {Common
        Lisp} with {CLX}, {CLOS}, {PCL} and processes.  It runs with
        {Franz Allegro}, {Lucid}, {CMU CL} and {Symbolics} {Genera}.

        {Germany (ftp://ftp.gmd.de/gmd/gina)}.  {N. America
        (ftp://export.lcs.mit.edu/contrib/)}.  Mailing list:
        gina-users-request@gmdzi.gmd.de.

        (1994-11-02)

Ginger

        A simple {functional language} from the {University of
        Warwick} with parallel constructs.

        (1994-11-02)

GIP

        1. General Interpretive Programme.

        A 1956 interpreted language for the {English Electric}
        {DEUCE}, with {array} operations and an extensive library of
        numerical methods.

        ["Interpretive and Brick Schemes, with Special Reference to
        Matrix Operations", English Electric COmpany, DEUCE News
        No. 10 (1956)].

        (1994-11-02)

        2. An erroneous singular of {GIPS}.

GIPS

        /gips/ or /jips/ [Analogy with {MIPS}] Giga-Instructions per
        Second (or possibly "Gillions of Instructions per Second"; see
        {gillion}).

        In 1991, this was used of only a handful of highly parallel
        machines and one sequential processor built with {Josephson
        device}s.  {DEC}'s {Alpha AXP 21164} processor was the first
        commercially available 1 GIPS sequential processor (7 Sep
        1994).  Compare {KIPS}.

        ["A 1-GIPS Josephson Data Processor", Yuji Hatano et al, IEEE
        J Solid State Circuits, vol 26, 6, June 1991]

        (1994-11-02)

GIRL

        Graph Information Retrieval Language.  A language for handling
        {directed graph}s.

        ["Graph Information Retrieval Language", S. Berkowitz, Report
        76-0085, Naval Ship Res Dev Center, (Feb 1976)].

        (1994-11-02)

GIS

        {Geographical Information System}

GKS

        {Graphical Kernel System}

GKS-3D

        The three-dimensional version of {GKS}, a {standard} for
        graphics I/O ({ISO} 8805).

        (1994-11-02)

GL

        Graphics Language.  A graphics package from {Silicon
        Graphics}.

gl

        <networking> The {country code} for Greenland.

        (1999-01-27)

Glammar

        A pattern transformation language for text-to-text
        translation.  Used for compiler writing and linguistics.

        {(ftp://phoibos.cs.kun.nl/pub/GLASS/glammar.tar.Z)}

glark

        /glark/ To figure something out from context.  "The System III
        manuals are pretty poor, but you can generally glark the
        meaning from context."  Interestingly, the word was originally
        "glork"; the context was "This gubblick contains many
        nonsklarkish English flutzpahs, but the overall pluggandisp
        can be glorked [sic] from context" (David Moser, quoted by
        Douglas Hofstadter in his "Metamagical Themas" column in the
        January 1981 "Scientific American").  It is conjectured that
        hackish usage mutated the verb to "glark" because {glork} was
        already an established jargon term.

        Compare {grok}, {zen}.

Glasgow Haskell Compiler

        <language> (GHC) A {Haskell} 1.2 compiler written in Haskell
        by the AQUA project at {Glasgow University}, headed by Simon
        Peyton Jones <simonpj@dcs.glasgow.ac.uk> throughout the 1990's
        [started?].  GHC can generate either {C} or {native code} for
        {SPARC}, {DEC} {Alpha} and other platforms.  It can take
        advantage of features of {gcc} such as global register
        variables and has an extensive set of optimisations.

        GHC features an extensible I/O system based on a "{monad}",
        in-line {C} code, fully fledged {unboxed} data types,
        incrementally-updatable {array}s, {mutable reference type}s,
        {generational garbage collector}, {concurrent} {thread}s.
        Time and space {profiling} is also supported.

        It requires {GNU} gcc 2.1+ and {Perl}.

        GHC runs on {Sun4}, {DEC Alpha}, {Sun3}, {NeXT}, {DECstation},
        {HP-PA} and {SGI}.

        Latest version as of 1998-11-30: 4.01.

        {Glasgow FTP
        (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}.  {Yale
        (ftp://nebula.cs.yale.edu/pub/haskell/glasgow/)}.  {Sweden
        (ftp://ftp.cs.chalmers.se/pub/haskell/glasgow/)}.

        {Papers (ftp://ftp.dcs.glasgow.ac.uk/pub/glasgow-fp)}.

        ["Imperative functional programming", Peyton Jones & Wadler,
        POPL '93].

        ["Unboxed data types as first-class citizens", Peyton Jones &
        Launchbury, FPCA '91].

        ["Profiling lazy functional languages", Sansom & Peyton Jones,
        Glasgow workshop '92].

        ["Implementing lazy functional languages on stock hardware",
        Peyton Jones, Journal of Functional Programming, Apr 1992].

        E-mail: <glasgow-haskell-request@dcs.glasgow.ac.uk>.

        (1999-01-05)

GLASS

        General LAnguage for System Semantics.

        An {Esprit} project at the {University of Nijmegen}.

        {(ftp://phoibos.cs.kun.nl/pub/GLASS)}

        (1995-01-25)

glass

        (IBM) {silicon}.

glass box testing

        {white box testing}

glassfet

        /glas'fet/ [Analogy with {MOSFET}] (or "{firebottle}") A
        humorous way to refer to a {vacuum tube}.

glass tty

        /glas T-T-Y/ or /glas ti'tee/ A terminal that has a display
        screen but which, because of hardware or software limitations,
        behaves like a teletype or some other printing terminal,
        thereby combining the disadvantages of both: like a printing
        terminal, it can't do fancy display hacks, and like a display
        terminal, it doesn't produce hard copy.  An example is the
        early "dumb" version of Lear-Siegler ADM 3 (without cursor
        control).  See {tube}, {tty}; compare {dumb terminal}, {smart
        terminal}.  See "{TV Typewriters}" for an interesting true
        story about a glass tty.

GLB

        {greatest lower bound}

glibc

        {GNU C Library}

Glish

        Glish is an interpretive language for building loosely-coupled
        distributed systems from modular, event-oriented programs.
        Written by Vern Paxson <vern@ee.lbl.gov>.  These programs are
        written in conventional languages such as C, C++, or Fortran.

        Glish scripts can create local and remote processes and
        control their communication.  Glish also provides a full,
        array-oriented programming language (similar to {S}) for
        manipulating binary data sent between the processes.  In
        general Glish uses a centralised communication model where
        interprocess communication passes through the Glish
        {interpreter}, allowing dynamic modification and rerouting of
        data values, but Glish also supports point-to-point links
        between processes when necessary for high performance.

        Version 2.4.1 includes an {interpreter}, {C++} {class} library
        and user manual.  It requires C++ and there are ports to
        {SunOS}, {Ultrix}, an {HP/UX} (rusty).

        {(ftp://ftp.ee.lbl.gov/glish/glish-2.4.1.tar.Z)}

        ["Glish: A User-Level Software Bus for Loosely-Coupled
        Distributed Systems," Vern Paxson and Chris Saltmarsh,
        Proceedings of the 1993 Winter USENIX Conference, San Diego,
        CA, January, 1993].

        (1993-11-01)

Glisp

        Generalized LISP.  D.C. Smith, Aug 1990.  A coordinated set of
        high-level syntaxes for Common LISP.  Contains Mlisp, Plisp
        and ordinary LISP, with an extensible framework for adding
        others.  Written in Plisp.

        {(ftp://bric-a-brac.apple.com/dts/mac/lisp)}

glitch

        /glich/ [German "glitschen" to slip, via Yiddish "glitshen",
        to slide or skid] 1. (Electronics) When the inputs of a
        circuit change, and the outputs change to some {random} value
        for some very brief time before they settle down to the
        correct value.  If another circuit inspects the output at just
        the wrong time, reading the random value, the results can be
        very wrong and very hard to debug (a glitch is one of many
        causes of electronic {heisenbug}s).

        2. A sudden interruption in electric service, sanity,
        continuity, or program function.  Sometimes recoverable.  An
        interruption in electric service is specifically called a
        "power glitch" (or {power hit}), of grave concern because it
        usually crashes all the computers.  See also {gritch}.

        2. [Stanford] To scroll a display screen, especially several
        lines at a time.  {WAITS} terminals used to do this in order
        to avoid continuous scrolling, which is distracting to the
        eye.

        4. Obsolete.  Same as {magic cookie}.

glob

        /glob/, *not* /glohb/ To expand {wild card} characters in a
        {path name}.

        In {Unix} the {file name} wild cards are:

         * = zero or more characters (E.g. {UN*X})

         ? = any single character

         [] any of the enclosed characters

         {} indicate alternation of comma-separated alternatives, thus
         foo{baz,qux} would expand to "foobaz" or "fooqux".  This
         syntax generates a list of all possible expansions, rather
         than matching one.

        These have become sufficiently pervasive that hackers use them
        in written English, especially in {electronic mail} or
        {Usenet} news on technical topics.  E.g. "He said his name was
        [KC]arl" (expresses ambiguity).  "I don't read
        talk.politics.*" (any of the talk.politics subgroups on
        {Usenet}).  Other examples are given under the entry for {X}.
        Note that glob patterns are similar, but not identical, to
        those used in {regexps}.

        "glob" was a subprogram that expanded wild cards in archaic
        pre-{Bourne} versions of the {Unix} {shell}.

        (1997-07-16)

global index

        <filename extension> (gid) The filename extension of a
        {Windows 95} "global index" file.  .gid files are created by
        the help {browser} internal to Windows 95 (also available for
        other Windows versions) for WinHelp files ({hlp}), as well as
        for storing user preferences, such as window position.

        (1997-01-30)

globalisation

        {internationalisation}

Global Network Navigator

        (GNN) A collection of free services provided by {O'Reilly &
        Associates}.

        The Whole Internet Catalog describes the most useful Net
        resources and services with live links to those resources.
        The GNN Business Pages list companies on the Internet.  The
        Internet Help Desk provides help in starting {Internet}q
        exploration.  NetNews is a weekly publication that reports on
        the news of the {Internet}, with weekly articles on Internet
        trends and special events, sports, weather, and comics.  There
        are also pages aobut travel and personal finance.

        {Home page (http://www.gnn.com/)}

        E-mail: <support@gnn.com>.

        Telephone: (800) 998 9938 (USA), +1 (707) 829 0515 (outside
        USA).

        (1995-01-10)

Global Positioning System

        <communications> (GPS) A system for determining postion on the
        Earth's surface by comparing radio signals from several
        satellites.  When completed the system will consist of 24
        satellites equipped with radio transmitters and atomic clocks.

        Depending on your geographic location, the GPS receiver
        samples data from up to six satellites, it then calculates the
        time taken for each satellite signal to reach the GPS
        receiver, and from the difference in time of reception,
        determines your location.

        ["Global Positioning by Satellite"?  Precison?  Coverage?  Web
        page?]

        (1998-02-10)

Global System for Mobile communications

        <communications> (GSM) A {standard} for digital {cellular}
        communications (in the process of being) adopted by over 60
        countries.  The GSM standard is currently used in the 900 MHz
        and 1800 MHz bands.  In the USA trial systems akin to the
        related Digital Cellular System (DCS) 18000 have been set up
        in several metropolitan areas.

        (1995-04-25)

glork

        /glork/ 1. Used as a name for just about anything.

        See {foo}.

        2. Similar to {glitch}, but usually used reflexively.  "My
        program just glorked itself."

        See also {glark}.

GLOS

        Graphics Language Object System.  Dan Johnston
        dan@cs.uq.oz.au> and Brian Hicks <cs.uq.oz.au>, U Queensland,
        St. Lucia 1978.  Graphics objects correspond to language
        statements (e.g. line, circle, polygon etc).  New objects
        defined using procedures.  2-D Transformations are context
        dependent and may be nested.

GLOW

        <language> A POP-11 variant with {lexical scope}.

        Available from Andrew Arnblaster, Bollostraat 6, B-3140
        Keerbergen, Belgium, for Mac or {MS-DOS}.

        [Byte's UK edition, May 1992, p.84UK-8].

        (1997-02-07)

GLS

        {Guy Lewis Steele, Jr.}

GLU

        <language> A practical {coarse grain} implementation of the
        Lucid dataflow language for networks.

        (1998-03-07)

glue

        <jargon> A generic term for any interface logic or {protocol}
        that connects two component blocks.  For example, {Blue Glue}
        is IBM's SNA protocol, and hardware designers call anything
        used to connect large VLSI's or circuit blocks "glue logic".

        (1999-02-22)

glue language

        <language> Any language, usually a {scripting language}, used
        to write {glue} to integrate tools and other programs to solve
        some problem.

        (1999-02-22)

glyph

        <character> An {image} used in the visual representation of
        {characters}; roughly speaking, how a character looks.  A
        {font} is a set of glyphs.

        In the simple case, for a given {font} ({typeface} and size),
        each character corresponds to a single glyph but this is not
        always the case, especially in a language with a large
        alphabet where one character may correspond to several glyphs
        or several characters to one glyph (a {character encoding}).

        Usually used in reference to {outline fonts}, in particular
        {TrueType}.

        (1998-05-31)

Glypnir

        1966.  An ALGOL-like language with parallel extensions.
        Similar to Actus.  "GLYPNIR - A Programming Language for the
        Illiac IV", D.H.  Lawrie et al, CACM 18(3) (Mar 1975).

gm

        <networking> The {country code} for Gambia.

        (1999-01-27)

GMAP

        GCOS Macro Assembler Program.  The {macro assembler} for the
        {GCOS 8} {operating system} on {Honeywell}/{Bull} {DPS-8}
        computers.

        ["GCOS8 OS GMAP User's Guide", Bull].

GMD

        <company> Full name: "GMD - Forschungszentrum
        Informationstechnik GmbH" (German National Research Center for
        Information Technology).

        Before April 1995, GMD stood for "Gesellschaft fr Mathematik
        und Datenverarbeitung" - National Research Center for Computer
        Science, it is retained for historical reasons.

        {Home (http://www.gmd.de/GMDHome.english.html)}

        Address: D-53754 Sankt Augustin, Germany.

        (1995-04-10)

GMD Toolbox for Compiler Construction

        (Or Cocktail) A huge set of compiler building tools for
        {MS-DOS}, {Unix} and {OS/2}.

        parser generator (LALR -> C, Modula-2), documentation, parser
        generator (LL(1) -> C, Modula-2), tests, scanner generator (->
        C, Modula-2), tests translator (Extended BNF -> BNF),
        translator (Modula-2 -> C), translator (BNF (yacc) -> Extended
        BNF), examples abstract syntax tree generator,
        attribute-evaluator generator, code generator

        Current version 9209.  The {MS-DOS} version requires DJ
        Delorie's DOS extender ({go32}) and the {OS/2} version
        requires the {emx} programming environment.

        {(ftp://ftp.karlsruhe.gmd.de/pub/cocktail/dos)}.  {OS/2 FTP
        (ftp://ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo)}.

        Mailing list: listserv@eb.ele.tue.nl (subscribe to Cocktail).
        E-mail: Josef Grosch <grosch@karlsruhe.gmd.de>, Willem Jan
        Withagen <wjw@eb.ele.tue.nl> (OS/2).

        (1992-01-01)

gn

        <networking> The {country code} for Guinea.

        (1999-01-27)

gnarly

        <jargon> /nar'lee/ Both obscure and {hairy}.  "{Yow}! - the
        tuned {assembler} implementation of {BitBlt} is really
        gnarly!"  From a similar but less specific usage in surfer
        slang.

        (1996-09-17)

Gnat

        <language, tool> An {Ada} {compiler} written in {Ada} using
        the {gcc} {code generator} to allow easy {porting} to a
        variety of {platforms}.  Gnat is the only Ada compiler that
        completely implements the Ada standard, including all the
        annexes.

        The compiler is released under the {GNU} license and is
        currently maintained by {Ada Core Technologies} (ACT).

        {Home (http://www.gnat.com/)}.

        (1999-06-24)

GNN

        {Global Network Navigator}

GNOME

        {GNU Network Object Model Environment}

Gnome Computers

        <company> A small UK hardware and software company.  They make
        {transputer} boards for the {Acorn} {Archimedes} among other
        things.

        E-mail: Chris Stenton <chris@gnome.co.uk>.

        (1994-09-30)

GNU

        <body, project> /g*noo/ 1. A {recursive acronym}:
        "GNU's Not Unix!".  The {Free Software Foundation}'s project
        to provide a freely distributable replacement for {Unix}.  The
        GNU Manifesto was published in the March 1985 issue of
        Dr. Dobb's Journal but the GNU project started a year and a
        half earlier when {Richard Stallman} was trying to get funding
        to work on his freely distributable editor, {Emacs}.

        {Emacs} and the GNU {C} compiler, {gcc}, two tools designed
        for this project, have become very popular.  GNU software is
        available from many {GNU archive site}s.

        See also {Hurd}.

        2. <person> {John Gilmore}.

        (1997-04-12)

GNU archive site

        <body> The main {GNU} {FTP archive} is on prep.ai.mit.edu but
        copies ("{mirrors}") of some or all of the files there are
        also held on many other computers around the world.  To avoid
        overloading prep.ai.mit.edu and the {Internet} you should
        {FTP} files from the machine closest to yours (you may be able
        to use {traceroute} to determine which is logically closest if
        it's not obvious from the transfer rate).  Trans-ocean
        {TCP/IP} links are very expensive and usually very slow.

        The following {hosts} mirror GNU files.  Look for a directory
        like /pub/gnu, /mirrors/gnu, /systems/gnu or /archives/gnu.
        {Electronic mail address}es of administrators and {Internet
        address}es are given for some hosts.  This list was taken from
        {this file (ftp://src.doc.ic.ac.uk/gnu/GNUinfo/FTP)}.

        Australia: archie.au, archie.oz, archie.oz.au

        Brazil: ccsun.unicamp.br (143.106.1.5, <root@ccsun.unicamp.br>)

        Denmark: ftp.denet.dk

        Europe: archive.eu.net (192.16.202.1)

        Finland: ftp.funet.fi (128.214.6.100, gnu-adm)

        France: irisa.irisa.fr, ftp.univ-lyon1.fr
        (<ftpmaint@ftp.univ-lyon1.fr>)

        Germany: ftp.informatik.tu-muenchen.de,
        ftp.informatik.rwth-aachen.de, ftp.germany.eu.net
        (<archive-admin@germany.eu.net>)

        Israel: ftp.technion.ac.il (<ftp-admin@ftp.technion.ac.il>)

        Japan: utsun.s.u-tokyo.ac.jp, ftp.cs.titech.ac.jp

        Korea: cair.kaist.ac.kr (143.248.11.170)

        Netherlands: hp4nl.nluug.nl, ftp.win.tue.nl (131.155.70.100)

        Norway: ugle.unit.no (129.241.1.97)

        South Africa: ftp.sun.ac.za

        Sweden: isy.liu.se, ftp.stacken.kth.se, ftp.luth.se,
        ftp.sunet.se (130.238.127.3, <archive@ftp.sunet.se>)

        Switzerland: ftp.eunet.ch, nic.switch.ch

        Thailand: ftp.nectec.or.th (192.150.251.32,
        <ftp@nwg.nectec.or.th>)

        UK: src.doc.ic.ac.uk (146.169.3.7, <info-server@doc.ic.ac.uk>,
        <lmjm@doc.ic.ac.uk> also sun cartridge or exabyte tapes);
        info-server@cs.nott.ac.uk (<jpo@cs.nott.ac.uk>);
        I.G.Batten@fulcrum.bt.co.uk (also qic-21 and qic-24 tapes);
        ftp.mcc.ac.uk (130.88.203.12); Unix.hensa.ac.uk;
        ftp.warwick.ac.uk (137.205.192.14, <Unixhelp@warwick.ac.uk>).

        USA: louie.udel.edu, ftp.kpc.com (Silicon Valley, CA)
        ftp.hawaii.edu, f.ms.uky.edu, ftp.digex.net (Internet address
        164.109.10.23, run by <mcguire@digex.net>),
        wuarchive.wustl.edu, col.hp.com, ftp.cs.columbia.edu,
        vixen.cso.uiuc.edu, mrcnext.cso.uiuc.edu, jaguar.utah.edu,
        gatekeeper.dec.com, labrea.stanford.edu, ftp.cs.widener.edu,
        archive.cis.ohio-state.edu, and ftp.uu.net.

        Western Canada: ftp.cs.ubc.ca (<ftp-admin@cs.ubc.ca>)

        (1995-04-30)

GNU assembler

        (GAS) A {Unix} {assembler} for the {GNU} project.  Many {CPU}
        types are handled and {COFF} and {IEEE-695} formats are
        supported as well as standard {a.out}.

        Current version 2.2 ported to {Sun-3}, {Sun-4}, {i386},
        {386BSD}, {BSD/386}, {Linux}, {PS/2-AIX}, {VAX}, {Ultrix},
        {BSD}, {VMS}.

        The assembler has been merged with {GNU Binutils}.

        E-mail: <bug-gnu-utils@prep.ai.mit.edu>.

        (1995-04-18)

GNU awk

        {gawk}

GNU BC

        A {GNU} version of {BC} which is self-contained and internally
        executes its own compiled code rather than acting as a
        {front-end} to {DC} like the standard {Unix} bc.

        Version 1.02

        parser (yacc), interpreter, BC math library

        Philip A. Nelson <phil@cs.wwu.edu>

        FTP bc-1.02.tar.Z from a {GNU archive site}.

        requires:       vsprintf and vfprintf routines

        ports: Unix (BSD, System V, MINIX, POSIX) Superset of POSIX BC
        (P10003.2/D11), with a POSIX-only mode.

GNU C

        <language> The extension of {C} compiled by {gcc}.

        (1997-09-30)

GNU C Library

        <library> (glibc) The {run-time} library for the {GNU C}
        {compiler}, {gcc}.  The source for libc.a.  This package is
        separately maintained.

        It is a superset of {ANSI C} and {POSIX}.1 and a large subset
        of POSIX.2.

        Current version (1993-06-25): 1.06.

        Available from your nearest {GNU archive site}.

        Mailing list: <bug-glibc@prep.ai.mit.edu> (bugs).

        (1993-06-25)

GNU DC

        GNU Desktop Calculator.

        An {interpreter} for a subset of the standard {Unix} {DC} that
        handles all its operations, except the (undocumented) {array}
        operations.  Integration with GNU BC is being attempted.

        Version 0.2.

        {FTP} dc-0.2.tar.Z from your nearest {GNU archive site}.

        (1993-05-21)

GNU E

        A persistent C++ variant

        Version 2.3.3

        compiler

        {(ftp://ftp.cs.wisc.edu/exodus/E/)}

        GNU E is a persistent, object oriented programming language
        developed as part of the Exodus project.  GNU E extends C++
        with the notion of persistent data, program level data objects
        that can be transparently used across multiple executions of a
        program, or multiple programs, without explicit input and
        output operations.

        GNU E's form of {persistence} is based on extensions to the
        C++ type system to distinguish potentially persistent data
        objects from objects that are always memory resident.  An
        object is made persistent either by its declaration (via a new
        "persistent" storage class qualifier) or by its method of
        allocation (via persistent dynamic allocation using a special
        overloading of the new operator).  The underlying object
        storage system is the Exodus storage manager, which provides
        concurrency control and recovery in addition to storage for
        persistent data.

        restriction: Copyleft; not all run-time sources are available
        (yet)

        requires:       release 2.1.1 of the Exodus storage manager

        E-mail: <exodus@cs.wisc.edu>.

        (1993/01/20)

GNU Emacs

        {Emacs}

GNU General Public License

        {General Public License}

GNUMACS

        /gnoo'maks/ [contraction of "GNU EMACS"] Often-heard
        abbreviated name for the {GNU} project's flagship tool,
        {EMACS}.  Used especially in contrast with {GOSMACS}.

GNU mirror site

        {GNU archive site}

GNU Network Object Model Environment

        <operating system> (GNOME) A project to build a complete,
        {user-friendly} {desktop} based entirely on {free software}.
        GNOME is part of the {GNU project} and part of the
        {OpenSource} movement.  The desktop will consist of small
        {utilities} and larger {applications} which share a consistent
        {look and feel}.  GNOME uses {GTK+} as the {GUI} {toolkit} for
        applications.

        GNOME is intended to run on any modern and functional
        {Unix}-like system.  The current version runs on {Linux},
        {FreeBSD}, {IRIX} and {Solaris}.

        {Home (http://www.gnome.org/)}.

        (1998-10-17)

Gnuplot

        <tool> A command-driven interactive graphing program.  Gnuplot
        can plot two-dimensional functions and data points in many
        different styles (points, lines, error bars); and
        three-dimensional data points and surfaces in many different
        styles (contour plot, mesh).  It supports {complex} arithmetic
        and user-defined functions and can label title, axes, and data
        points.  It can output to several different graphics file
        formats and devices.  Command line editing and history are
        supported and there is extensive on-line help.

        Gnuplot is {copyright}ed, but freely distributable.  It was
        written by Thomas Williams, Colin Kelley, Russell Lang, Dave
        Kotz, John Campbell, Gershon Elber, Alexander Woo and many
        others.  Despite its name, gnuplot is not related to the {GNU}
        project or the {FSF} in any but the most peripheral sense.  It
        was designed completely independently and is not covered by
        the {General Public License}.  However, the {FSF} has decided
        to distribute gnuplot as part of the {GNU} system, because it
        is useful, redistributable software.

        Gnuplot is available for: {Unix} ({X11} and {NEXTSTEP}),
        {VAX}/{VMS}, {OS/2}, {MS-DOS}, {Amiga}, {MS-Windows},
        {OS-9}/68k, {Atari ST} and {Macintosh}.

        E-mail: <info-gnuplot@dartmouth.edu>.

        {FAQ} - {Germany
        (http://fg70.rz.uni-karlsruhe.de/~ig25/gnuplot-faq/)}, {UK
        (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.gnuplot)},
        {USA
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/graphics/gnuplot-fa
q/faq.html)}.

        {Usenet} newsgroup: {news:comp.graphics.gnuplot}.

        (1995-05-04)

GNU public licence

        <legal> Properly known as the {General Public License}.
        Improperly known as the {General Public Virus}.

        (1995-05-04)

GNUS

        <tool, networking> GNU news.

        A {GNU} {Emacs} subsystem for reading and sending {Usenet}
        {news}, written by Masanobu Umeda <umerin@mse.kyutech.ac.jp>.
        You can use GNUS to browse through news groups, look at
        summaries of articles in a specific group, and read articles
        of interest.  You can respond to authors or write articles or
        replies to all the readers of a news group.

        GNUS can be configured to use the {NNTP} {protocol} to get
        news from a remove {server} or it can read it from local news
        {spool} files.

        {Usenet} newsgorup: {news:gnu.emacs.gnus}.

        (1995-05-04)

GNU sed

        <tool, text> A {GNU} version of the standard {Unix} {Sed}
        stream editor.  GNU sed was written by Tom Lord
        <lord+@andrew.cmu.edu>.  Version 2.03.

        FTP from your nearest {GNU archive site}.

        E-mail: <bug-gnu-utils@prep.ai.mit.edu> (bugs).

        (1993-08-09)

GNU Smalltalk

        <language> A {GNU} version of {Smalltalk}, by Steven Byrne
        <sbb@eng.sun.com>.

        Version 1.1.1,

        {FTP} from your nearest {GNU archive site}.

        {msgGUI} is a {graphical user interface} library for GNU
        Smalltalk.

        (1991-09-15)

GNUStep

        <operating system> A planned {GNU} implementation of
        {OpenStep}.  Work has started on an implementation using an
        existing library written in {Objective-C}.  Much work remains
        to be done to bring this library close to the OpenStep
        specifications.  Adam Fedor is head of the project.

        [Current status?  URL?  Newsgroup?]

        (1999-08-26)

GNU superoptimiser

        (GSO) A function sequence generator that uses an exhaustive
        generate-and-test approach to find the shortest instruction
        sequence for a given function.  Written by Torbjorn Granlund
        <tege@gnu.ai.mit.edu> and Tom Wood.  You have to tell the
        superoptimiser which function and which {CPU} you want to get
        code for.  This is useful for compiler writers.

        FTP superopt-2.2.tar.Z from a {GNU archive site}.

        Generates code for {DEC} {Alpha}, {SPARC}, {Intel 80386},
        {88000}, {RS/6000}, {68000}, {29000} and {Pyramid} (SP, AP and
        XP).

        (1993-02-16)

Go

        <games, application> A thinking game with an oriental origin
        estimated to be around 4000 years old.  Nowadays, the game is
        played by millions of people in (most notably) China, Japan,
        Korea and Taiwan.  In the Western world the game is practised
        by a yearly increasing number of players.  On the {Internet}
        Go players meet, play and talk 24 hours/day on the {Internet
        Go Server} (IGS).

        {(http://www.cwi.nl/~jansteen/go/go.html)}

        {Usenet} newsgroup: {news:rec.games.go}.

        (1995-03-17)

goal

        <programming> In {logic programming}, a {predicate} applied to
        its {arguments} which the system attempts to prove by matching
        it against the {clauses} of the program.  A goal may fail or
        it may succeed in one or more ways.

        (1997-07-14)

Go Back N

        A {data link layer} {protocol}.

gobble

        1. To consume, usually used with "up".  "The output
        spy gobbles characters out of a {tty} output buffer."

        2. To obtain, usually used with "down".  "I guess I'll gobble
        down a copy of the documentation tomorrow."

        See also {snarf}.

Godzillagram

        /god-zil'*-gram/ [Japan's national hero and {datagram}] 1. A
        network packet that in theory is a broadcast to every machine
        in the universe.  The typical case is an IP datagram whose
        destination IP address is [255.255.255.255].  Fortunately, few
        gateways are foolish enough to attempt to implement this case!

        2. A network packet of maximum size.  An {IP} Godzillagram has
        65,536 {octets}.  Compare {super source quench}.

Goedel

        <language> (After the mathematician {Kurt Gdel}) A
        {declarative}, general-purpose language for {artificial
        intelligence} based on {logic programming}.  It can be
        regarded as a successor to {Prolog}.  The {type system} is
        based on {many-sorted logic} with {parametric polymorphism}.
        Modularity is supported, as well as {infinite precision
        arithmetic} and {finite set}s.

        Goedel has a rich collection of system {modules} and provides
        {constraint} solving in several domains.  It also offers
        {metalogical} facilities that provide significant support for
        {metaprogram}s that do analysis, transformation, compilation,
        verification, and debugging.

        A significant subset of Goedel has been implemented on top of
        {SISCtus Prolog} by Jiwei Wang <jiwei@lapu.bristol.ac.uk>.

        {FTP Bristol, UK (ftp://ftp.cs.bris.ac.uk/goedel)}, {FTP K U
        Leuven (ftp://ftp.cs.kuleuven.ac.be/pub/logic-prgm/goedel)}.

        E-mail: <goedel@compsci.bristol.ac.uk>.

        (1995-05-02)

go-faster stripes

        <jargon> {chrome}.  Mainstream in some parts of UK.

        (1998-07-05)

Gofer

        <language> A {lazy} {functional language} designed by Mark
        Jones <mpj@cs.nott.ac.uk> at the {Programming Research Group},
        Oxford, UK in 1991.  It is very similar to {Haskell} 1.2.  It
        has {lazy evaluation}, {higher order function}s, {pattern
        matching}, and {type class}es, lambda, case, conditional and
        let expressions, and wild card, "as" and {irrefutable
        patterns}.  It lacks {modules}, {arrays} and standard
        {classes}.

        Gofer comes with an {interpreter} (in C), a {compiler} which
        compiles to {C}, documentation and examples.  Unix Version
        2.30 (1994-06-10) Mac_Gofer version 0.16 beta.  Ported to
        {Sun}, {Acorn} {Archimedes}, {IBM PC}, {Macintosh}, {Atari},
        {Amiga}.

        Version 2.30 added support for contexts in datatype and member
        function definitions, Haskell style {arrays}, an external
        function calling mechanism for gofc, an experimental
        implementation of Launchbury/Peyton Jones style lazy
        functional state threads, an experimental implementation of
        "do" notation for {monad comprehensions}.

        Latest version: {HUGS}.

        ["Introduction to Gofer 2.20", M.P. Jones.]

        [The implementation of the Gofer functional programming
        system, Mark P. Jones, Research Report YALEU/DCS/RR-1030, Yale
        University, Department of Computer Science, May 1994.  FTP:
        nebula.cs.yale.edu/pub/yale-fp/reports].

        {(http://www.cs.nott.ac.uk/Department/Staff/mpj/)}

        {FTP Yale (ftp://nebula.cs.yale.edu/)}, {FTP Glasgow
        (ftp://ftp.dcs.glasgow.ac.uk/)}, {FTP Chalmers
        (ftp://ftp.cs.chalmers.se/pub/haskell/gofer/)}.

        (1995-02-14)

Goffin

        <language> A {definitional constraint language} for
        {declarative} parallel programming.  Goffin systematically
        integrates {equational constraint}s and functions within a
        uniform framework of {concurrent} programming.

        Goffin is an embedding of a functional language kernel
        ({Haskell}) into a layer of constraint logic, which allows
        {logical variable}s inside functional expressions.  In order
        to preserve {referential transparency}, functional {reduction}
        suspends until logical variables become bound.

        Logical variables are bound by equational constraints, which
        impose relations over expressions.  Hence, constraints are the
        means to structure the concurrent reduction of functional
        expressions.

        (1995-02-21)

go flatline

        [{Cyberpunk} SF, refers to flattening of EEG traces upon
        brain-death] also "flatlined". 1. To {die}, terminate, or
        fail, especially irreversibly.  In hacker parlance, this is
        used of machines only, human death being considered somewhat
        too serious a matter to employ jargon-jokes about.

        2. To go completely quiescent; said of machines undergoing
        controlled shutdown.  "You can suffer file damage if you shut
        down Unix but power off before the system has gone flatline."

        3. Of a video tube, to fail by losing vertical scan, so all
        one sees is a bright horizontal line bisecting the screen.

GO-GO

        {ALPS}

GOL

        General Operating Language.  Subsystem of {DOCUS}.  [Sammet
        1969, p.678].

golden

        [Probabaly from folklore's "golden egg"] When used to describe
        a magnetic medium (e.g. "golden disk", "golden tape"),
        describes one containing a tested, up-to-spec, ready-to-ship
        software version.  Compare {platinum-iridium}.

golf ball printer

        <printer> The IBM 2741, a slow but letter-quality printing
        device and terminal based on the IBM Selectric typewriter.
        The "golf ball" was a little spherical frob bearing reversed
        embossed images of 88 different characters arranged on four
        parallels of latitude; one could change the font by swapping
        in a different golf ball.

        This was the technology that enabled {APL} to use a
        non-{EBCDIC}, non-{ASCII}, and in fact completely non-standard
        {character set}.  This put it 10 years ahead of its time -
        where it stayed, firmly rooted, for the next 20, until
        {character displays} gave way to programmable {bit-mapped}
        devices with the flexibility to support other character sets.

        (1994-12-15)

GOM

        Good Old MAD.

        Don Boettner, U Mich.  MAD for the IBM 360.  Parts of the MTS
        {time-sharing} system were written in GOM.

gonk

        <jargon> /gonk/ 1. To prevaricate or to embellish the truth
        beyond any reasonable recognition.  In German the term is
        (mythically) "gonken"; in Spanish the verb becomes "gonkar".
        "You're gonking me.  That story you just told me is a bunch of
        gonk."  In German, for example, "Du gonkst mir" (You're
        pulling my leg).

        See also {gonkulator}.

        2. (British) To grab some sleep at an odd time.

        Compare {gronk out}.

        (1995-03-07)

gonkulator

        /gon'kyoo-lay-tr/ (From "Hogan's Heroes", the TV series) A
        pretentious piece of equipment that actually serves no useful
        purpose.  Usually used to describe one's least favourite piece
        of computer hardware.

        See {gonk}.

        (1995-03-07)

GOOD

        <language, database> {Graph-Oriented Object
        Database}.

Good Thing

        <convention> (From the 1930 Sellar and Yeatman parody "1066
        And All That") Often capitalised; always pronounced as if
        capitalised.

        1. Self-evidently wonderful to anyone in a position to notice:
        "The {Trailblazer}'s 19.2 K{baud} {PEP} mode with {on-the-fly}
        {Lempel-Ziv compression} is a Good Thing for sites relaying
        {netnews}".

        2. Something that can't possibly have any ill side-effects and
        may save considerable grief later: "Removing the
        {self-modifying code} from that {shared library} would be a
        Good Thing".

        3. When said of software tools or libraries, as in "{Yacc} is
        a Good Thing", specifically connotes that the thing has
        drastically reduced a programmer's work load.

        Opposite: {Bad Thing}, compare {big win}.

        (1995-05-07)

Gopher

        <networking, protocol> A popular distributed document
        retrieval system which started as a {Campus Wide Information
        System} at the {University of Minnesota}.  Many {host}s on the
        {Internet} now run Gopher servers which provide a menu of
        documents.  A document may be a plain text file, sound, image,
        submenu or other {Gopher object type}.  It may be stored on
        another host or may provide the ability to search through
        certain files for a given string.

        Gopher is defined in {RFC 1436}.

        To access Gopher you need a {Gopher client}.  Next you need to
        know the name of a gopher {server}.  A good place to start is
        gopher.micro.umn.edu {(gopher://gopher.micro.umn.edu/)}.

        The latest releases of gopher software (including {client}
        software) are available via {anonymous FTP} from
        boombox.micro.umn.edu in the /pub/gopher directory
        {(ftp://boombox.micro.umn.edu/pub/gopher)}.

        Gopher has been largely superceded by the {World-Wide Web}
        (WWW), a similar document retrieval system which includes
        access to Gopher documents as one of its {access schemes}.

        (1995-05-07)

Gopher client

        A program which runs on your local machine and provides a user
        interface to the {Gopher} {protocol}.  Gopher clients are
        available for ordinary terminals, the {X Window System}, {GNU
        Emacs} and other systems.

        {(ftp://boombox.micro.umn.edu/)}

Gopher object type

        A character specifying how to display a {Gopher} document.
        Current types are:

         0  document
         1  menu
         2  CSO phone book entity
         3  error
         4  binhex binary
         5  DOS binary (deprecated)
         6  UU  binary (deprecated)
         7  index search
         8  telnet connection
         9  binary
         +  duplicate server for previous object
         I  image
         M  MIME document
         T  tn3270 based telnet connection
         c  cal
         g  GIF image
         h  HTML
         s  binary
         u  {Usenet} newsgroup

        (1999-10-14)

gorets

        /gor'ets/ The unknown ur-noun, fill in your own meaning.
        Found especially on the {Usenet} newsgroup alt.gorets, which
        seems to be a running contest to redefine the word by
        implication in the funniest and most peculiar way, with the
        understanding that no definition is ever final.  [A
        correspondent from the Former Soviet Union informs me that
        "gorets" is Russian for "mountain dweller" - ESR] Compare
        {frink}.

gorilla arm

        The side-effect that destroyed touch-screens as a mainstream
        input technology despite a promising start in the early 1980s.
        It seems the designers of all those {spiffy} touch-menu
        systems failed to notice that humans aren't designed to hold
        their arms in front of their faces making small motions.
        After more than a very few selections, the arm begins to feel
        sore, cramped, and oversized - the operator looks like a
        gorilla while using the touch screen and feels like one
        afterwards.  This is now considered a classic cautionary tale
        to human-factors designers; "Remember the gorilla arm!" is
        shorthand for "How is this going to fly in *real* use?".

go root

        [Unix] To temporarily enter {root mode} in order to perform a
        privileged operation.  This use is deprecated in Australia,
        where the verb "root" refers to animal sex.  See {su}.

gorp

        /gorp/ (CMU, perhaps from the canonical hiker's food, Good Old
        Raisins and Peanuts) Another {metasyntactic variable}, like
        {foo} and {bar}.

GOSIP

        {Government OSI Profile}

Gosling, James

        {James Gosling}

GOSMACS

        /goz'maks/ Gosling EMACS.  The first {EMACS} implementation in
        {C}, predating but now largely eclipsed by {GNU} {Emacs}.
        Originally {freeware}; a commercial version is now modestly
        popular as {UniPress Emacs}.  The author (James Gosling) went
        on to invent {NeWS}.

Gosperism

        /gos'p*r-izm/ A hack, invention, or saying due to arch-hacker
        R. William (Bill) Gosper.  This notion merits its own term
        because there are so many of them.  Many of the entries in
        {HAKMEM} are Gosperisms.

        See also {life}.

GOSPL

        Graphics-Oriented Signal Processing Language.  A graphical DSP
        language for simulation.

        ["Graphic Oriented Signal Processing Language - GOSPL",
        C.D. Covington et al, Proc ICASSP-87, 1987].

gotcha

        <jargon, programming> A {misfeature} of a system, especially a
        programming language or environment, that tends to breed
        {bug}s or mistakes because it both enticingly easy to invoke
        and completely unexpected and/or unreasonable in its outcome.

        For example, a classic gotcha in {C} is the fact that

                if (a=b) {code;}

        is syntactically valid and sometimes even correct.  It puts
        the value of "b" into "a" and then executes "code" if "a" is
        non-zero.  What the programmer probably meant was

                if (a==b) {code;}

        which executes "code" if "a" and "b" are equal.

        (1995-04-17)

goto

        <programming> (Or "GOTO", "go to", "GO TO", "JUMP", "JMP") A
        construct and {keyword} found in several higher-level
        programming languages (e.g. {FORTRAN}, {COBOL}, {BASIC}, {C})
        to cause an {unconditional jump} or transfer of {control} from
        one point in a program to another.  The destination of the
        jump is usually indicated by a {label}.

        In some languages, a label is a line number, in which case
        every statement may be labelled, in others a label is an
        optional alphanumeric {identifier}.  In any case, the
        destination label usually follows the GOTO keyword.

        Use of the GOTO instruction in {high level language}
        programming fell into disrepute with the development and
        general acceptance of {structured programmimg}, and especially
        following the famous article "GOTO statement {considered
        harmful}".  Since a GOTO is effectively an {assignment} to the
        {program counter}, it is tempting to make the generalisation
        "assignment considered harmful" and indeed, this is the basis
        of {functional programming}.

        Nearly(?) all {machine language} {instruction set}s include a
        GOTO instruction, though in this context it is usually called
        branch or jump or some {mnemonic} based on these.

        See also {COME FROM}.

        (1995-04-17)

Gottlob Frege

        <person, history, philosophy, mathematics, logic, theory>
        (1848-1925) A mathematician who put mathematics on a new and
        more solid foundation.  He purged mathematics of mistaken,
        sloppy reasoning and the influence of Pythagoras.  Mathematics
        was shown to be a subdivision of {formal logic}.

        [Where?]

        (1997-07-14)

gov

        <networking> The {top-level domain} for US government bodies.

        (1999-01-26)

Government OSI Profile

        <networking, standard> (GOSIP) A subset of {OSI} {standards}
        specific to US Government procurements, designed to maximize
        {interoperability} in areas where plain OSI standards are
        ambiguous or allow excessive options.

        (1995-12-13)

go voice

        <communications> When two or more parties stop communicating
        digitally and resuming the conversation via voice
        communication over the telephone.

        Prototypically this is used (e.g., "Wanna go voice?") between
        two modem users to denote the action of picking up the phone
        while shutting off the modem, in order to use the same line
        for voice communication as had was being used for data
        transmission.

        Compare: {Voice-Net}.

        (1997-01-31)

GP

        Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
        1959).

gp

        <networking> The {country code} for Guadeloupe.

        (1999-01-27)

GPF

        {General Protection failure}/fault

GPIB

        {IEEE 488}

GPL

        1. {General Purpose Language}.

        2. ["A Sample Management Application Program in a Graphical
        Data-driven Programming language", A.L. Davis et al, Digest of
        Papers, Compcon Spring 81, Feb 1981, pp. 162-167].

        3. {Genken Programming Language}.

        4. {General Public License}.

GPM

        {General Purpose Macro-generator}

GPRS

        {General Packet Radio Service}

GPS

        {Global Positioning System}

GPSS

        General Purpose Systems Simulator.  Geoffrey Gordon, 1960.
        Discrete simulations.  "The Application of GPSS V to Discrete
        System Simulation", G.  Gordon, P-H 1975.  Versions include
        GPSS II (1963), GPSS III (1965), GPS/360 (1967), and GPSS V
        (1970).

GPV

        {General Public Virus}

GPX

        Early system on UNIVAC II.  Listed in CACM 2(5):16 (May 1959).

gq

        <networking> The {country code} for Equatorial Guinea.

        (1999-01-27)

gr

        <networking> The {country code} for Greece.

        (1999-01-27)

GRAAL

        ("Grail") General Recursive Applicative and Algorithmic
        Language.  FP with polyadic combinators.  "Graal: A Functional
        Programming System with Uncurryfied Combinators and its
        Reduction Machine", P. Bellot in ESOP 86, G. Goos ed, LNCS
        213, Springer 1986.

Grace Hopper

        <person> US Navy Rear Admiral Grace Brewster Hopper
        (1906-12-09 to 1992-01-01), ne Grace Brewster Murray.

        Hopper is believed to have concieved the concept of the
        {compiler} with the {A-0} in 1952.  She also developed the
        first commercial {high-level language}, which eventually
        evolved into {COBOL}.  She worked on the {Mark I} computer
        with Howard Aiken and with {BINAC} in 1949.

        She is credited with having coined the term "debug", and the
        adage "it is always easier to ask forgiveness than it is to
        get permission" (with various wordings), which has been the
        guiding principle in {sysadmin} decisions ever since.

        See also the entries {debug} and {bug}.

        Hopper is buried at Arlington National Cemetery.  In 1994, the
        US Navy named a new ship, the guided-missile destroyer {USS
        Hopper (http://www.hopper.navy.mil/)}, after her.

        (1999-06-29)

GRAF

        GRaphic Additions to FORTRAN.

        {FORTRAN} plus graphic data types.

        ["GRAF: Graphic Additions to FORTRAN", A. Hurwitz et al, Proc
        SJCC 30 (1967)].

        [Sammet 1969, p. 674].

        (1995-01-23)

Graffiti

        Handwriting recognition software for the {Newton} and {Zoomer}
        which recognises symbols that aren't necessarily letters.
        This gives greater speed and accuracy.  It was written by
        {Berkeley Softworks}.

        (1995-01-24)

GRAIL

        Graphical Input Language.

        A {flow chart} language entered on a graphics tablet.  The
        graphical follow-on to {JOSS}.

        ["The GRAIL Language and Operations", T.O. Ellis et al,
        RM-6001-ARPA, RAND, Sept 1969].

        (1995-01-23)

GRAIN

        A pictorial {query language}.

        ["Pictorial Information Systems", S.K.  Chang et al eds,
        Springer 1980].

        (1995-01-23)

grain

        {granularity}

GRAM

        An extension of {BNF} used by the {SIS} compiler generator.

        ["SIS - Semantics Implementation System", P.D. Mosses, TR
        DAIMI MD-30, Aarhus U, Denmark].

        (1995-01-23)

grammar

        A formal definition of the syntactic structure of a language
        (see {syntax}), normally given in terms of {production rule}s
        which specify the order of constituents and their
        sub-constituents in a {sentence} (a well-formed string in the
        language).  Each rule has a left-hand side symbol naming a
        syntactic category (e.g. "noun-phrase" for a {natural
        language} grammar) and a right-hand side which is a sequence
        of zero or more symbols.  Each symbol may be either a
        {terminal symbol} or a non-terminal symbol.  A terminal symbol
        corresponds to one "{lexeme}" - a part of the sentence with
        no internal syntactic structure (e.g. an identifier or an
        operator in a computer language).  A non-terminal symbol is
        the left-hand side of some rule.

        One rule is normally designated as the top-level rule which
        gives the structure for a whole sentence.

        A grammar can be used either to parse a sentence (see
        {parser}) or to generate one.  Parsing assigns a terminal
        syntactic category to each input token and a non-terminal
        category to each appropriate group of tokens, up to the level
        of the whole sentence.  Parsing is usually preceded by
        {lexical analysis}.  Generation starts from the top-level rule
        and chooses one alternative production wherever there is a
        choice.

        See also {BNF}, {yacc}, {attribute grammar}, {grammar
        analysis}.

grammar analysis

        A program written in {ABC} for answering such questions as
        "what are the start symbols of all rules", "what symbols can
        follow this symbol", "which rules are left recursive", and so
        on.  Includes a grammar of {ISO Pascal}.

        Version 1 by Steven Pemberton <Steven.Pemberton@cwi.nl>.
        Ports to {Unix}, {MS-DOS}, {Atari}, {Macintosh}.  FTP:
        ftp.eu.net, ftp.nluug.net
        programming/languages/abc/examples/grammar/.

        (1993-07-05)

grammatical inference

        Deducing a {grammar} from given examples.  Also known as
        "inductive inference" and recently as "computational
        learning".

granularity

        <jargon, parallel> The size of the units of {code} under
        consideration in some context.  The term generally refers to
        the level of detail at which code is considered, e.g. "You can
        specify the granularity for this profiling tool".

        The most common computing use is in parallelism where "fine
        grain parallelism" means individual tasks are relatively small
        in terms of code size and execution time, "coarse grain" is
        the opposite.  You talk about the "granularity" of the
        parallelism.

        The smaller the granularity, the greater the potential for
        parallelism and hence speed-up but the greater the overheads
        of synchronisation and communication.

        (1997-05-08)

Grapes

        A {Modula}-like system description language.

        E-mail: <peter@cadlab.cadlab.de>.

        ["GRAPES Language Description.  Syntax, Semantics and Grammar
        of GRAPES-86", Siemens Nixdorf Inform, Berlin 1991, ISBN
        3-8009-4112-0].

Grapevine

        A distributed system project.

        [Who?  Where?  Why?]

graph

        1. <mathematics> A collection of {nodes} and {edges}.

        See also {connected graph}, {degree}, {directed graph}, {Moore
        bound}, {regular graph}, {tree}.

        2. <graphics> A visual representation of algebraic equations
        or data.

        (1996-09-22)

Graph Algorithm and Software Package

        <library> (GASP) A {PL/I} extension for programming graph
        {algorithms}.

        ["GASP - Gprah Algorithm Software Package", S. Chase, TR CS
        Dept, U Illinois, Dec 1969].

        (1998-02-27)

graph coloring

        {graph colouring}

graph colouring

        <application> A {constraint-satisfaction} problem often used
        as a test case in research, which also turns out to be
        equivalent to certain real-world problems (e.g. {register
        allocation}).  Given a {connected graph} and a fixed number of
        colours, the problem is to assign a colour to each node,
        subject to the constraint that any two connected nodes cannot
        be assigned the same colour.  This is an example of an
        {NP-complete} problem.

        See also {four colour map theorem}.

Graphic ALGOL

        Generation of shaded perspective picures in real time.

        ["An Extended ALGOL 60 for Shaded Computer Graphics",
        B. Jones, Proc ACM Symp on Graphic Languages, Apr 1976].

Graphical Kernel System

        <graphics, standard> (GKS) The widely recognised standard
        {ANSI} X3.124 for graphical input/output.  GKS is worked on by
        the {ISO}/{IEC} group {JTC1/SC24}.  It provides applications
        programmers with standard methods of creating, manipulating,
        and displaying or printing computer graphics on different
        types of computer graphics output devices.  It provides an
        abstraction to save programmers from dealing with the detailed
        capabilities and interfaces of specific hardware.

        GKS defines a basic two-dimensional graphics system with:
        uniform input and output {primitives}; a uniform interface to
        and from a {GKS metafile} for storing and transferring
        graphics information.  It supports a wide range of graphics
        output devices including such as {printers}, {plotters},
        {vector graphics} devices, {storage tubes}, {refresh
        displays}, {raster displays}, and {microfilm recorders}.

        (1999-04-01)

Graphical User Interface

        <operating system> (GUI) The use of pictures rather than just
        words to represent the input and output of a program.  A
        program with a GUI runs under some {windowing system}
        (e.g. The {X Window System}, {Microsoft Windows}, {Acorn}
        {RISC OS}, {NEXTSTEP}).  The program displays certain {icons},
        {buttons}, {dialogue boxes} etc. in its {windows} on the
        screen and the user controls it mainly by moving a {pointer}
        on the screen (typically controlled by a {mouse}) and
        selecting certain objects by pressing buttons on the mouse
        while the pointer is pointing at them.

        Though {Apple Computer} would like to claim they invented the
        GUI with their {Macintosh} {operating system}, the concept
        originated in the early 1970s at {Xerox}'s {PARC} laboratory.

        Compare {command line interface}.

        (1996-01-12)

Graphic Display Interface

        <hardware> (GDI) {graphics adaptor}.

        (1995-03-16)

Graphic Language

        For specifying graphic operations.

        ["A Problem Oriented Graphic Language", P.J. Schwinn, proc ACM
        22nd Natl Conf, 1967].

        [Sammet 1969, p. 677].

graphics accelerator

        <graphics, hardware> {Hardware} (often an extra circuit board)
        to perform tasks such as plotting lines and surfaces in two or
        three dimensions, filling, shading and hidden line removal.

        (1997-07-14)

graphics adapter

        {graphics adaptor}

graphics adaptor

        <hardware, graphics> (Or "graphics adapter", "graphics card",
        "video adaptor", etc.) A circuit board fitted to a computer,
        especially an {IBM PC}, containing the necessary {video
        memory} and other electronics to provide a {bitmap display}.

        Adaptors vary in the {resolution} (number of {pixels}) and
        number of colours they can display, and in the {refresh rate}
        they support.  These parameters are also limited by the
        {monitor} to which the adaptor is connected.  A number of such
        {display standards}, e.g. {SVGA}, have become common and
        different {software} requires or supports different sets.

        (1996-09-16)

graphics card

        {graphics adaptor}

Graphics Interchange Format

        <graphics, file format> /gif/, occasionally /jif/ (GIF, GIF
        89A) A standard for digitised {images} compressed with the
        {LZW} {algorithm}, defined in 1987 by {CompuServe} (CIS).

        Graphics Interchange Format and GIF are service marks of
        {CompuServe} Incorporated.  This only affects use of GIF
        within Compuserve, and pass-through licensing for software to
        access them, it doesn't affect anyone else's use of GIF.  It
        followed from a 1994 legal action by {Unisys} against CIS for
        violating Unisys's {LZW} {software patent}.  The CompuServe
        Vice President has stated that "CompuServe is committed to
        keeping the GIF 89A specification as an open, fully-supported,
        non-proprietary specification for the entire on-line community
        including the {World-Wide Web}".

        {Filename extension}: .gif.

        {File format (ftp://peipa.essex.ac.uk/ipa/info/file-formats)}.

        {GIF89a specification
        (http://asterix.seas.upenn.edu/~mayer/lzw_gif/gif89a.html)}.

        See also {interlacing}, {animated GIF}.

        (1998-09-07)

Graphics Interface Format

        <spelling> You mean "{Graphics Interchange Format}".

        (1999-10-11)

graphic workstation

        <graphics, computer> A {workstation} specifically configured
        for graphics works such as {image manipulation}, {bitmap
        graphics} ("paint"), and {vector graphics} ("draw") type
        applications.  Such work requires a powerful {CPU} and a high
        {resolution} display.

        A graphic workstation is very similar to a {CAD} workstation
        and, given the typical specifications of personal computers
        currently available in 1999, the distinctions are very blurred
        and are more likely to depend on availability of specific
        {software} than any detailed hardware requirements.

        (1999-05-04)

Graph-Oriented Object Database

        <language, database> (GOOD) A graph manipulation language for
        use as a {database query language}.

        ["A Graph-Oriented Object Database Model", M. Gyssens et al,
        Proc ACM Symp Princs of Database Sys, Mar 1990].

        (1995-03-07)

graph plotter

        {plotter}

graph reduction

        A technique invented by Chris Wadsworth where an expression is
        represented as a {directed graph} (usually drawn as an
        inverted tree).  Each node represents a function call and its
        subtrees represent the arguments to that function.  Subtrees
        are replaced by the expansion or value of the expression they
        represent.  This is repeated until the tree has been reduced
        to a value with no more function calls (a {normal form}).

        In contrast to {string reduction}, graph reduction has the
        advantage that common subexpressions are represented as
        pointers to a single instance of the expression which is only
        reduced once.  It is the most commonly used technique for
        implementing {lazy evaluation}.

graph rewriting system

        An extension of a {term rewriting system} which uses {graph
        reduction} on terms represented by {directed graph}s to avoid
        duplication of work by sharing expressions.

GRAPPLE

        GRAPh Processing LanguagE.  1968.

        ["A Directed Graph Representation for Computer Simulation of
        Belief Systems", L.G. Tesler et al, Math Biosciences 2:19-40
        (1968)].

GRAS

        A {public domain} {graph-oriented database} system for
        {software engineering} applications from {RWTH Aachen}.

GRASP/Ada

        Graphical Representation of Algorithms, Structures and
        Processes.

        ["A Graphically Oriented Specification Language for Automatic
        Code Generation", J.H. Cross, Auburn U, NASA CR-183212, 1989].

GRASPIN

        An Esprit project to develop a personal software engineering
        environment to support the construction and verification of
        distributed and non-sequential software systems.

grault

        /grawlt/ Yet another {metasyntactic variable}, invented by
        Mike Gallaher and propagated by the {GOSMACS} documentation.
        See {corge}.

Gray

        A {parser generator} written in {Forth} by Martin Anton Ertl
        <anton@mips.complang.tuwien.ac.at>.  Gray takes grammars in an
        {extended BNF} and produces executable Forth code for
        {recursive descent parser}s.  There is no special support for
        error handling.  Version 3 runs under {Tile Forth} Release 2
        by Mikael Patel.

        (1992-05-22)

graybar land

        <jargon> The place you go while you're staring at a computer
        that's processing something very slowly (while you watch the
        grey bar creep across the screen).

        "I was in graybar land for hours, waiting for that CAD
        rendering".

        (1997-04-17)

gray code

        <hardware> A binary sequence used to convert the angular
        position of a disk to digital form.  Gray code has the
        property that only one bit changes between any two positions
        (the two positions' codes have a {Hamming distance} of one).

        A radial line of sensors reads the code off the surface of the
        disk and if the disk is half-way between two positions each
        sensor might read its bit from both positions at once but
        since only one bit differs between the two, the value read is
        guaranteed to be one of the two valid values rather than some
        third (invalid) combination (a {glitch}).

        One possible {algorithm} for generating a gray code sequence
        is to toggle bits in the order 0, 1, 0, 2, 0, 1, 0, 3, ...
        This can also be stated as "toggle the lowest numbered bit
        that results in a new code".  Here is a four bit gray code
        sequence generated in this way:

                0 0 0 0
                0 0 0 1
                0 0 1 1
                0 0 1 0
                0 1 1 0
                0 1 1 1
                0 1 0 1
                0 1 0 0
                1 1 0 0
                1 1 0 1
                1 1 1 1
                1 1 1 0
                1 0 1 0
                1 0 1 1
                1 0 0 1
                1 0 0 0

        [Why "Gray"?]

        (1994-11-09)

gray-scale

        <spelling> US spelling of "{grey-scale}".

<gr&d>

        <chat> Grinning, running and ducking.

        See {emoticon}.

        (1995-03-17)

GRE

        {Generic Routing Encapsulation}

greater than

        <character> ">" {ASCII} character 62.

        Common names: {ITU-T}: greater than; ket ("<" = bra); right
        angle; right angle bracket; right broket.  Rare: into,
        towards; write to; blow ("<" = suck); gozinta; out; zap (all
        from {Unix} {I/O redirection}); {INTERCAL}: right angle.

        See also {less than}.

        (1995-03-17)

greatest lower bound

        <theory> (glb, meet, infimum) The greatest lower bound of two
        elements, a and b is an element c such that c <= a and c <= b
        and if there is any other lower bound c' then c' <= c.

        The greatest lower bound of a set S is the greatest element b
        such that for all s in S, b <= s.  The glb of mutually
        comparable elements is their minimum but in the presence of
        incomparable elements, if the glb exists, it will be some
        other element less than all of them.

        glb is the dual to {least upper bound}.

        (In {LaTeX} "<=" is written as {\sqsubseteq}, the glb of two
        elements a and b is written as a {\sqcap} b and the glb of set
        S as \bigsqcap S).

        (1995-02-03)

Great Renaming

        The {flag day} in 1985 on which all of the non-local groups on
        the {Usenet} had their names changed from the net.- format to
        the current multiple-hierarchies scheme.  Used especially in
        discussing the history of newsgroup names.  "The oldest
        sources group is comp.sources.misc; before the Great Renaming,
        it was net.sources."

Great Runes

        Uppercase-only text or display messages.  Some archaic
        {operating system}s still emit these.

        See also {runes}, {smash case}, {fold case}.

        Decades ago, back in the days when it was the sole supplier of
        long-distance hardcopy transmittal devices, the Teletype
        Corporation was faced with a major design choice.  To shorten
        code lengths and cut complexity in the printing mechanism, it
        had been decided that teletypes would use a monocase font,
        either ALL UPPER or all lower.  The Question Of The Day was
        therefore, which one to choose.  A study was conducted on
        readability under various conditions of bad ribbon, worn print
        hammers, etc.  Lowercase won; it is less dense and has more
        distinctive letterforms, and is thus much easier to read both
        under ideal conditions and when the letters are mangled or
        partly obscured.  The results were filtered up through
        {management}.  The chairman of Teletype killed the proposal
        because it failed one incredibly important criterion:

          "It would be impossible to spell the name of the Deity
          correctly."

        In this way (or so, at least, hacker folklore has it)
        superstition triumphed over utility.  Teletypes were the major
        input devices on most early computers, and terminal
        manufacturers looking for corners to cut naturally followed
        suit until well into the 1970s.  Thus, that one bad call stuck
        us with Great Runes for thirty years.

        (1994-12-02)

Great Worm

        {Internet Worm}

greek

        1. <text, graphics> To display text as abstract dots and lines
        in order to give a preview of layout without actually being
        legible.  This is faster than drawing the characters correctly
        which may require scaling or other transformations.  Greeking
        is particularly useful when displaying a reduced image of a
        document where the text would be too small to be legible on
        the display anyway.

        2. {lorem ipsum}.

        (1999-06-27)

greeking

        {greek}

Green

        A language proposed by Cii {Honeywell-Bull} to meet the DoD
        {Ironman} requirements which led to {Ada}.  This language won
        in 1979.

        ["On the GREEN Language Submitted to the DoD", E.W. Dijkstra,
        SIGPLAN Notices 13(10):16-21 (Oct 1978)].

        (1994-12-02)

Green Book

        1.  <publication> Informal name for one of the four standard
        references on {PostScript}.  The other three official guides
        are known as the {Blue Book}, the {Red Book}, and the {White
        Book}.

        ["PostScript Language Program Design", Adobe Systems,
        Addison-Wesley, 1988 (ISBN 0-201-14396-8)].

        2. <publication> Informal name for one of the three standard
        references on {SmallTalk}.  Also associated with blue and red
        books.

        ["Smalltalk-80: Bits of History, Words of Advice", by Glenn
        Krasner (Addison-Wesley, 1983; QA76.8.S635S58; ISBN
        0-201-11669-3)].

        3.  <publication> The "X/Open Compatibility Guide", which
        defines an international standard {Unix} environment that is a
        proper superset of {POSIX}/SVID.  It also includes
        descriptions of a standard utility toolkit, systems
        administrations features, and the like.  This grimoire is
        taken with particular seriousness in Europe.  See {Purple
        Book}.

        4.  <publication> The {IEEE} 1003.1 {POSIX} Operating Systems
        Interface standard has been dubbed "The Ugly Green Book".

        5.  <publication> Any of the 1992 standards issued by the
        {ITU-T}'s tenth plenary assembly.  These include, among other
        things, the dreadful {X.400} {electronic mail} standard and
        the Group 1 through 4 fax standards.

        6. {Green Book CD-ROM}.

        See also {book titles}.

        (1996-12-03)

Green Book CD-ROM

        A standard {CD-ROM} format developed by {Philips} for {CD-i}.
        It is {ISO 9660} compliant and uses mode 2 form 2 addressing.
        It can only be played on drives which are XA ({Extended
        Architecture}) compatible.

        Many Green Book discs contain {CD-i} applications which can
        only be played on a {CD-i} player but many others contain
        films or music videos.  Video CDs in Green Book format are
        normally labelled "Digital Video on CD"

        Green Book was obsoleted by {White book CD-ROM} in March 1994.

        (1994-11-02)

green bytes

        (Or "green words") Meta-information embedded in a file, such
        as the length of the file or its name; as opposed to keeping
        such information in a separate description file or record.
        The term comes from an {IBM} user's group meeting (ca. 1962)
        at which these two approaches were being debated and the
        diagram of the file on the blackboard had the "green bytes"
        drawn in green.

        By extension, the non-data bits in any self-describing format.
        "A GIF file contains, among other things, green bytes
        describing the packing method for the image".

        Compare {out-of-band}, {zigamorph}, {fence}.

        (1994-11-02)

green card

        [after the "IBM System/360 Reference Data" card] A summary of
        an assembly language, even if the colour is not green.  Less
        frequently used now because of the decrease in the use of
        assembly language.  "I'll go get my green card so I can check
        the {addressing mode} for that instruction."  Some green cards
        are actually booklets.

        The original green card became a yellow card when the
        System/370 was introduced, and later a yellow booklet.  An
        anecdote from IBM refers to a scene that took place in a
        programmers' terminal room at Yorktown in 1978.  A luser
        overheard one of the programmers ask another "Do you have a
        green card?"  The other grunted and passed the first a thick
        yellow booklet.  At this point the luser turned a delicate
        shade of olive and rapidly left the room, never to return.

green lightning

        [IBM] 1. Apparently random flashing streaks on the face of
        3278-9 terminals while a new symbol set is being downloaded.
        This hardware bug was left deliberately unfixed, as some
        genius within IBM suggested it would let the user know that
        "something is happening".  That, it certainly does.  Later
        microprocessor-driven IBM colour graphics displays were
        actually *programmed* to produce green lightning!

        2. [proposed] Any bug perverted into an alleged feature by
        adroit rationalisation or marketing.  "Motorola calls the CISC
        cruft in the 88000 architecture "compatibility logic", but I
        call it green lightning".  See also {feature}.

green machine

        A computer or peripheral device that has been designed and
        built to military specifications for field equipment (that is,
        to withstand mechanical shock, extremes of temperature and
        humidity, and so forth).  Comes from the olive-drab "uniform"
        paint used for military equipment.

green monitor

        {Advanced Power Management}

Green's Theorem

        <humour> (TMRC) For any story, in any group of people there
        will be at least one person who has not heard the story.  A
        refinement of the theorem states that there will be *exactly*
        one person (if there were more than one, it wouldn't be as bad
        to re-tell the story).  The name of this theorem is a play on
        a fundamental theorem in calculus.

        (1994-12-16)

Greenwich Mean Time

        <unit> (GMT) The common name for {Universal Time}.

        (1998-08-26)

Greg Olson

        <person> President and CEO of {Sendmail Inc.}.  Olson is an
        industry veteran who worked on {distributed systems} at
        {Summit Systems Inc.}  then at {Britton Lee Inc.}, {Sybase
        Inc.} and {Integrated Systems Inc.}.

        (1998-08-25)

grep

        <tool, information science> <tool> A {Unix} command for
        searching files for lines matching a given {regular
        expression} (RE).  Named after the {qed}/{ed} editor
        subcommand "g/re/p", where re stands for a regular expression,
        to Globally search for the Regular Expression and Print the
        lines containing matches to it.  There are two other variants,
        fgrep which searches only for fixed strings and {egrep} which
        accepts extended REs but is usually the fastest of the three.

        Used by extension to mean "to look for something by pattern".
        When browsing through a large set of files, one may speak of
        "grepping around".  "Grep the bulletin board for the system
        backup schedule, would you?"  See also {vgrep}.

grey-scale

        <graphics> (US "gray-scale") 1. Composed of (discrete) shades
        of grey.  If the {pixels} of a grey-scale {image} have N
        {bit}s, they may take values from zero, representing black up
        to 2^N-1, representing white with intermediate values
        representing increasingly light shades of grey.  If N=1 the
        image is not called grey-scale but could be called
        {monochrome}.

        2. A range of acurately known shades of grey printed out for
        use in calibrating those shades on a display or printer.

        (1995-03-17)

Greystone Technologies

        <company> The producers of the {GT/M} {MUMPS} compiler and
        {GT/SQL} {pre-processor} for {VAX} and {DEC Alpha}.

        [Address?]

        (1995-01-10)

GRG

        A computer algebra system for differential geometry,
        gravitation and field theory.  Version 3.1 works with
        PSL-based REDUCE 3.3 or 3.4.

        E-mail: V.V. Zhytnikov <vvzhy@phy.ncu.edu.tw>.

        (1994-12-16)

GRIB

        GRid In Binary.

        The World Meteorological Organization's data format.

        (1995-01-10)

grick

        /grik/ ({WPI}, first used by Tim Haven to describe "grick
        trigonometry", a shortcut method of determing attack angles in
        grid-based games like Star Trek) Any integral increment of
        measurement.  E.g. "Please turn the stereo up a few gricks".

        (1995-01-31)

grilf

        Girl-friend.

        Like {newsfroup} and {filk}, a typo incarnated as a new word.
        Seems to have originated sometime in 1992.

        (1995-01-31)

Grim File Reaper

        <storage, operating system> (GFR) An {ITS} and {LISP Machine}
        utility to remove files according to some program-automated or
        semi-automatic manual procedure, especially one designed to
        reclaim mass storage space or reduce name-space clutter (the
        original GFR actually moved files to tape).

        See also {prowler}, {reaper}.  Compare {GC}, which discards
        only provably worthless stuff.

        (1996-06-20)

GRIND

        GRaphical INterpretive Display.

        A graphics input language for the {PDP-9}.

        ["GRIND: A Language and Translator for Computer Graphics",
        A.P. Conn, Dartmouth, June 1969].

        (1995-01-31)

grind

        1. (MIT and Berkeley) To prettify hardcopy of code, especially
        LISP code, by reindenting lines, printing keywords and
        comments in distinct fonts (if available), etc.  This usage
        was associated with the MacLISP community and is now rare;
        {prettyprint} was and is the generic term for such operations.

        2. (Unix) To generate the formatted version of a document from
        the {nroff}, {troff}, {TeX}, or Scribe source.

        3. To run seemingly interminably, especially (but not
        necessarily) if performing some tedious and inherently useless
        task.  Similar to {crunch} or {grovel}.  Grinding has a
        connotation of using a lot of CPU time, but it is possible to
        grind a disk, network, etc.

        See also {hog}.

        4. To make the whole system slow.  "Troff really grinds a
        PDP-11."

        5. "grind grind" excl. Roughly, "Isn't the machine slow
        today!"

        (1994-12-16)

grind crank

        A mythical accessory to a {terminal}.  A crank on the side of
        a monitor, which when operated makes a zizzing noise and
        causes the computer to run faster.  Usually one does not refer
        to a grind crank out loud, but merely makes the appropriate
        gesture and noise.  See {grind} and {wugga wugga}.

        Historical note: At least one real machine actually had a
        grind crank - the R1, a research machine built toward the
        end of the days of the great vacuum tube computers, in 1959.
        R1 (also known as "The Rice Institute Computer" (TRIC) and
        later as "The Rice University Computer" (TRUC)) had a
        {single-step}/free-run switch for use when debugging programs.
        Since single-stepping through a large program was rather
        tedious, there was also a crank with a cam and gear
        arrangement that repeatedly pushed the single-step button.
        This allowed one to "crank" through a lot of code, then slow
        down to single-step for a bit when you got near the code of
        interest, poke at some registers using the console typewriter,
        and then keep on cranking.

GRIP

        Graph Reduction In Parallel.

        Simon Peyton Jones's GRIP machine built at {UCL}, now at the
        {University of Glasgow}.  It has many processors ({Motorola
        68020} or other) on {Futurebus} with intelligent memory units.

        (1994-12-14)

gripenet

        [IBM] A wry (and thoroughly unofficial) name for {IBM}'s
        internal {VNET} system, deriving from its common use by IBMers
        to voice pointed criticism of IBM management that would be
        taboo in more formal channels.

gritch

        /grich/ 1.  A complaint (often caused by a {glitch}).

        2. To complain.  Often verb-doubled: "Gritch gritch".

        3. A synonym for {glitch} (as verb or noun).

        (1995-01-31)

grix

        /griks/ ({WPI}) A meta-number, said to be an integer between 6
        and 7.  Used either alone or with {flib} or suffixes such as
        -ty, -teen, etc. to denote an arbitrary integer (see {N}).
        "This system will {bomb} if there are grixty-flib users on
        it."

        (1995-01-31)

groff

        GNU roff.

        {GNU}'s implementation of {roff} in {C++}.

        See also {nroff}, {troff}.

        Version 1.07 by James J. Clark <jjc@jclark.com>.

        FTP groff-1.07.tar.z from a {GNU archive site}.

        (1993-03-03)

grok

        /grok/, /grohk/ (From the novel "Stranger in a Strange Land",
        by Robert A. Heinlein, where it is a Martian word meaning
        literally "to drink" and metaphorically "to be one with")

        1. To understand, usually in a global sense.  Connotes
        intimate and exhaustive knowledge.

        Contrast {zen}, which is similar supernal understanding
        experienced as a single brief flash.  See also {glark}.

        2. Used of programs, may connote merely sufficient
        understanding.  "Almost all C compilers grok the "void" type
        these days."

        (1995-01-31)

gronk

        /gronk/ Popularised by Johnny Hart's comic strip "B.C." but
        the word apparently predates that.

        1. To clear the state of a {wedged} device and restart it.
        More severe than "to {frob}" (sense 2).

        2. [TMRC] To cut, sever, smash, or similarly disable.

        3. The sound made by many 3.5-inch diskette drives.  In
        particular, the microfloppies on a Commodore {Amiga} go
        "grink, gronk".

gronked

        1. Broken.  "The teletype scanner was gronked, so we took the
        system down."

        2. Of people, the condition of feeling very tired or (less
        commonly) sick.  "I've been chasing that bug for 17 hours now
        and I am thoroughly gronked!"  Compare {broken}, which means
        about the same as {gronk} used of hardware, but connotes
        depression or mental/emotional problems in people.

group

        A group G is a non-empty {set} upon which a {binary} operator
        * is defined with the following properties for all a,b,c in G:

          Closure:     G is closed under *,  a*b in G
          Associative: * is associative on G, (a*b)*c = a*(b*c)
          Identity:    There is an identity element  e  such that
                       a*e = e*a = a.
          Inverse:     Every element has a unique inverse a' such that
                       a * a' = a' * a = e.  The inverse is usually
                       written with a superscript -1.

        (1998-10-03)

Group 3

        <protocol, compression> (G3) The {CCITT} fax {protocol} which
        uses data {compression} and allows a variety of file types
        (e.g. {electronic mail}, pictures, {PostScript}) to be
        transmitted over {analogue} telephone lines.

        The Group 3 protocol was published by {CCITT} in 1993.  Full
        details of the protocol are available from {ITU-T}.

        See also {Group 4}.

        (1998-10-03)

Group 4

        <protocol, compression> (G4) The {CCITT} fax {protocol} which
        uses data {compression} and allows a variety of file types
        (e-mail, pictures, {PostScript}, etc.) to be transmitted over
        digital ({ISDN}) telephone lines.

        The Group 4 protocol was published by {CCITT} in 1993.  Full
        details of the protocol are available from {ITU-T}.

        See also {Group 3}.

        (1998-09-10)

Group Code Recording

        <storage> (GCR) A recording method used for 6250 BPI {magnetic
        tapes}.

        GCR typically uses a group of five bits of code to represent
        four bits of data, where the encoding ensures no more than two
        or three zeros occur in a row, and no more than eight or so
        ones occur in a row, where zeros represent an absense of
        magnetic change.

        GCR is also used on {Commodore Business Machines} {diskette}
        drives; the 4040, 8050, 154x, 157x and 158x series of 5.25"
        and 3.5" low and high density diskette drives used with 8-bit
        home computers circa 1977 to 1992.  Also used on {Amiga}
        internal and external drives.

        Compare {NRZI}, {PE}.

        (1997-08-29)

group identifier

        <operating system> (gid) A unique number, between 0 an 32767,
        identifying a set of {users} under {Unix}.  Gids are found in
        the /etc/{passwd} and /etc/group databases (or their {NIS}
        equivalents) and one is also associated with each file,
        indicating the group to which its group {permissions} apply.

        (1996-12-01)

Group Separator

        <character> (GS) {ASCII} character 29.

        (1996-06-28)

Group-Sweeping Scheduling

        <storage, algorithm> (GSS) A disk scheduling strategy in which
        requests are served in cycles, in a round-robin manner.  To
        reduce disk arm movements ("{seek}ing"), the set of streams is
        divided into groups that are served in fixed order.  Streams
        within a group are served according to "{SCAN}".

        If all clients are assigned to one group, GSS reduces to SCAN,
        and if all clients are assigned to separate groups, GSS
        effectively becomes round-robin scheduling.  The service order
        within one group is not fixed, and a stream may in fact be
        first in one cycle while last in the next.  This variation has
        to be masked by extra buffering but whereas SCAN requires
        buffer space for all streams, GSS can reuse the buffer for
        each group and effect a trade-off between {seek optimisation}
        and buffer requirements.

        (1995-11-12)

Groupware

        See {CSCW}.

Groupwise

        <software, networking> A {workgroup} application suite
        offering {electronic mail} and diary scheduling from {Novell,
        Inc.}. It can operate on a number of {platforms}.

        Groupwise was previously known as {WordPerfect Office}, and is
        an extensible system suitable for {LAN} or {WAN} operation.
        {Mail gateway} software is available for a number of
        {protocol}s including {SMTP}, allowing the exchange of mail
        with the {Internet}.

        (1995-09-23)

grovel

        1. To work interminably and without apparent progress.  Often
        used transitively with "over" or "through".  "The file
        scavenger has been groveling through the /usr directories for
        10 minutes now."  Compare {grind} and {crunch}.  Emphatic
        form: "grovel obscenely".

        2. To examine minutely or in complete detail.  "The compiler
        grovels over the entire source program before beginning to
        translate it."  "I grovelled through all the documentation,
        but I still couldn't find the command I wanted."

grunge

        /gruhnj/ 1. That which is grungy, or that which makes it so.

        2. [Cambridge] Code which is inaccessible due to changes in
        other parts of the program.  The preferred term in North
        America is {dead code}.

GS

        {Group Separator}

gs

        <networking> The {country code} for South Georgia and the
        South Sandwich Islands.

        (1999-01-27)

GSBL

        "GSBL: An Algebraic Specification Language Based on
        Inheritance", S.  Clerici et al in in ECOOP '88, S. Gjessing
        et al eds, LNCS 322, Springer 1988, pp.78-92.

GSI

        {Gensym Standard Interface}

GSL

        Grenoble System Language.  M. Berthaud, IBM, Grenoble.  "GSL
        Language Reference Manual", M. Berthaud et al, March 1973.  "A
        MOL-Based Software Construction System", M. Berthaud et al, in
        Machine Oriented Higher Level Languages, W. van der Poel, N-H
        1974, pp.151-157.

GSM

        <communications> {Global System for Mobile
        Communications}.

GSPL

        <language> {Greenberg's System Programming Language}.

        Bernard Greenberg.

        (1995-05-09)

GSS

        <storage> {Group-Sweeping Scheduling}.

        (1995-11-12)

GSS-API

        {Generic Security Service Application Programming Interface}

gt

        <networking> The {country code} for Guatemala.

        (1999-01-27)

gtg

        <chat> Got to go.  The user is about to stop chatting.

        (1999-06-07)

GT/SQL

        <tool> An {SQL} {pre-processor} from {Greystone Technologies}
        which combines {MUMPS} code with {SQL} code and generates code
        that can work with a {database} from both the MUMPS and SQL
        perspectives.  This is often done when a database is to be
        made available in a {client/server} environment, where the
        MUMPS database serves one or more SQL {client}s.

        (1995-01-10)

gu

        <networking> The {country code} for Guam.

        (1999-01-27)

guaranteed scheduling

        <algorithm> A scheduling {algorithm} used in {multitasking}
        {operating systems} that guarantees fairness by monitoring the
        amount of {CPU time} spent by each user and allocating
        resources accordingly.

        [How does it allocate resources?]

        (1998-04-26)

guard

        <programming> 1. In {functional programming}, a {Boolean}
        expression attached to a function definition specifying when
        (for what arguments) that definition is appropriate.

        2. In (parallel) {logic programming}, a Boolean expression
        which is used to select a {clause} from several alternative
        matching clauses.

        See {Guarded Horn Clauses}.

        3. In {parallel} languages, a {Boolean} expression which
        specifies when an message may be sent or received.

        (1995-05-09)

Guarded Horn Clauses

        <language> (GHC) A parallel dialect of {Prolog} by K. Ueda in
        which each {clause} has a {guard}.  GHC is similar to
        {Parlog}.  When several clauses match a {goal}, their guards
        are evaluated in parallel and the first clause whose guard is
        found to be true is used and others are rejected.  It uses
        {committed-choice nondeterminism}.

        See also {FGHC}, {KL1}.

        (1995-05-09)

gubbish

        <jargon> /guhb'*sh/ (A portmanteau of "garbage" and "rubbish"
        which may have originated with SF author Philip K. Dick)
        Garbage; crap; nonsense.  "What is all this gubbish?"  The
        opposite portmanteau "rubbage" is also reported.

        (1995-05-09)

GUI

        {Graphical User Interface}

GUIDE

        {Graphical User Interface} Development Environment from {Sun}.

Guide

        A {hypertext} system from the University of Kent (GB) and
        {OWL} for displaying on-line documentation.

Guide to Available Mathematical Software

        <mathematics>

        {Home (http://gams.nist.gov/)}

        (1995-04-28)

guiltware

        /gilt'weir/ 1. A piece of {freeware} decorated with a message
        telling one how long and hard the author worked on it and
        intimating that one is a no-good freeloader if one does not
        immediately send the poor suffering martyr gobs of money.

        2. {Shareware} that works.

gun

        <jargon> ({ITS}, from the ":GUN" command) To forcibly
        terminate a program or job (computer, not career).  "Some
        idiot left a background process running soaking up half the
        cycles, so I gunned it."

        Compare {can}.

        (1995-02-27)

gunch

        /guhnch/ <jargon> ({TMRC}) To push, prod, or poke at a device
        that has almost (but not quite) produced the desired result.
        Implies a threat to {mung}.

        (1995-02-27)

gunzip

        <tool, compression> The decompression utility corresponding to
        {gzip}.  In operating systems with links, gunzip is just a
        link to gzip and its function can be invoked by passing a "-d"
        flag to gzip.

        (1996-01-03)

Gupta Corporation

        <company> The vendor of {SQLWindows}.

        Gupta Corporation provides application development and
        deployment software for {client-server} {applications},
        consisting of a {relational database}, application development
        tools and transparent connectivity software.

        Gupta employs 400 people in 15 offices worldwide, including
        the United States, Europe and Asia.  Gupta's 1993 fiscal year
        income was $5.6 million and their revenue was $56.1 million.
        Gupta sells client-server system components for networks of
        {personal computers}.

        {Home (http://www.wji.com/gupta/htmls/homepage.html)}.

        Address: 1060 Marsh Road, Menlo Park, CA 94025, USA.

        Telephone: +1 (415) 321 9500.  Fax: +1 (415) 321 5471.

        (1997-04-28)

gurfle

        <exclamation> /ger'fl/ An expression of shocked disbelief.
        "He said we have to recode this thing in {FORTRAN} by next
        week.  Gurfle!"

        Compare {weeble}.

        (1996-06-01)

guru

        <job> An expert, especially in "{Unix} guru".  Implies not
        only {wizard} skill but also a history of being a knowledge
        resource for others.  Less often, used (with a qualifier) for
        other experts on other systems, as in "VMS guru".

        See {source of all good bits}.

        (1996-06-01)

guru meditation

        {Amiga} equivalent of {panic} in {Unix} (sometimes just called
        a "guru" or "guru event").  When the system crashes, a cryptic
        message of the form "GURU MEDITATION #XXXXXXXX.YYYYYYYY" may
        appear, indicating what the problem was.  An Amiga guru can
        figure things out from the numbers.  Generally a {guru} event
        must be followed by a {Vulcan nerve pinch}.

        This term is (no surprise) an in-joke from the earliest days
        of the Amiga.  There used to be a device called a "Joyboard"
        which was basically a plastic board built onto a joystick-like
        device; it was sold with a skiing game cartridge for the Atari
        game machine.  It is said that whenever the prototype OS
        crashed, the system programmer responsible would calm down by
        concentrating on a solution while sitting cross-legged on a
        Joyboard trying to keep the board in balance.  This position
        resembled that of a meditating guru.  Sadly, the joke was
        removed in AmigaOS 2.04.

Guy Lewis Steele, Jr.

        <person> A software engineer, currently at {Sun Microsystems,
        Inc.}  His most notable contributions to the art of computing
        include the design of {Scheme} (in cooperation with {Gerald
        Sussman}) and the design of the original command set of
        {Emacs}.  He is also known for his contribution to the {Jargon
        File} and for being the first to port {TeX} [from where to
        where?].

        (1996-12-03)

Guy Steele

        {Guy Lewis Steele, Jr.}

GVL

        Graphical View Language.  A visual language for specifying
        interactive graphical output by T.C.N. Graham & J.R. Cordy,
        Queen's University, Canada.

        ["GVL: A Graphical, Functional Language for the Specification
        of Output in Programming Languages", J.R. Cordy &
        T.C.N. Graham, Proc IEEE Intl Conf on Comp Lang ICCL'90 (March
        1990)].

gw

        <networking> The {country code} for Guinea-Bissau.

        (1999-01-27)

GW-Ada

        A new version of {Ada/Ed}?

        {MS-DOS version
        (ftp://wuarchive.wustl.edu/languages/ada/compiler/adaed/gwu/9309/dos)},
        {Macintosh version
        (ftp://wuarchive.wustl.edu/languages/ada/compilers/adaed/gwu/mac)}.

        (1993-09-01)

GW-BASIC

        <language> An early version of {MS-BASIC}.

        (1995-05-12)

gweep

        /gweep/ To {hack}, usually at night, or one who does so.  At
        {WPI}, from 1977 onwards, gweeps could often be found at the
        College Computing Center punching cards or crashing the
        {PDP-10} or, later, the {DEC-20}.  The term has survived the
        demise of those technologies, however, and is still alive in
        late 1991.  "I'm going to go gweep for a while.  See you in
        the morning."  "I gweep from 8 PM till 3 AM during the week."

        "Gweep" originated as an onomatopeiac term, evoking the sound
        of the (once-ubiquitous) {Hazeltine 9000} terminals' bell on
        WPI campus.

        A gweep is one step above a {fweep}.

        (1995-01-31)

GWHIS

        <World-Wide Web> A commercial version of {NCSA} {Mosaic} for
        {MS Windows} 3.x and {Windows for Workgroups}.  GWHIS was
        released by {Quadralay} Corporation on 30 September 1994.

        GWHIS Viewer for {Microsoft Windows} differs from {NCSA}
        {Mosaic} for {Microsoft Windows} in several ways including:

        A {hotlist} similiar to the {X Window System} version.  Edit
        Annotation and Delete Annotation work.  All Buttons and Menu
        Items are "greyed out" while files are being retreived and
        processed.  This prevents the user from queing up requests to
        the {TCP/IP} stack which causes many crashes.  {Look and Feel}
        are similiar to the X version.  On-line help is complete.
        Functional Setup program.  Greater overall stability.

        (1994-12-16)

GWM

        Generic Window Manager.  An extensible window manager for the
        {X Window System}.  It is built on top of an {interpreter} for
        the {WOOL} language.

        {(ftp://export.lcs.mit.edu/contrib/gwm)},
        {(ftp://avahi.inria.fr/contrib/gwm)}.

gy

        <networking> The {country code} for Guyana.

        (1999-01-27)

Gypsy

        Specification and verification of {concurrent} systems
        software.  {Message} passing using named {mailbox}es.
        Separately compilable units: routine (procedure, function, or
        process), type and constant definition, each with a list of
        access rights.

        ["Report on the Language Gypsy", A.L.  Ambler et al, UT Austin
        ICSCS-CMP-1976-08-1].

gz

        {gzip}

gzip

        <tool, compression> {GNU} compression utility.  Gzip reduces
        the size of the named files using {Lempel-Ziv} {LZ77
        compression}.  Whenever possible, each file is replaced by one
        with the {filename extension} ".gz".  Compressed files can be
        restored to their original form using gzip -d or gunzip or
        zcat.

        The Unix "{compress}" utility is patented (by two separate
        patents, in fact) and is thus shunned by the GNU Project since
        it is not {free software}.  They have therefore chosen gzip,
        which is free of any known {software patent}s and which tends
        to compress better anyway.  All compressed files in the {GNU}
        {anonymous FTP} area (prep.ai.mit.edu/pub/gnu) are in gzip
        format and their names end in ".gz" (as opposed to
        "compress"-compressed files, which end in ".Z").

        Gzip can uncompress "compress"-compressed files and "pack"
        files (which end in ".z").  The decompression algorithms are
        not patented, only compression is.

        The gzip program is available from any {GNU archive site} in
        {shar}, {tar}, or gzipped tar format (for those who already
        have a prior version of gzip and want faster data
        transmission).  It works on virtually every {Unix} system,
        {MS-DOS}, {OS/2} and {VMS}.

h

        1. A simple {markup} language intended for quick conversion of
        existing text to {hypertext}.

        2. A method of marking common words to call attention to the
        fact that they are being used in a nonstandard, ironic, or
        humorous way.  Originated in the fannish catchphrase "Bheer
        is the One True Ghod!" from decades ago.  H-infix marking of
        "Ghod" and other words spread into the 1960s counterculture
        via underground comix, and into early hackerdom either from
        the counterculture or from SF fandom (the three overlapped
        heavily at the time).  More recently, the h infix has become
        an expected feature of benchmark names (Dhrystone, Rhealstone,
        etc.); this follows on from the original Whetstone (the name
        of a laboratory) but may have been influenced by the
        fannish/counterculture h infix.

        (1994-11-04)

H.261

        <networking, standard> A {video compression} {standard}
        developed by {ITU-T} before 1992 to work with {integrated
        service digital network}.  Data is compressed at the rate of
        64P kilobits per second, where P can range from 1 to 30
        depending on the number of ISDN channels used.  This standard
        was developed primarily to support {video phones} and {video
        conferencing}.

        See also {ivs}.

        {(http://www.crs4.it/~luigi/MPEG/mpeggloss-h.html#H.261)}

        [Date?  Details?]

        (1994-11-03)

H.323

        <communications, standard> The {ITU-T standard} for sending
        {voice} ({audio}) and {video} using {IP} on the {Internet} and
        within {intranets}.  H.323 is sponsored[?] by the {IMTC}'s
        {Conferencing over IP} Activity Group.

        (1999-04-26)

Habitat

        <networking, graphics> The original term for on-line graphical
        {virtual communities} or worlds.  Created at Lucasfilm in 1985
        by Randy Farmer and Chip Morningstar.

        {(http://www.communities.com/habitat.html)}.

        (1996-06-12)

hack

        <jargon> 1. Originally, a quick job that produces what is
        needed, but not well.

        2.  An incredibly good, and perhaps very time-consuming, piece
        of work that produces exactly what is needed.

        3. To bear emotionally or physically.  "I can't hack this
        heat!"

        4. To work on something (typically a program).  In an
        immediate sense: "What are you doing?"  "I'm hacking TECO."
        In a general (time-extended) sense: "What do you do around
        here?"  "I hack TECO."  More generally, "I hack "foo"" is
        roughly equivalent to ""foo" is my major interest (or
        project)".  "I hack solid-state physics."  See {Hacking X for
        Y}.

        5. To pull a prank on.  See {hacker}.

        6. To interact with a computer in a playful and exploratory
        rather than goal-directed way.  "Whatcha up to?"  "Oh, just
        hacking."

        7.  Short for {hacker}.

        8. See {nethack}.

        9. (MIT) To explore the basements, roof ledges, and steam
        tunnels of a large, institutional building, to the dismay of
        Physical Plant workers and (since this is usually performed at
        educational institutions) the Campus Police.  This activity
        has been found to be eerily similar to playing adventure games
        such as {Dungeons and Dragons} and {Zork}.  See also
        {vadding}.

        See also {neat hack}, {real hack}.

        (1996-08-26)

hack attack

        <jargon> (Possibly by analogy with "Big Mac Attack" from
        advertisements for the McDonald's fast-food chain; the variant
        "big hack attack" is reported) Nearly synonymous with {hacking
        run}, though the latter more strongly implies an all-nighter.

        (1996-08-26)

hacked off

        <jargon> (Analogous to "pissed off") Said of {system
        administrators} who have become annoyed, upset, or touchy
        owing to suspicions that their sites have been or are going to
        be victimised by {crackers}, or used for inappropriate,
        technically illegal, or even overtly criminal activities.  For
        example, having unreadable files in your home directory called
        "worm", "lockpick", or "goroot" would probably be an effective
        (as well as impressively obvious and stupid) way to get your
        sysadmin hacked off at you.

        (1996-08-26)

hacked up

        <jargon, programming> Sufficiently {patched}, {kluge}d, and
        {tweaked} that the surgical scars are beginning to crowd out
        normal tissue (compare {critical mass}).  Not all programs
        that are hacked become "hacked up"; if modifications are done
        with some eye to coherence and continued maintainability, the
        software may emerge better for the experience.

        Contrast {hack up}.

        (1996-08-26)

hacker

        <person, jargon> (Originally, someone who makes furniture with
        an axe) 1. A person who enjoys exploring the details of
        programmable systems and how to stretch their capabilities, as
        opposed to most users, who prefer to learn only the minimum
        necessary.

        2. One who programs enthusiastically (even obsessively) or who
        enjoys programming rather than just theorizing about
        programming.

        3. A person capable of appreciating {hack value}.

        4. A person who is good at programming quickly.

        5. An expert at a particular program, or one who frequently
        does work using it or on it; as in "a {Unix} hacker".
        (Definitions 1 through 5 are correlated, and people who fit
        them congregate.)

        6. An expert or enthusiast of any kind.  One might be an
        astronomy hacker, for example.

        7. One who enjoys the intellectual challenge of creatively
        overcoming or circumventing limitations.

        8. (Deprecated) A malicious meddler who tries to discover
        sensitive information by poking around.  Hence "password
        hacker", "network hacker".  The correct term is {cracker}.

        The term "hacker" also tends to connote membership in the
        global community defined by the net (see {The Network} and
        {Internet address}).  It also implies that the person
        described is seen to subscribe to some version of the {hacker
        ethic}.

        It is better to be described as a hacker by others than to
        describe oneself that way.  Hackers consider themselves
        something of an elite (a meritocracy based on ability), though
        one to which new members are gladly welcome.  Thus while it is
        gratifying to be called a hacker, false claimants to the title
        are quickly labelled as "{bogus}" or a "{wannabee}".

        9. (University of Maryland, rare) A programmer who does not
        understand proper programming techniques and principles and
        doesn't have a Computer Science degree.  Someone who just
        bangs on the keyboard until something happens.  For example,
        "This program is nothing but {spaghetti code}.  It must have
        been written by a hacker".

        (1996-08-26)

hacker ethic

        <philosophy> 1. The belief that information-sharing is a
        powerful positive good, and that it is an ethical duty of
        hackers to share their expertise by writing free software and
        facilitating access to information and to computing resources
        wherever possible.

        2. The belief that system-cracking for fun and exploration is
        ethically OK as long as the cracker commits no theft,
        vandalism, or breach of confidentiality.

        Both of these normative ethical principles are widely, but by
        no means universally, accepted among hackers. Most hackers
        subscribe to the hacker ethic in sense 1, and many act on it
        by writing and giving away free software.  A few go further
        and assert that *all* information should be free and *any*
        proprietary control of it is bad; this is the philosophy
        behind the {GNU} project.

        Sense 2 is more controversial: some people consider the act of
        cracking itself to be unethical, like breaking and entering.
        But the belief that "ethical" cracking excludes destruction at
        least moderates the behaviour of people who see themselves as
        "benign" crackers (see also {samurai}).  On this view, it may
        be one of the highest forms of hackerly courtesy to (a) break
        into a system, and then (b) explain to the sysop, preferably
        by e-mail from a {superuser} account, exactly how it was done
        and how the hole can be plugged - acting as an unpaid (and
        unsolicited) {tiger team}.

        The most reliable manifestation of either version of the
        hacker ethic is that almost all hackers are actively willing
        to share technical tricks, software, and (where possible)
        computing resources with other hackers.  Huge cooperative
        networks such as {Usenet}, {FidoNet} and Internet (see
        {Internet address}) can function without central control
        because of this trait; they both rely on and reinforce a sense
        of community that may be hackerdom's most valuable intangible
        asset.

        (1995-12-18)

hacker humour

        A distinctive style of shared intellectual humour found among
        hackers, having the following marked characteristics:

        1. Fascination with form-vs.-content jokes, paradoxes, and
        humour having to do with confusion of metalevels (see {meta}).
        One way to make a hacker laugh: hold a red index card in front
        of him/her with "GREEN" written on it, or vice-versa (note,
        however, that this is funny only the first time).

        2. Elaborate deadpan parodies of large intellectual
        constructs, such as specifications (see {write-only memory}),
        standards documents, language descriptions (see {INTERCAL}),
        and even entire scientific theories (see {quantum
        bogodynamics}, {computron}).

        3. Jokes that involve screwily precise reasoning from bizarre,
        ludicrous, or just grossly counter-intuitive premises.

        4. Fascination with puns and wordplay.

        5. A fondness for apparently mindless humour with subversive
        currents of intelligence in it - for example, old Warner
        Brothers and Rocky & Bullwinkle cartoons, the Marx brothers,
        the early B-52s, and Monty Python's Flying Circus.  Humour
        that combines this trait with elements of high camp and
        slapstick is especially favoured.

        6. References to the symbol-object antinomies and associated
        ideas in Zen Buddhism and (less often) Taoism.  See {has the X
        nature}, {Discordianism}, {zen}, {ha ha only serious}, {AI
        koan}.

        See also {filk} and {retrocomputing}.  If you have an itchy
        feeling that all 6 of these traits are really aspects of one
        thing that is incredibly difficult to talk about exactly, you
        are (a) correct and (b) responding like a hacker.  These
        traits are also recognizable (though in a less marked form)
        throughout {science-fiction fandom}.

        (1995-12-18)

hacking run

        <jargon> (Analogy with "bombing run" or "speed run") A hack
        session extended long outside normal working times, especially
        one longer than 12 hours.  May cause you to "change {phase}
        the hard way".

        (1996-08-26)

Hacking X for Y

        [ITS] Ritual phrasing of part of the information which ITS
        made publicly available about each user.  This information
        (the INQUIR record) was a sort of form in which the user could
        fill out various fields.  On display, two of these fields were
        always combined into a project description of the form
        "Hacking X for Y" (e.g. ""Hacking perceptrons for Minsky"").
        This form of description became traditional and has since been
        carried over to other systems with more general facilities for
        self-advertisement (such as Unix {plan file}s).

Hackintosh

        1. <jargon, computer> An {Apple Lisa} that has been hacked
        into emulating a {Macintosh} (also called a "Mac XL").

        2. <jargon, computer> A {Macintosh} assembled from parts
        theoretically belonging to different models in the line.

        (1995-03-08)

hackish

        <jargon> /hak'ish/ 1. Said of something that is or involves a
        {hack}.

        2. Of or pertaining to {hacker}s or the hacker subculture.

        See also {true-hacker}.

        (1995-03-08)

hackishness

        <jargon> The quality of being or involving a {hack}.  This
        term is considered mildly silly.

        Synonym {hackitude}.

        (1995-03-08)

hackitude

        <jargon> An even sillier word for {hackishness}.

        (1995-03-08)

hack mode

        <jargon> Engaged in {hack}ing.  A Zen-like state of total
        focus on The Problem that may be achieved when one is hacking
        (this is why every good hacker is part mystic).  Ability to
        enter such concentration at will correlates strongly with
        wizardliness; it is one of the most important skills learned
        during {larval stage}.  Sometimes amplified as "deep hack
        mode".

        Being yanked out of hack mode (see {priority interrupt}) may
        be experienced as a physical shock, and the sensation of being
        in hack mode is more than a little habituating.  The intensity
        of this experience is probably by itself sufficient
        explanation for the existence of hackers, and explains why
        many resist being promoted out of positions where they can
        code.  See also {cyberspace}.

        Some aspects of hackish etiquette will appear quite odd to an
        observer unaware of the high value placed on hack mode.  For
        example, if someone appears at your door, it is perfectly okay
        to hold up a hand (without turning one's eyes away from the
        screen) to avoid being interrupted.  One may read, type, and
        interact with the computer for quite some time before further
        acknowledging the other's presence (of course, he or she is
        reciprocally free to leave without a word).  The understanding
        is that you might be in {hack mode} with a lot of delicate
        state in your head, and you dare not {swap} that context out
        until you have reached a good point to pause.  See also
        {juggling eggs}.

        (1996-07-31)

hack on

        To {hack}; implies that the subject is some pre-existing hunk
        of code that one is evolving, as opposed to something one
        might {hack up}.

hack together

        To throw something together so it will work.  Unlike "kluge
        together" or {cruft together}, this does not necessarily have
        negative connotations.

hack up

        To {hack}, but generally implies that the result is a quick
        hack.  Contrast this with {hack on}.  To "hack up on" implies
        a {quick-and-dirty} modification to an existing system.
        Contrast {hacked up}; compare {kluge up}, {monkey up}, {cruft
        together}.

hack value

        Often adduced as the reason or motivation for expending effort
        toward a seemingly useless goal, the point being that the
        accomplished goal is a hack.  For example, MacLISP had
        features for reading and printing Roman numerals, which were
        installed purely for hack value.  See {display hack} for one
        method of computing hack value, but this cannot really be
        explained, only experienced.  As Louis Armstrong once said
        when asked to explain jazz: "Man, if you gotta ask you'll
        never know."  (Feminists please note Fats Waller's explanation
        of rhythm: "Lady, if you got to ask you ain't got it.")

ha ha only serious

        (SF fandom, originally as mutation of HHOK, "Ha Ha Only
        Kidding") A phrase (often seen abbreviated as HHOS) that aptly
        captures the flavour of much hacker discourse.  Applied
        especially to parodies, absurdities, and ironic jokes that are
        both intended and perceived to contain a possibly disquieting
        amount of truth, or truths that are constructed on in-joke and
        self-parody.

        The {Jargon File} contains many examples of ha-ha-only-serious
        in both form and content.  Indeed, the entirety of hacker
        culture is often perceived as ha-ha-only-serious by hackers
        themselves; to take it either too lightly or too seriously
        marks a person as an outsider, a {wannabee}, or in {larval
        stage}.  For further enlightenment on this subject, consult
        any Zen master.  See also {AI koan}.

hair

        [back-formation from {hairy}] The complications that make
        something hairy.  "Decoding {TECO} commands requires a certain
        amount of hair."  Often seen in the phrase "infinite hair",
        which connotes extreme complexity.  Also in "hairiferous"
        (tending to promote hair growth): "GNUMACS elisp encourages
        {lusers} to write complex editing modes."  "Yeah, it's pretty
        hairiferous all right." (Or just: "Hair squared!")

hairy

        1. Annoyingly complicated.  "{DWIM} is incredibly hairy."

        2. Incomprehensible.  "{DWIM} is incredibly hairy."

        3. Of people, high-powered, authoritative, rare, expert,
        and/or incomprehensible.  Hard to explain except in context:
        "He knows this hairy lawyer who says there's nothing to worry
        about."  See also {hirsute}.

        A well-known result in {topology} called the Brouwer
        Fixed-Point Theorem states that any continuous transformation
        of a surface into itself has at least one {fixed point}.
        Mathematically literate hackers tend to associate the term
        "hairy" with the informal version of this theorem; "You can't
        comb a hairy ball smooth."

        The adjective "long-haired" is well-attested to have been in
        slang use among scientists and engineers during the early
        1950s; it was equivalent to modern "hairy" and was very likely
        ancestral to the hackish use.  In fact the noun "long-hair"
        was at the time used to describe a hairy person.  Both senses
        probably passed out of use when long hair was adopted as a
        signature trait by the 1960s counterculture, leaving hackish
        "hairy" as a sort of stunted mutant relic.

        (1995-04-16)

HAKMEM

        <publication> /hak'mem/ MIT AI Memo 239 (February 1972).  A
        legendary collection of neat mathematical and programming
        hacks contributed by many people at MIT and elsewhere.  (The
        title of the memo really is "HAKMEM", which is a 6-letterism
        for "hacks memo".)  Some of them are very useful techniques,
        powerful theorems, or interesting unsolved problems, but most
        fall into the category of mathematical and computer trivia.
        Here is a sampling of the entries (with authors), slightly
        paraphrased:

        Item 41 (Gene Salamin): There are exactly 23,000 prime numbers
        less than 2^18.

        Item 46 (Rich Schroeppel): The most *probable* suit
        distribution in bridge hands is 4-4-3-2, as compared to
        4-3-3-3, which is the most *evenly* distributed.  This is
        because the world likes to have unequal numbers: a
        thermodynamic effect saying things will not be in the state of
        lowest energy, but in the state of lowest disordered energy.

        Item 81 (Rich Schroeppel): Count the magic squares of order 5
        (that is, all the 5-by-5 arrangements of the numbers from 1 to
        25 such that all rows, columns, and diagonals add up to the
        same number).  There are about 320 million, not counting those
        that differ only by rotation and reflection.

        Item 154 (Bill Gosper): The myth that any given programming
        language is machine independent is easily exploded by
        computing the sum of powers of 2.  If the result loops with
        period = 1 with sign +, you are on a sign-magnitude machine.
        If the result loops with period = 1 at -1, you are on a
        twos-complement machine.  If the result loops with period
        greater than 1, including the beginning, you are on a
        ones-complement machine.  If the result loops with period
        greater than 1, not including the beginning, your machine
        isn't binary - the pattern should tell you the base.  If you
        run out of memory, you are on a string or bignum system.  If
        arithmetic overflow is a fatal error, some fascist pig with a
        read-only mind is trying to enforce machine independence.  But
        the very ability to trap overflow is machine dependent.  By
        this strategy, consider the universe, or, more precisely,
        algebra: Let X = the sum of many powers of 2 = ...111111 (base
        2).  Now add X to itself: X + X = ...111110.  Thus, 2X = X -
        1, so X = -1.  Therefore algebra is run on a machine (the
        universe) that is two's-complement.

        Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the
        only number such that if you represent it on the {PDP-10} as
        both an integer and a {floating-point} number, the bit
        patterns of the two representations are identical.

        Item 176 (Gosper): The "banana phenomenon" was encountered
        when processing a character string by taking the last 3
        letters typed out, searching for a random occurrence of that
        sequence in the text, taking the letter following that
        occurrence, typing it out, and iterating.  This ensures that
        every 4-letter string output occurs in the original.  The
        program typed BANANANANANANANA....  We note an ambiguity in
        the phrase, "the Nth occurrence of."  In one sense, there are
        five 00's in 0000000000; in another, there are nine.  The
        editing program TECO finds five.  Thus it finds only the first
        ANA in BANANA, and is thus obligated to type N next.  By
        Murphy's Law, there is but one NAN, thus forcing A, and thus a
        loop.  An option to find overlapped instances would be useful,
        although it would require backing up N - 1 characters before
        seeking the next N-character string.

        Note: This last item refers to a {Dissociated Press}
        implementation.  See also {banana problem}.

        HAKMEM also contains some rather more complicated mathematical
        and technical items, but these examples show some of its fun
        flavour.

        HAKMEM is available from MIT Publications as a {TIFF} file.

        {(ftp://ftp.netcom.com/pub/hb/hbaker)}

        (1996-01-19)

hakspek

        <jargon> /hak'speek/ A shorthand method of spelling found on
        many British academic bulletin boards and {chat} systems.
        Syllables and whole words in a sentence are replaced by single
        {ASCII} characters the names of which are phonetically similar
        or equivalent, while multiple letters are usually dropped.
        Hence, "for" becomes "4"; "two", "too", and "to" become "2";
        "ck" becomes "k".  "Before I see you tomorrow" becomes "b4 i c
        u 2moro".  First appeared in London about 1986, and was
        probably caused by the slowness of available {talk} systems,
        which operated on archaic machines with outdated {operating
        systems} and no standard methods of communication.  Has become
        rarer since.

        See also {chat}, {B1FF}, {ASCIIbonics}.

        (1998-01-25)

HAL

        1. <computer> HAL 9000, the murdering computer on the
        spaceship in the science fiction classic "2001, A Space
        Odyssey" by Arthur C. Clark.

        "HAL" is "{IBM}" with each letter changed to the one before
        and there is an unconfirmed rumour that 9000 is the sum of the
        various IBM computer numbers that were in service at the time.
        However, in the sequel "2010", Clarke emphatically denies that
        HAL's name is supposed to be "one step ahead of IBM".  It is,
        rather, short for "heuristic algorithm".

        2. <operating system> {Hardware Abstraction Layer}.

        (1995-11-09)

half-duplex

        <communications> (hdx) 1. A term used to describe a
        communication channel which can carry data in either direction
        but not both directions at once.

        Compare: {full-duplex}.

        2. An obsolete term for {local echo}.

        (1999-10-23)

halftone

        <graphics> The reproducion of {greyscale} {images} using dots
        of a single shade but varying size to simulate the different
        shades of grey.

        {Laser printers} that cannot print different sized dots,
        halftones are produced by varying the numbers of dots in a
        given area.

        This process is also used to produce a black and white version
        of a colour original using shades of grey in place of colours.

        See also {device independent bitmap}.

        (1996-09-20)

HALGOL

        <language> A simple language from {Hewlett-Packard} for
        communicating with devices such as {modem}s and {X.25} {PAD}s.

        (1995-04-12)

HALMAT

        Intermediate language used by {HAL/S}.

HAL/S

        A {real-time} language used by {NASA} for onboard shuttle
        software.

        ["Two-Dimensional Characteristics of HAL, A Language for
        Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10)
        (Oct 1972)].

        (1994-10-20)

Halt and Catch Fire

        <humour, processor> (HCF) Any of several undocumented and
        semi-mythical {machine instructions} with destructive
        side-effects, supposedly included for test purposes on several
        well-known architectures going as far back as the {IBM 360}.
        The {Motorola} {6800} {microprocessor} was the first for which
        an HCF {opcode} became widely known.  This instruction caused
        the processor to {toggle} a subset of the {bus} lines as
        rapidly as it could; in some configurations this could
        actually cause lines to burn up.

        [Confirm?]

        (1995-12-14)

halting problem

        The problem of determining in advance whether a particular
        program or {algorithm} will terminate or run forever.  The
        halting problem is the {canonical} example of a {provably
        unsolvable} problem.  Obviously any attempt to answer the
        question by actually executing the algorithm or simulating
        each step of its execution will only give an answer if the
        algorithm under consideration does terminate, otherwise the
        algorithm attempting to answer the question will itself run
        forever.

        Some special cases of the halting problem are partially
        solvable given sufficient resources.  For example, if it is
        possible to record the complete state of the execution of the
        algorithm at each step and the current state is ever identical
        to some previous state then the algorithm is in a loop.  This
        might require an arbitrary amount of storage however.
        Alternatively, if there are at most N possible different
        states then the algorithm can run for at most N steps without
        looping.

        A program analysis called {termination analysis} attempts to
        answer this question for limited kinds of input algorithm.

        (1994-10-20)

Hamilton

        {William Hamilton}

Hamiltonian cycle

        {Hamiltonian problem}

Hamiltonian path

        {Hamiltonian problem}

Hamiltonian problem

        <computability> (Or "Hamilton's problem") A problem in {graph
        theory} posed by {William Hamilton}: given a {graph}, is there
        a path through the graph which visits each {vertex} precisely
        once (a "Hamiltonian path")?  Is there a Hamiltonian path
        which ends up where it started (a "Hamiltonian cycle" or
        "Hamiltonian tour")?

        Hamilton's problem is {NP-complete}.  It has numerous
        applications, sometimes completely unexpected, in computing.

        {Home (http://www.ing.unlp.edu.ar/cetad/mos/Hamilton.html)}.

        (1997-07-18)

Hamiltonian tour

        {Hamiltonian problem}

Hamilton's problem

        {Hamiltonian problem}

hammer

        Commonwealth hackish synonym for {bang on}.

        (1995-02-16)

Hamming code

        <algorithm> Extra, redundant bits added to stored or
        transmitted data for the purposes of {error detection and
        correction}.

        Hamming codes provide a great improvement in the reliability
        of data from distant space probes, where it is impractical,
        because of the long transmission delay, to correct errors by
        requesting retransmission.

        [Detail?]

        (1995-03-14)

hamster

        1. ({Fairchild}) A particularly slick little piece of code
        that does one thing well; a small, self-contained hack.  The
        image is of a hamster {happily} spinning its exercise wheel.

        2. A tailless mouse; that is, one with an infrared link to a
        receiver on the machine, as opposed to the conventional cable.

        3. (UK) Any item of hardware made by {Amstrad}, a company
        famous for its cheap plastic PC-almost-compatibles.

        (1995-02-16)

Han character

        <character> (From the Han dynasty, 206 B.C.E to 25 C.E.)  One
        of the set of {glyphs} common to Chinese (where they are
        called "hanzi"), Japanese (where they are called {kanji}), and
        Korean (where they are called {hanja}).

        Han characters are generally described as "ideographic", i.e.,
        picture-writing; but see the reference below.

        Modern Korean, Chinese and Japanese {fonts} may represent a
        given Han character as somewhat different glyphs.  However, in
        the formulation of {Unicode}, these differences were {folded},
        in order to conserve the number of {code positions} necessary
        for all of {CJK}.  This unification is referred to as "Han
        Unification", with the resulting character repertoire
        sometimes referred to as "Unihan".

        {Unihan reference at the Unicode Consortium
        (http://charts.unicode.org/unihan.html)}

        [John DeFrancis, "The Chinese Language: Fact and Fantasy",
        University of Hawaii Press, 1984].

        (1998-10-18)

HAND

        <chat> Have A Nice Day.  Often used sarcastically and in
        connection with {HTH}, as in:

          > Where's the point of alt.stupidity?

          Between the 't' and the 's'.  HTH.  HAND.

        (1998-03-06)

hand cruft

        <humour, jargon> A pun on "hand craft".

        See {cruft}.

        (1995-02-16)

Handel

        <language> An {imperative language} with {primitives} for
        controlling {parallel programs}.

        Used by Wayne Luk for work in compilation of programs to
        hardware ({FPGA}s).

        (1995-02-28)

hand-hacking

        1. The practice of translating a {hot spot} of a program in a
        {HLL} into hand-tuned {assembly language}, as opposed to
        trying to coerce the {compiler} into generating better code.
        Both the term and the practice are becoming uncommon.

        See {tune}, {bum}, {by hand}; synonym with {cruft}.

        2. More generally, manual construction or patching of data
        sets that would normally be generated by a translation utility
        and interpreted by another program, and aren't really designed
        to be read or modified by humans.

        (1995-02-16)

Hand-held Personal Computer

        {palmtop}

handle

        1. <jargon> (From Citizen's Band amateur radio slang) An
        electronic pseudonym or "nom de guerre" intended to conceal
        the user's true identity.  Network and BBS handles function as
        the same sort of simultaneous concealment and display one
        finds on CB.

        Use of grandiose handles is characteristic of {cracker}s,
        {weenie}s, {spod}s, and other lower forms of network life;
        true hackers travel on their own reputations rather than
        invented legendry.

        Compare {nick}.

        2. <programming> (Macintosh) A pointer to a pointer to
        dynamically-allocated memory.  The extra level of indirection
        allows on-the-fly memory compaction (to cut down on
        {fragmentation}) or garbage collection of unused resources,
        with minimal impact on the (possibly multiple) parts of the
        larger program containing references to the allocated memory.

        Compare {snap} (to snap a handle would defeat its purpose).
        See also {aliasing bug}, {dangling pointer}.

        (1995-02-28)

hand-roll

        <jargon> (From mainstream slang "hand-rolled cigarette" in
        opposition to "ready-made") To perform a normally automated
        software installation or configuration process {by hand};
        implies that the normal process failed due to bugs or was
        defeated by something exceptional in the local environment.
        "The worst thing about being a gateway between four different
        nets is having to hand-roll a new sendmail configuration every
        time any of them upgrades."

        (1995-02-28)

handshake

        {handshaking}

handshaking

        1. Predetermined hardware or software activity designed to
        establish or maintain two machines or programs in
        synchronisation.  Handshaking often concerns the exchange of
        messages or {packet}s of data between two systems with limited
        {buffer}s.  A simple handshaking {protocol} might only involve
        the receiver sending a message meaning "I received your last
        message and I am ready for you to send me another one."  A
        more complex handshaking {protocol} might allow the sender to
        ask the receiver if he is ready to receive or for the receiver
        to reply with a negative acknowledgement meaning "I did not
        receive your last message correctly, please resend it" (e.g. if
        the data was corrupted en route).

        {Hardware handshaking} uses voltage levels or pulses on wires
        to carry the handshaking signals whereas {software
        handshaking} uses data units (e.g. {ASCII} characters) carried
        by some underlying communication medium.

        {Flow control} in bit-serial data transmission such as
        {RS-232} may use either hardware or software handshaking.

        2. The method used by two {modem}s to establish contact with
        each other and to agreee on {baud rate}, {error correction}
        and {compression} {protocol}s.

        3. The exchange of predetermined signals between agents
        connected by a communications channel to assure each that it
        is connected to the other (and not to an imposter).  This may
        also include the use of passwords and codes by an operator.

        (1995-01-13)

handwave

        [possibly from gestures characteristic of stage magicians] To
        gloss over a complex point; to distract a listener; to support
        a (possibly actually valid) point with blatantly faulty logic.

        If someone starts a sentence with "Clearly..." or
        "Obviously..." or "It is self-evident that...", it is a good
        bet he is about to handwave (alternatively, use of these
        constructions in a sarcastic tone before a paraphrase of
        someone else's argument suggests that it is a handwave).  The
        theory behind this term is that if you wave your hands at the
        right moment, the listener may be sufficiently distracted to
        not notice that what you have said is {bogus}.  Failing that,
        if a listener does object, you might try to dismiss the
        objection with a wave of your hand.

        The use of this word is often accompanied by gestures: both
        hands up, palms forward, swinging the hands in a vertical
        plane pivoting at the elbows and/or shoulders (depending on
        the magnitude of the handwave); alternatively, holding the
        forearms in one position while rotating the hands at the wrist
        to make them flutter.  In context, the gestures alone can
        suffice as a remark; if a speaker makes an outrageously
        unsupported assumption, you might simply wave your hands in
        this way, as an accusation, far more eloquent than words could
        express, that his logic is faulty.

hang

        1. To wait for an event that will never occur.  "The system is
        hanging because it can't read from the crashed drive".  See
        {wedged}, {hung}.

        2. To wait for some event to occur; to hang around until
        something happens.  "The program displays a menu and then
        hangs until you type a character."  Compare {block}.

        3. To attach a peripheral device, especially in the
        construction "hang off": "We're going to hang another tape
        drive off the file server."  Implies a device attached with
        cables, rather than something that is strictly inside the
        machine's chassis.

hanja

        {Han characters}

Han Unification

        {Han character}

hanzi

        {Han characters}

happily

        Of software, used to emphasise that a program is unaware of
        some important fact about its environment, either because it
        has been fooled into believing a lie, or because it doesn't
        care.  The sense of "happy" here is not that of elation, but
        rather that of blissful ignorance.  "The program continues to
        run, happily unaware that its output is going to /dev/null."

Happy

        <tool> A dyslexic acronym for "A Yacc-like Haskell Parser
        generator".

        An {LALR1 grammar} {parser generator} for {Haskell}.  Happy is
        written in Haskell, uses a parser generated by itself, and can
        be compiled using {ghc}, {hbc} or {gofer}.  Happy uses an
        implementation of {monadic IO} built on top of stream IO, but
        this should change when the {Haskell 1.3} {standard} has been
        implemented.

        Version: 0.9 (1996-02-28).

        Happy is covered by the {General Public License}.

        {Home (http://www.dcs.gla.ac.uk/fp/software/happy.html)}

        {(ftp://ftp.dcs.gla.ac.uk/pub/haskell/happy/)}

        E-mail: <andy@dcs.gla.ac.uk>, <simonm@dcs.gla.ac.uk>.

        (1996-03-21)

haque

        <spelling, jargon> /hak/ ({Usenet}) A variant spelling of
        {hack}, used only for the noun form and connoting an {elegant}
        hack.

        (1995-02-22)

hard boot

        <operating system> A {boot} which resets the entire {system}.

        The phrase has connations of hostility towards, or frustration
        with, the computer being booted.  For example, "I'll have to
        hard boot this {losing} {Sun}", or "I recommend booting it
        hard".

        Hard boots are often performed with a {power cycle}.

        Contrast {soft boot}.  See also {cold boot} and {reboot}

        (1995-11-27)

hard-coded

        <jargon> (By analogy with "{hard-wired}") Said of a data value
        or behaviour written directly into a program, possibly in
        multiple places, where it cannot be easily modified.  There
        are several alternatives, depending on how often the value is
        likely to change.  It may be replaced with a {compile-time}
        constant, such as a {C} "#define" {macro}, in which case a
        change will still require recompilation; or it may be read at
        {run-time} from a {profile}, resource (see {de-rezz}), or
        {environment variable} that a {user} can easily modify; or it
        may be read as part of the program's input data.

        To change something hard-coded requires recompilation (if
        using a compiled language of course) but, more seriously, it
        requires sufficient understanding of the implementation to be
        sure that the change will not introduce inconsistency and
        cause the program to fail.

        For example, "The line terminator is hard-coded as newline;
        who in their right mind would use anything else?"

        See {magic number}.

        (1999-10-18)

hardcopy

        <jargon> A paper printout of data displayed on a screen.

        Contrast {softcopy}.

        (1995-08-31)

hard disk

        <storage> (In contrast to {floppy disk}).  One or more rigid
        {magnetic disks} rotating about a central axle with associated
        read/write heads and electronics, used to store data.  Most
        hard disks are permanently connected to the drive (fixed
        disks) though there are also {removable disks}.

        High speed disks have an {access time} of 28 milliseconds or
        less, and low-speed disks run 65 milliseconds or more.  The
        higher speed disks also transfer their data faster than the
        slower speed units.

        Each surface of each disk is divided into a number of evenly
        spaced concentric circular {tracks}.  The set of all tracks at
        a given radius on all surfaces (the tracks which can be
        accessed without moving the heads) are known as a {cylinder}.
        Each track is divided into {sectors}.

        Disk drives are commonly characterised by the kind of
        interface used to connect to the computer, e.g. {ATA}, {IDE},
        {SCSI}.

        See also {winchester}.

        {Suchanka's PC-DISK library (http://www.pc-disk.de/)}.

        (1999-01-07)

hard disk drive

        <storage> (HDD) A {disk drive} used to read and write {hard
        disk}s.

        (1995-03-14)

hard drive

        {hard disk drive}

hard link

        <file system> One of several directory entries which refer to
        the same {Unix} {file}.  A hard link is created with the "ln"
        (link) command:

                ln <old name> <new name>

        where <old name> and <new name> are {pathnames} within the
        same {file system}.  Hard links to the same file are
        indistinguishable from each other except that they have
        different pathnames.  They all refer to the same {inode} and
        the inode contains all the information about a file.

        The standard ln command does not usually allow you to create a
        hard link to a directory, chiefly because the standard {rm}
        and {rmdir} commands do not allow you to delete such a link.
        Some systems provide link and {unlink} commands which give
        direct access to the {system calls} of the same name, for
        which no such restrictions apply.

        Normally all hard links to a file must be in the same {file
        system} because a directory entry just relates a pathname to
        an inode within the same file system.  The only exception is a
        {mount point}.

        The restrictions on hard links to directories and between
        file systems are very common but are not mandated by {POSIX}.
        {Symbolic links} are often used instead of hard links because
        they do not suffer from these restrictions.

        The space associated with a file is not freed until all the
        hard links to the file are deleted.  This explains why the
        system call to delete a file is called "unlink".

        (1997-10-22)

hard sector

        <storage> An archaic {floppy disk} format employing multiple
        synchronisation holes in the media to define the {sectors}.

        (1995-01-24)

hardware

        <hardware> The physical, touchable, material parts of a
        computer or other system.  The term is used to distinguish
        these fixed parts of a system from the more changable
        {software} or {data} components which it executes, stores, or
        carries.

        Computer hardware typically consists chiefly of electronic
        devices ({CPU}, {memory}, {display}) with some
        electromechanical parts (keyboard, {printer}, {disk drives},
        {tape drives}, loudspeakers) for input, output, and storage,
        though completely non-electronic (mechanical,
        electromechanical, hydraulic, biological) computers have also
        been conceived of and built.

        See also {firmware}, {wetware}.

        (1997-01-23)

Hardware Abstraction Layer

        <operating system> (HAL) The layer of {Microsoft} {Windows NT}
        where they have isolated their {assembly language} code.

        (1995-04-17)

Hardware Description Language

        <language> (HDL) A kind of language used for the conceptual
        design of {integrated circuit}s.  Examples are {VHDL} and
        {Verilog}.

        (1995-04-18)

hardware handshaking

        <communications> A technique for regulating the flow of data
        across an interface by means of signals carried on separate
        wires.

        A common example is the RTS (Request to Send) and CTS (Clear
        to Send) signals on an {RS-232} {serial line}.

        The alternative, {software handshaking}, uses two special
        characters inserted into the data stream to carry the same
        information.

        (1995-01-23)

hardwarily

        /hard-weir'*-lee/ In a way pertaining to hardware.  "The
        system is hardwarily unreliable."  The adjective "hardwary" is
        *not* traditionally used, though it has recently been reported
        from the U.K.

        See {softwarily}.

        (1995-01-23)

hard-wired

        1. <electronics> An aspect of an electronic circuit which is
        determined by the wiring of the hardware, as opposed to being
        programmable in software or controlled by a switch.

        2. <software, jargon> In software, a synonym for {hard-coded}.

        3. By extension, anything that is not modifiable, especially
        in the sense of customisable to one's particular needs or
        tastes.

        (1999-10-18)

Harris Semiconductor Ltd.

        <company>

        Address: Riverside Way, Camberley, Surrey, CU15 3YQ, UK.

        Telephone: +44 (1276) 686 886.  Fax: +44 (1276) 682 323.

        (1995-11-21)

Harvard Graphics

        <graphics, tool> A presentation graphics product by {Software
        Publishing Corporation} (SPC) for creating presentations,
        speeches, slides, etc..

        (1998-07-20)

Harvest

        <tool, networking> A highly scalable, customisable system for
        discovering resources on the {Internet}.

        Version: 1.3.

        {Home (http://www.tardis.ed.ac.uk/harvest/)}.

        (1999-01-16)

Harvest C

        A {C} compiler, assembler and linker for the {Macintosh} by
        Eric W. Sink.  The parts of the system are integrated in a
        single application, which manages a "project" composed by
        several C source files and resource files (which contain
        data).  Version 1.3.

        {(ftp://archive.umich.edu/mac/development/languages/)}

        (1992-05-26)

hash

        1. <character> "#", {ASCII} code 35.

        Common names: number sign; pound; pound sign; hash; sharp;
        {crunch}; hex; {INTERCAL}: mesh.  Rare: grid; crosshatch;
        octothorpe; flash; {ITU-T}: square, pig-pen; tictactoe;
        scratchmark; thud; thump; {splat}.

        The pronunciation of "#" as "pound" is common in the US but a
        bad idea; {Commonwealth Hackish} has its own, rather more
        apposite use of "pound sign" (confusingly, on British
        keyboards the pound graphic happens to replace "#"; thus
        Britishers sometimes call "#" on a US-ASCII keyboard "pound",
        compounding the American error).  The US usage derives from an
        old-fashioned commercial practice of using a "#" suffix to tag
        pound weights on bills of lading.  The character is usually
        pronounced "hash" outside the US

        2. <programming> {hash coding}.

        3. The preferred term for a {Perl} {associative array}.

        (1995-03-06)

hash bucket

        {hash coding}

hash coding

        <programming, algorithm> (Or "hash coding") A scheme for
        providing rapid access to data items which are distinguished
        by some key.  Each data item to be stored is associated with a
        key, e.g. the name of a person.  A {hash function} is applied
        to the item's key and the resulting hash value is used as an
        index to select one of a number of "hash buckets" in a hash
        table.  The table contains pointers to the original items.

        If the hash table already has an entry at the indicated
        location then that entry's key must be compared with the given
        key to see if it is the same.  If two items' keys hash to the
        same value (a "{hash collision}") then some alternative
        location is used (e.g. the next free location cyclically
        following the indicated one).  For best performance, the table
        size and {hash function} must be tailored to the number of
        entries and range of keys to be used.  The hash function
        usually depends on the table size so if the table needs to be
        enlarged it must usually be completely rebuilt.

        When you look up a name in the phone book (for example), you
        typically hash it by extracting its first letter; the hash
        buckets are the alphabetically ordered letter sections.

        See also: {btree}, {checksum}, {CRC}, {pseudorandom number},
        {random}, {random number}, {soundex}.

        (1997-08-03)

hash collision

        <programming> (Or "hash clash") When two different keys hash
        to the same value, i.e. to the same location in a {hash
        table}.

        {ESR} once asked a friend what he expected Berkeley to be
        like.  The friend replied, "Well, I have this mental picture
        of naked women throwing Molotov cocktails, but I think that's
        just a collision in my hash tables."

        (1995-01-23)

hash function

        <programming> A {hash coding} {function} which assigns a data
        item distinguished by some "key" into one of a number of
        possible "hash buckets" in a hash table.  The hash function is
        usually combined with another more precise function.

        For example a program might take a string of letters and put
        it in one of of twenty six lists depending on its first
        letter.  Ideally, a hash function should distribute items
        evenly between the buckets to reduce the number of {hash
        collisions}.  If, for example, the strings were names
        beginning with "Mr.", "Miss" or "Mrs." then taking the first
        letter would be a very poor hash function because all names
        would hash the same.

        (1997-08-03)

hashing

        {hash coding}

hash table

        {hash coding}

Haskell

        <language> (Named after the logician {Haskell Curry}) A {lazy}
        {purely functional} language largely derived from {Miranda}
        but with several extensions.  Haskell was designed by a
        committee from the {functional programming} community in April
        1990.  It features static {polymorphic} typing, {higher-order
        function}s, user-defined {algebraic data type}s, and
        {pattern-matching} {list comprehension}s.  Innovations include
        a {class} system, systematic operator {overloading}, a
        {functional I/O} system, functional {arrays}, and {separate
        compilation}.

        Haskell 1.3 added many new features, including {monadic I/O},
        standard libraries, {constructor classes}, {labeled fields} in
        datatypes, {strictness} {annotations}, an improved {module}
        system, and many changes to the Prelude.

        {Gofer} is a cut-down version of Haskell with some extra
        features.

        {Filename extension}: .hs, .lhs ({literate programming}).

        {Home (http://haskell.org/)}.

        ["Report on the Programming Language Haskell Version 1.1",
        Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U.,
        Aug 1991].

        [Version 1.2: SIGPLAN Notices 27(5), Apr 1992].

        {Haskell 1.3 Report
        (http://haskell.cs.yale.edu/haskell-report/haskell-report.html)}.

        Mailing list: <haskell-request@cs.yale.edu>.

        Yale Haskell - Version 2.0.6, Haskell 1.2 built on {Common
        Lisp}.

        {(ftp://nebula.cs.yale.edu/pub/haskell/yale/)}.

        Glasgow Haskell (GHC) - Version 2.04 for {DEC Alpha}/{OSF}2;
        {HPPA1.1}/{HPUX}9,10; {SPARC}/{SunOs} 4, {Solaris} 2;
        {MIPS}/{Irix} 5,6; {Intel 80386}/{Linux},{Solaris}
        2,{FreeBSD},{CygWin} 32; {PowerPC}/{AIX}.  GHC generates {C}
        or {native code}.

        {(ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}

        E-mail: <glasgow-haskell-request@dcs.glasgow.ac.uk>.

        Haskell-B - Haskell 1.2 implemented in {LML}, generates
        {native code}.

        {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}

        E-mail: <hbc@cs.chalmers.se>.

        (1997-06-06)

Haskell B

        <language> An early version of {Haskell} by Lennart Augustsson
        <augustss@cs.chalmers.se> from {Chalmers}.  Haskell B evolved
        into a full-featured implementation of Haskell 1.2, with quite
        a few extensions.

        Ports exist for many {platforms} including {Sun}, {DEC},
        {Sequent}, {IBM PC}, {Symmetry} and unsupported versions for
        {NS32000}, {IBM RT/PC}, {Cray}, {Sun3}, {Vax}, {ARM}, and
        {RS/6000}.

        Version 0.999.5 included a compiler, interpreter, library,
        documentation, and examples.

        {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}.

        Mailing list: <haskell-request@cs.yale.edu>.

        E-mail: <hbc@cs.chalmers.se>.

        (1996-08-21)

Haskell Curry

        <person> Haskell Brooks Curry (1900-09-12 - 1982-09-01).  The
        logician who re-invented and developed {combinatory logic}.

        The {functional programming} language {Haskell} was named
        after him.

        {Biography
        (http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html)
}.

        (1999-01-08)

Haskell User's Gofer System

        <language> (HUGS) An implementation of {Haskell} derived from
        {Gofer} 2.30b with an interactive development environment much
        like Gofer's.  Almost all of the features of Haskell 1.2 are
        implemented with the exception of the {module} system.  Hugs
        supports Haskell style {type class}es, a full prelude,
        {derived instance}s, defaults, {overloaded} numeric {literal}s
        and {pattern matching}, and {bignum} arithmetic.

        {Home
        (http://www.cs.nott.ac.uk/Department/Staff/mpj/hugs.html)}.

        {(ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs)}

        E-mail: Mark P. Jones <mpj@cs.nott.ac.uk>.

        (1995-02-14)

HASL

        <language> {SASL} plus {conditional unification}.

        ["A Prological Definition of HASL, A Purely Functional
        Language with Unification Based Conditional Binding
        Expressions", H. Abramson in Logic Programming: Functions,
        Relations and Equations, D. DeGroot et al eds, P-H 1986].

        (1996-08-21)

HASP

        {Houston Automatic Spooling Program}

has the X nature

        (From Zen Buddhist koans of the form "Does an X have the
        Buddha-nature?") Common hacker construction for "is an X",
        used for humorous emphasis.  "Anyone who can't even use a
        program with on-screen help embedded in it truly has the
        {loser} nature!"  See also {the X that can be Y is not the
        true X}.

        (1995-01-11)

hat

        A common (spoken) name for the circumflex ("^", ASCII 94)
        character.

        See {ASCII} for other synonyms.

Hayes

        A {modem} manufacturer.

        {(gopher://leapfrog.almac.co.uk:70/00/business/comms/hayes/corporat.txt
)}

        Address: Atlanta, Georgia, USA.

        (1995-01-30)

Hayes-compatible

        <communications> A description of a {modem} which understands
        the same set of commands as one made by {Hayes}.

        [What are the commands?]

        (1996-12-08)

HBOOK

        A histogramming package in the CERN program library.

hc

        The compiler for the {h} {hyperbook} language.

HCF

        1. <operating system> {Host Command Facility}.

        2. <architecture> {Halt and Catch Fire}.

        (1999-01-24)

HCI

        1. {Human-Computer Interaction}.

        2. {Human-Computer Interface}.

        (1999-06-11)

HCLP

        Hierarchical {CLP}.

        ["Constraint Hierarchies and Logic Programming", A. Borning et
        al, in Proc Sixth Intl Logic Prog Conf, June 1989,
        pp. 149-164].

HCPRVR

        "HCPRVR: An Interpreter for Logic Programs", D. Chester in
        Proc First Natl Conf on AI, Stanford, 1980.

HCS

        {Heterogeneous Computer System}

        A {distributed system} project.

        [Where?  When?  What?]

        (1995-02-01)

HD

        {high density}

HD6309

        {Hitachi 6309}

HDA

        {Head Disk Assembly}

HDC

        {Disk Controller}

HDD

        {hard disk drive}

HDF

        Hierarchical Data Format from NCSA.

        [What is it?]

        (1999-03-21)

HDFL

        A {single assignment} language.

        ["Methods for Handling Structures in Data-Flow Systems",
        J.L. Gaudiot, Proc 12th Intl Symp Comp Arch, June 1985].

HDL

        {Hardware Description Language}

HDLC

        {High-level Data Link Control}

HDM

        See SPECIAL.

HDSL

        {High bit-rate Digital Subscriber Line}

HDTV

        {High Definition Television}

hdx

        {half-duplex}

Head Disk Assembly

        <hardware, storage> (HDA) A sealed, high capacity {mainframe}
        {hard disk} with integral heads, as opposed to a {removable
        disk}.

        (1999-01-13)

header

        1. The portion of a {packet}, preceding the actual data,
        containing source and destination addresses, error checking
        and other fields.

        2. The part of an {electronic mail} message or {news} article
        that precedes the body of a message and contains, among other
        things, the sender's name and e-mail address and the date and
        time the message was sent.

head normal form

        (HNF) A lambda expression is in head normal form if its top
        level is either a variable, a data value, a built-in function
        applied to too few arguments or a lambda abstraction whose
        body is not reducible.  I.e. the top level is neither a redex
        nor a lambda abstraction with a reducible body.

        An expression in HNF may contain redexes in argument postions
        whereas a normal form may not.  See also Weak head normal
        form.

head normalisation theorem

        Under the typed lambda-calculus, beta/delta reduction of the
        left-most redex (normal order reduction) is guaranteed to
        terminate with a head normal form if one exists.  See also
        Church-Rosser theorem.

heads down

        [Sun] Concentrating, usually so heavily and for so long that
        everything outside the focus area is missed.  See also {hack
        mode} and {larval stage}, although this mode is hardly
        confined to fledgling hackers.

head-strict

        <theory> A head-strict function will not necessarily evaluate
        every {cons} cell of its (list) argument, but whenever it does
        evaluate a cons cell it will also evaluate the element in the
        head of that cell.  An example of a head-strict function is

                beforeZero :: [Int] -> [Int]
                beforeZero []     = []
                beforeZero (0:xs) = []
                beforeZero (x:xs) = x : beforeZero xs

        which returns a list up to the first zero.

        This pattern of evaluation is important because it is common
        in functions which operate on a list of inputs.

        See also {tail-strict}, {hyperstrict}.

        (1995-05-11)

heap

        1. <programming> An area of memory used for {dynamic memory
        allocation} where blocks of memory are allocated and freed in
        an arbitrary order and the pattern of allocation and size of
        blocks is not known until {run-time}.  Typically, a program
        has one heap which it may use for several different purposes.

        Heap is required by languages in which functions can return
        arbitrary data structures or functions with {free variables}
        (see {closure}).  In {C} functions {malloc} and {free} provide
        access to the heap.

        Contrast {stack}.  See also {dangling pointer}.

        2. <programming> A data structure with its elements partially
        ordered (sorted) such that finding either the minimum or the
        maximum (but not both) of the elements is computationally
        inexpensive (independent of the number of elements), while
        both adding a new item and finding each subsequent
        smallest/largest element can be done in O(log n) time, where n
        is the number of elements.

        Formally, a heap is a {binary tree} with a key in each {node},
        such that all the {leaves} of the tree are on two adjacent
        levels; all leaves on the lowest level occur to the left and
        all levels, except possibly the lowest, are filled; and the
        key in the {root} is at least as large as the keys in its
        children (if any), and the left and right subtrees (if they
        exist) are again heaps.

        Note that the last condition assumes that the goal is finding
        the minimum quickly.

        Heaps are often implemented as one-dimensional {arrays}.
        Still assuming that the goal is finding the minimum quickly
        the {invariant} is

           heap[i] <= heap[2*i] and heap[i] <= heap[2*i+1] for all i,

        where heap[i] denotes the i-th element, heap[1] being the
        first.  Heaps can be used to implement {priority queues} or in
        {sort} algorithms.

        (1996-02-26)

heartbeat

        1. <networking> The signal emitted by a Level 2 Ethernet
        transceiver at the end of every {packet} to show that the
        collision-detection circuit is still connected.

        2. A periodic synchronisation signal used by software or
        hardware, such as a {bus} clock or a periodic {interrupt}.

        3. The "natural" oscillation frequency of a computer's clock
        crystal, before frequency division down to the machine's clock
        rate.

        4. A signal emitted at regular intervals by software to
        demonstrate that it is still alive.  Sometimes hardware is
        designed to reboot the machine if it stops hearing a
        heartbeat.  See also {breath-of-life packet}, {watchdog}.

        (1996-03-12)

heatseeker

        <person, jargon> (IBM) A customer who can be relied upon to
        buy, without fail, the latest version of an existing product
        (not quite the same as a member of the {lunatic fringe}).  A
        1993 example of a heatseeker is someone who, owning a 286 PC
        and Windows 3.0, goes out and buys {Windows 3.1} (which offers
        no worthwhile benefits unless you have a 386).  If all
        customers were heatseekers, vast amounts of money could be
        made by just fixing the bugs in each release (n) and selling
        it to them as release (n+1).

        (1996-03-12)

heat sink

        <hardware> /heet sink/ (from "sink", electronics jargon for
        something which takes in current) A piece of thermally
        conductive metal attached to a {semiconductor} or other
        electronic device and designed to prevent it from overheating
        by conducting heat away from it and radiating it to the
        environment.  Heat sinks often have fins to increase their
        surface area.  They occasionally have fans attached.  Heat
        sink compound can be smeared between the device and the heat
        sink to improve thermal conduction.

        (1997-06-10)

heavy metal

        (Cambridge) {big iron}.

heavyweight

        High-overhead; {baroque}; code-intensive; featureful, but
        costly.  Especially used of communication protocols, language
        designs, and any sort of implementation in which maximum
        generality and/or ease of implementation has been pushed at
        the expense of mundane considerations such as speed, memory
        use and startup time.  {EMACS} is a heavyweight editor; {X} is
        an *extremely* heavyweight window system.  This term isn't
        pejorative, but one hacker's heavyweight is another's
        {elephantine} and a third's monstrosity.

        Opposite: "lightweight".  Usage: now borders on technical
        especially in the compound "heavyweight process".

        (1994-12-22)

heavy wizardry

        Code or designs that trade on a particularly intimate
        knowledge or experience of a particular operating system or
        language or complex application interface.  Distinguished from
        {deep magic}, which trades more on arcane *theoretical*
        knowledge.  Writing device drivers is heavy wizardry; so is
        interfacing to {X} (sense 2) without a toolkit.  Especially
        found in source-code comments of the form "Heavy wizardry
        begins here".

        Compare {voodoo programming}.

Hebbian

        Refers to the most common way for a neural network to learn,
        namely supervised learning.  Using a training sample which
        should produce known responses, the connection weights are
        adjusted so as to minimise the differences between the desired
        and actual outputs for the training sample.

heisenbug

        <jargon> /hi:'zen-buhg/ (From Heisenberg's Uncertainty
        Principle in quantum physics) A bug that disappears or alters
        its behaviour when one attempts to probe or isolate it.  (This
        usage is not even particularly fanciful; the use of a debugger
        sometimes alters a program's operating environment
        significantly enough that buggy code, such as that which
        relies on the values of uninitialised memory, behaves quite
        differently.)

        In {C}, nine out of ten heisenbugs result from uninitialised
        auto variables, {fandango on core} phenomena (especially
        lossage related to corruption of the malloc {arena}) or errors
        that {smash the stack}.

        Opposite: {Bohr bug}.  See also {mandelbug}, {schroedinbug}.

        (1995-02-28)

Helen Keller mode

        1. State of a hardware or software system that is deaf, dumb,
        and blind, i.e. accepting no input and generating no output,
        usually due to an infinite loop or some other excursion into
        {deep space}.  (Unfair to the real Helen Keller, whose success
        at learning speech was triumphant.)  See also {go flatline},
        {catatonic}.

        2. On {IBM PCs} under {MS-DOS}, refers to a specific failure
        mode in which a screen saver has kicked in over an
        {ill-behaved} application which bypasses the very interrupts
        the screen saver watches for activity.  Your choices are to
        try to get from the program's current state through a
        successful save-and-exit without being able to see what you're
        doing, or to {re-boot} the machine.  This isn't (strictly
        speaking) a crash.

Helix

        A {hardware description language} from {Silvar-Lisco}.

hello, sailor!

        Occasional West Coast equivalent of {hello, world}; seems to
        have originated at SAIL, later associated with the game {Zork}
        (which also included "hello, aviator" and "hello,
        implementor").  Originally from the traditional hooker's
        greeting to a swabbie fresh off the boat, of course.

hello, world

        The canonical minimal test message in the {C}/{Unix} universe
        or any of the minimal programs that emit this message.
        Traditionally, the first program a C coder writes in a new
        environment is one that just prints "hello, world" to standard
        output (and indeed it is the first example program in {K&R}).
        Environments that generate an unreasonably large executable
        for this trivial test or which require a {hairy}
        compiler-linker invocation to generate it are considered bad
        (see {X}).

HELP

        1. <language, robotics> {DEA}.  A Language for industrial
        robots.

        2. (Help Est un Lisp Paresseux - Help Is a Lazy Lisp).  A
        {lazy} version of {Scheme} with strictness {annotation}s, by
        Thomas Schiex <schiex@europe.cert.fr>.

henry

        <unit> (H) The {SI} unit of inductance: one henry is the
        inductance of a closed loop in which the induced voltage is
        one volt if the current flowing through it changes by one
        ampere each second, i.e., 1 H = 1 Vs/A.  Named after the
        American physicist Joseph Henry (1797-1878).

        (1997-03-16)

HENSA

        {Higher Education National Software Archive}

HEP

        High Energy (Particle) Physics.

HEPDB

        A {database management system} for {HEP}.

HEPiX

        A recently formed collaboration among various HEP institutes
        aiming at providing "compatible" versions of the Unix
        operating system at their sites.

HEPnet

        An association concerned with networking requirements for high
        energy physicists.

HEPVM

        A collaboration among various HEP institutes to implement
        "compatible" versions of IBM's VM-CMS operating system at
        their sites.

HEQS

        E. Derman.  Constraint language for financial modeling.  Uses
        an extension of the equation solver in IDEAL.  "A Simple
        Equation Solver and Its Application to Financial Modeling",
        E. Derman et al, Soft Prac & Exp 14(12):1169-1181 (Dec 1984).

HERA

        An electron-proton collider at DESY, W. Germany.

HERAKLIT

        <language> A distributed {object-oriented} language.

        ["Definition einer objektorientierten Programmiersprache mit
        hierarchischem Typkonzept", B. Hindel, diss U
        Erlangen-Nuernberg, Dec 1987].

        (1995-03-16)

here document

        <operating system> Data included in a {Unix} {shell script} or
        {Perl} script using the "<<" syntax.

        (1995-04-19)

Herman Hollerith

        <person> The promulgator of the {punched card}.  Hollerith was
        born on 1860-02-29 and died on 1929-11-17.  He graduated from
        Columbia University, NewYork, NY, USA.  He joined the US
        Census Bureau as a statistician where he used a punched card
        device to help analyse the 1880 US census data.  This punched
        card system stored data in 80 columns.  This "80-column"
        concept has carried forward in various forms into modern
        applications.

        In 1896, Hollerith founded the {Tabulating Machine Company} to
        exploit his invention and in 1924 his firm became part of
        {IBM}.  The Hollerith system was used for the 1911 UK census.

        (1996-01-02)

Hermes

        <language> An experimental, very high level, integrated
        language and system from the {IBM} {Watson Research Centre},
        produced in June 1990.  It is designed for implementation of
        large systems and distributed applications, as well as for
        general-purpose programming.  It is an {imperative}, {strongly
        typed} and {process-oriented} successor to {NIL}.

        Hermes hides distribution and heterogeneity from the
        programmer.  The programmer sees a single {abstract machine}
        containing processes that communicate using calls or sends.
        The {compiler}, not the programmer, deals with the complexity
        of data structure layout, local and remote communication, and
        interaction with the {operating system}.  As a result, Hermes
        programs are portable and easy to write.  Because the
        programming paradigm is simple and high level, there are many
        opportunities for optimisation which are not present in
        languages which give the programmer more direct control over
        the machine.

        Hermes features {threads}, {relational table}sHermes is,
        {typestate} checking, {capability}-based access and {dynamic
        configuration}.

        Version 0.8alpha patchlevel 01 runs on {RS/6000}, {Sun-4},
        {NeXT}, {IBM-RT}/{BSD4.3} and includes a {bytecode compiler},
        a bytecode->C compiler and {run-time support}.

        {0.7alpha for Unix
        (ftp://software.watson.ibm.com/pub/hermes)}.

        E-mail: <hermes-request@watson.ibm.com>, Andy Lowry
        <lowry@watson.ibm.com>.

        {Usenet} newsgroup: {news:comp.lang.hermes}.

        ["Hermes: A Language for Distributed Computing".  Strom,
        Bacon, Goldberg, Lowry, Yellin, Yemini.  Prentice-Hall,
        Englewood Cliffs, NJ.  1991.  ISBN: O-13-389537-8].

        (1992-03-22)

Hesiod

        <project> The {name server} of the {Athena} project.

        [Details?]

        (1997-10-27)

heterogeneous

        Composed of unrelated parts, different in kind.

        Often used in the context of {distributed systems} that may be
        running different {operating systems} or network {protocols}
        (a {heterogeneous network}).

        For examples see: {interoperable database}, {middleware}.

        Constrast {homogeneous}.

        (1999-05-06)

heterogeneous network

        <networking> A {network} running multiple {network layer}
        {protocols} such as {DECnet}, {IP}, {IPX}, {XNS}.

        (1997-10-27)

heterogenous

        <spelling> It's spelled {heterogeneous}.

        (1999-06-10)

heuristic

        1. <programming> A rule of thumb, simplification or educated
        guess that reduces or limits the search for solutions in
        domains that are difficult and poorly understood.  Unlike
        {algorithms}, heuristics do not guarantee optimal, or even
        {feasible}, solutions and are often used with no theoretical
        guarantee.

        [What is a "feasible solution"?]

        2. <algorithm> {approximation algorithm}.

        (1998-02-27)

heuristics testing

        {failure-directed testing}

Hewlett-Packard

        (HP) Hewlett-Packard designs, manufactures and services
        electronic products and systems for measurement, computation
        and communications.  The company's products and services are
        used in industry, business, engineering, science, medicine and
        education in approximately 110 countries.

        HP was founded in 1939 and employs 96600 people, 58900 in the
        USA.  They have manufacturing and R&D establishments in 54
        cities in 16 countries and approximately 600 sales and service
        offices in 110 countries.  Their revenue (in 1992/1993?) was
        $20.3 billion.  The Chief Executive Officer is Lewis E. Platt.
        HP's stock is traded on the New York Stock Exchange and the
        Pacific, Tokyo, London, Frankfurt, Zurich and Paris exchanges.

        Quarterly sales $6053M, profits $347M (Aug 1994).

        {(http://www.hp.com/home.html)}

        (1994-09-26)

Hewlett-Packard Graphics Language

        <graphics, language> (HP-GL) A {vector graphics} language used
        by {HP} plotters.

        [Details?  On-line spec?]

        (1994-10-27)

Hewlett-Packard Interface Bus

        {IEEE 488}

Hewlett Packard Multi Processing Executive

        <operating system> (HP-MPE) The standard {operating system} on
        all {HP3000} {minicomputers}, in the same way that HP9000
        computers run {HP-UX}.

        Current version (1998-02-17): MPE/IX Version 5.5.04.

        (1998-02-17)

Hewlett Packard Precision Architecture

        (HP-PA) {Hewlett Packard}'s range of RISC processors.

        [Details?]

        (1995-02-22)

Hewlett-Packard Visual Engineering Environment

        (HP VEE) A package similar in intention to {LabVIEW}, running
        on {Unix} {workstations} under {OSF}/{Motif}.

        (1997-05-12)

hex

        1. {hexadecimal}.

        2. A 6-pack of anything (compare {quad}).  Neither usage has
        anything to do with {magic} or {black art}, though the pun is
        appreciated and occasionally used by hackers.  True story: As
        a joke, some hackers once offered some surplus ICs for sale to
        be worn as protective amulets against hostile magic.  The
        chips were, of course, hex inverters.

        3. <character> The {hash} character, used to introduce
        {hexadecimal} constants in some {assembly language}s.

        (1995-03-06)

hexadecimal

        <mathematics> (Or "hex") {Base} 16.  A number representation
        using the digits 0-9, with their usual meaning, plus the
        letters A-F (or a-f) to represent hexadecimal digits with
        values of (decimal) 10 to 15.  The right-most digit counts
        ones, the next counts multiples of 16, then 16^2 = 256, etc.

        For example, hexadecimal BEAD is decimal 48813:

                digit    weight        value
                B = 11   16^3 = 4096   11*4096 = 45056
                E = 14   16^2 =  256   14* 256 =  3584
                A = 10   16^1 =   16   10*  16 =   160
                D = 13   16^0 =    1   13*   1 =    13
                                                 -----
                                        BEAD   = 48813

        There are many conventions for distinguishing hexadecimal
        numbers from decimal or other bases in programs.  In {C} for
        example, the prefix "0x" is used, e.g. 0x694A11.

        Hexadecimal is more succinct than {binary} for representing
        {bit-masks}, machines addresses, and other low-level constants
        but it is still reasonably easy to split a hex number into
        different bit positions, e.g. the top 16 bits of a 32-bit word
        are the first four hex digits.

        The term was coined in the early 1960s to replace earlier
        "sexadecimal", which was too racy and amusing for stuffy
        {IBM}, and later adopted by the rest of the industry.

        Actually, neither term is etymologically pure.  If we take
        "binary" to be paradigmatic, the most etymologically correct
        term for base ten, for example, is "denary", which comes from
        "deni" (ten at a time, ten each), a Latin "distributive"
        number; the corresponding term for base sixteen would be
        something like "sendenary".  "Decimal" is from an ordinal
        number; the corresponding prefix for six would imply something
        like "sextidecimal".  The "sexa-" prefix is Latin but
        incorrect in this context, and "hexa-" is Greek.  The word
        {octal} is similarly incorrect; a correct form would be
        "octaval" (to go with decimal), or "octonary" (to go with
        binary).  If anyone ever implements a base three computer,
        computer scientists will be faced with the unprecedented
        dilemma of a choice between two *correct* forms; both
        "ternary" and "trinary" have a claim to this throne.

        (1996-03-09)

hexidecimal

        <spelling> Mis-spelling of "{hexadecimal}".

        (1998-03-03)

hexit

        <jargon> /hek'sit/ A {hexadecimal} digit (0-9, and A-F or
        a-f).  Used by people who claim that there are only *ten*
        digits, sixteen-fingered human beings being rather rare,
        despite what some keyboard designs might seem to imply (see
        {space-cadet keyboard}).

        (1996-03-09)

HFC

        {hydrofluorocarbon}

HHCP

        {Host Host Copy}

HHOJ

        <chat> ha ha only joking.

        Contrast {ha ha only serious}.

        (1998-01-18)

HHOK

        ha ha only kidding.  See {ha ha only serious}.

HHOS

        {ha ha only serious}

HIBOL

        A variant of {DIBOL}, used in {Infotec} computers.

        (1994-11-24)

hidden flag

        (scientific computation) An extra option added to a routine
        without changing the calling sequence.  For example, instead
        of adding an explicit input variable to instruct a routine to
        give extra diagnostic output, the programmer might just add a
        test for some otherwise meaningless feature of the existing
        inputs, such as a negative mass.  The use of hidden flags can
        make a program very hard to debug and understand, but is all
        too common wherever programs are hacked in a hurry.

        (1994-11-24)

hierarchical database

        <database> A kind of {database management system} that links
        records together like a family tree such that each record type
        has only one owner, e.g. an order is owned by only one
        customer.  Hierarchical structures were widely used in the
        first {mainframe} database management systems.  However, due
        to their restrictions, they often cannot be used to relate
        structures that exist in the real world.

hierarchical file system

        <file system> A {file system} in which the {files} are
        organised into a {hierarchy}.  The nodes of the hierarchy are
        called {directories} while the leaves are the files
        themselves.

        See also {root directory}.  Compare {flat file system}.

        (1996-11-21)

Hierarchical Music Specification Language

        <language, music> (HMSL) A programming language for
        experimental music composition and performance.  It is a set
        of {object-oriented} extensions to {Forth}.  (Its near-total
        unintelligibility to people unfamiliar with {Forth} has led
        some to expand "HMSL" as "Her Majesty's Secret Language".)

        Phil Burk (who also later developed {pForth}), Larry Polansky,
        and David Rosenboom started developing HMSL in 1980 while
        working at the {Mills College Center for Contemporary Music
        (http://www.mills.edu/LIFE/CCM/CCM.homepage.html)}.  As of
        June 1998, development is ongoing.

        {(http://www.softsynth.com/hmsl/)}.

        (1998-09-07)

hierarchical routing

        The complex problem of routing on large networks can be
        simplified by breaking a network into a hierarchy of smaller
        networks, where each level is responsible for its own routing.
        The Internet has, basically, three levels: the backbones, the
        mid-levels, and the stub networks.  The backbones know how to
        route between the mid-levels, the mid-levels know how to route
        between the sites, and each site (being an autonomous system)
        knows how to route internally.  See also Exterior Gateway
        Protocol, Interior Gateway Protocol, transit network.

hierarchy

        An organisation with few things, or one thing, at the top and
        with several things below each other thing.  An inverted tree
        structure.  Examples in computing include a directory
        hierarchy where each directory may contain files or other
        directories; a hierarchical {network} (see {hierarchical
        routing}), a {class hierarchy} in {object-oriented
        programming}.

        (1994-10-11)

high bit

        [high-order bit] The most significant bit in a {byte}.  See
        also {meta bit}, {hobbit}, {dread high bit disease}.

High bit-rate Digital Subscriber Line

        <communications, protocol> (HDSL) A form of {Digital
        Subscriber Line}, providing {T1} or {E1} connections over two
        or three {twisted-pair} copper lines, respectively.  Unlike
        most other forms of DSL HDSL is not a typical consumer
        service, it's used mostly to replace traditional T1/E1
        connections, such as connecting {PBXes} to {telco} offices.
        The advantage of HDSL over the {Alternate Mark Inversion} line
        coding scheme traditionally used on T1/E1 lines is that it
        requires about an order of magnitude lower bandwidth to carry
        the same traffic.

        (1998-05-18)

high colour

        <hardware> A {colour depth} of 16 (or 15) {bits per pixel}.

        Compare {true colour}.

        (1999-08-01)

high density

        {floppy disk}

Higher Education National Software Archive

        (HENSA)

        {Home (http://www.hensa.ac.uk/)}

        (1995-01-06)

higher-order function

        (HOF) A function that can take one or more functions as
        argument and/or return a function as its value.  E.g. map in
        (map f l) which returns the list of results of applying
        function f to each of the elements of list l.  See also
        {curried function}.

higher-order macro

        A means of expressing certain {higher-order function}s in a
        first order language.  Proposed by Phil Wadler.  Higher-order
        macros cannot be recursive at the top level but they may
        contain recursive definitions.  E.g.

                map f l = m l
                          where
                          m []     = []
                          m (x:xs) = f x : m xs

        Expanding a call to this macro is equivalent to specialising a
        call to map in its first argument.

        See {partial evaluation}.

High-level Data Link Control

        <networking> (HDLC) A general-purpose {data link} control
        {protocol} defined by {ISO} for use on both point-to-point and
        {multipoint} (multidrop) data links.  It supports
        {full-duplex}, {transparent-mode} operation.  It is used
        extensively in both multipoint and computer networks.

        Some manufacturers and other standards bodies still use their
        own acronyms, e.g. {IBM}'s SDLC ({Synchronous Data Link
        Control}), the forerunner of HDLC and {ANSI}'s ADCCP
        ({Advanced Data Communications Control Procedure}).

        [Fred Halsall, "Data Communications, Computer Networks and
        Open Systems" 4th edition, 1996, p.237, Addison-Wesley
        Publishing Co. Reading, Mass., USA].

        (1997-11-09)

high-level language

        (HLL) A programming language which provides some level of
        abstraction above {assembly language}.  These normally use
        statements consisting of English-like keywords such as "FOR",
        "PRINT" or "GOTO", where each statement corresponds to several
        {machine language} instructions.  It is much easier to program
        in a high-level language than in {assembly language} though
        the efficiency of execution depends on how good the {compiler}
        or {interpreter} is at optimising the program.

        Rarely, the variants "{VHLL}" and "{MLL}" are found.

        See also {languages of choice}, {generation}.

        (1994-12-07)

high memory area

        <storage> (HMA) The first 64 {kilobytes} (minus 16 byte) of
        the {extended memory} on an {IBM PC}.  By a strange design
        glitch the {Intel 80x86} processors can actually address 17*64
        kbyte minus 16 byte of memory (from 0000:0000 to ffff:ffff) in
        real mode.  In the {Intel 8086} and {Intel 8088} processors,
        unable to handle more than 1 {megabyte} of memory, addressing
        wrapped around, that is, address ffff:0010 was equivalent to
        0000:0000.  For compatibility reasons, later processors still
        wrapped around by default, but this feature could be switched
        off.  Special programs called {A20 handlers} can control the
        addressing mode dynamically, thereby allowing programs to load
        themselves into the 1024--1088 kbyte region and run in {real
        mode}.  From version 5.0 parts of {MS-DOS} can be loaded into
        HMA as well freeing up to 46 kbytes of {conventional memory}.

        (1995-01-10)

high moby

        /hi:' mohb'ee/ The high half of a 512K {PDP-10}'s physical
        address space; the other half was of course the low moby.
        This usage has been generalised in a way that has outlasted
        the {PDP-10}; for example, at the 1990 Washington D.C.  Area
        Science Fiction Conclave (Disclave), when a miscommunication
        resulted in two separate wakes being held in commemoration of
        the shutdown of MIT's last {ITS} machines, the one on the
        upper floor was dubbed the "high moby" and the other the "low
        moby".  All parties involved {grok}ked this instantly.  See
        {moby}.

High Performance Computing and Communications

        (HPCC) High performance computing includes scientific
        workstations, supercomputer systems, high speed networks,
        special purpose and experimental systems, the new generation
        of large scale parallel systems, and application and systems
        software with all components well integrated and linked over a
        high speed network.

        ["Grand Challenges 1993: High Performance Computing and
        Communications", Committee on Physical, Mathematical and
        Engineering Sciences of the Federal Coordinating Council for
        Science, Engineering and Technology.]

High Performance File System

        <file system> (HPFS) The {native} {file system} for {IBM}'s
        {OS/2}.

        (1995-03-06)

High Performance Fortran

        <language> (HPF) A {data parallel} language extension to
        {Fortran 90} which provides a portable programming interface
        for a wide variety of target {platforms}.  The original HPF
        language specification was produced by the High Performance
        Fortran Forum, a broad consortium of industry and academia,
        which met regularly throughout 1992 and early 1993.  HPF
        {compilers} are now available on most commonly-used computing
        systems, and users are beginning to gain first hand experience
        with this language.  The Forum has continued to meet in order
        to address advanced topics.

        {HPF+ at Vienna (http://www.par.univie.ac.at/hpf+/)}.

        ["High Performance Fortran: Status Report", G.L. Steele Jr
        <gls@think.com>, SIGPLAN Notices 28(1):1-4 (Jan 1993)].

        (1996-09-09)

High Performance Parallel Interface

        <hardware, standard> (HIPPI, previously HPPI) A
        {connection-oriented}, point-to-point networking {standard}
        using {circuit-switching} technology at a speed of 800 Mbits/s
        or 1.6 Gbits/s (simplex or full-duplex).  HIPPI is often used
        for short distances (up to 10km depending on cable type) to
        connect a {supercomputer} to {routers}, {frame buffers},
        {mass-storage} peripherals and other computers.

        HIPPI was developed at {Los Alamos National Laboratory} and is
        now {ANSI} standard X3T9/88-127.  Standards for
        interconnecting with {ATM}, {SONet}, and {fibre channel} are
        in development.

        {HIPPI Networking Forum (http://www.esscom.com/hnf)}.

        (1997-06-29)

High Performance Routing

        <networking> (HPR) Routing designed to work in conjunction
        with {APPN} {Intermediate Session Routing} (ISR) network
        nodes.  HPR nodes perform many of the same functions as ISR
        nodes.  For example, HPR nodes use the same method of
        calculating routes based on the {Topology} Routing Service
        database and {class of service} tables.  HPR nodes also
        supports such APPN features as connection networks and support
        for parallel {transmission groups} (TGs).  In the HPR
        architecture, both partner nodes must support HPR for {RTP}
        connections to take place between the nodes.  If one node
        supports HPR and the partner node does not, then the link will
        support ISR functionality only.

        ["APPN Architecture and Product Implementations Tutorial",
        IBM, GG24-3669-92].

        (1997-05-08)

High Performance Serial Bus

        <hardware, standard> (Or {IEEE} 1394, formerly FireWire) A
        1995 {Macintosh}/{IBM PC} serial bus interface standard
        offering high-speed communications and {isochronous}
        {real-time} data services.

        1394 can transfer data between a computer and its
        {peripherals} at 100, 200, or 400 {Mbps}, with a planed
        increase to 2 {Gbps}.  Cable length is limited to 4.5 m but up
        to 16 cables can be daisy-chained yielding a total length of
        72 m.

        It can {daisy-chain} together up to 63 peripherals in a
        tree-like structure (as opposed to {SCSI}'s linear structure).
        It allows peer-to-peer device communication, such as
        communication between a {scanner} and a {printer}, to take
        place without using system memory or the {CPU}.  It is
        designed to support {plug-and-play} and {hot swapping}.  Its
        6-wire cable is not only more convenient than the SCSI cables
        but can supply up to 60 watts of power, allowing
        low-consumption devices to operate without a separate power
        cord.

        Some expensive camcorders have included this bus since Autumn
        1995.  It is expected to be used to carry {SCSI}, with
        possible application to {home automation} using {repeaters}.

        See also {Universal Serial Bus}, {FC-AL}.

        (1996-05-25)

High Speed Connect

        <hardware> (HSC) A {Hewlett-Packard} bus like {EISA}.

        [HP9000 Configuration Guide, January 1996].

        [Details?]

        (1996-06-06)

high speed serial interface

        <hardware, communications> (HSSI) A {serial port} which
        supports serial transmit speeds of up to 52 megabits per
        second.  It is typically used for leased lines such as {DS3}
        (44.736 Mbps) and {E3} (34 Mbps) and for {Wide Area Network}
        devices such as {routers}.

        (1995-11-20)

High Voltage Differential

        <hardware> (HVD) {Differential SCSI} scheme that has been in
        use for years.  The {terminators} run on 5 Volts DC.

        See also {LVD}.

        (1999-02-16)

HIGZ

        High Level Interface to Graphics and Zebra.  Part of the {PAW}
        system.

hill climbing

        <algorithm> A {graph} search {algorithm} where the current
        path is extended with a successor node which is closer to the
        solution than the end of the current path.

        In simple hill climbing, the first closer node is chosen
        whereas in steepest ascent hill climbing all successors are
        compared and the closest to the solution is chosen.  Both
        forms fail if there is no closer node.  This may happen if
        there are local maxima in the {search space} which are not
        solutions.  Steepest ascent hill climbing is similar to {best
        first search} but the latter tries all possible extensions of
        the current path in order whereas steepest ascent only tries
        one.

        (1995-12-09)

HiLog

        A {higher-order logic} programming language.  An extension of
        normal {logic programming} where {predicate} symbols may be
        variable or structured.  This allows {unification} to be
        performed on the predicate symbols themselves in addition to
        their arguments.

        {(ftp://sbcs.sunysb.edu/SB-hilog)}

        ["HiLog as a Platform for Database Languages (Or Why Predicate
        Calculus is Not Enough)", W. Chen et al, Stony Brook, 2nd Intl
        Workshop on Database Prog Langs, Morgan Kaufmann, 1989].

        (1994-12-07)

HIMEM

        <software, storage> An {IBM PC} {extended memory manager},
        part of {MS-DOS} version 5.00 or higher.  HIMEM can also act
        as an {A20 handler}.

        (1996-01-10)

hing

        ({IRC}) Fortuitous typo for "hint", now in wide intentional
        use among players of {initgame}.

        Compare {newsfroup}, {filk}.

        (1994-12-07)

HINT

        Hierarchical Information NeTs.

        A language for the {CDC 3600}.

        ["HINT: A Graph Processing Language", R.D. Hart, Michigan
        State U, Apr 1970].

        (1994-12-07)

HiPAC

        An active DBMS from Xerox Advanced Information Technology.

HIPPI

        {High Performance Parallel Interface}

hirsute

        Occasionally used as a humorous synonym for {hairy}.

HISTORIAN

        A {source code management} system sold by {OPCODE, Inc.}

history

        1. <operating system> A record of previous user inputs (e.g. to
        a {command interpreter}) which can be re-entered without
        re-typing them.  The major improvement of the {C shell} (csh)
        over the {Bourne shell} (sh) was the addition of a command
        history.  This was still inferior to the history mechanism on
        {VMS} which allowed you to recall previous commands as the
        current input line.  You could then edit the command using
        cursor motion, insert and delete.  These sort of history
        editing facilities are available under {tcsh} and {GNU Emacs}.

        2. <history> {The history of computing
        (http://ei.cs.vt.edu/~history/index.html)}.

        3. See {Usenet} newsgroups {news:soc.history} and
        {news:alt.history} for discussion of the history of the world.

        (1995-04-05)

hit

        1. <architecture> {cache hit}.

        2. <World-Wide Web> A request to a {web server} from a {web
        browser} or other {client} (e.g. a {robot}).

        The number of hits on a server may be important for
        determining advertising revenue.

        In the course of loading a single {web page}, a browser may
        hit a web server many times e.g. to retrieve the page itself
        and each {image} on the page.  In contrast, caching by
        browsers and {web proxies} reduces the number of hits on the
        server because some requests are satisfied from the cache.

        (1999-08-04)

Hitachi 6309

        <processor> (HD6309) {Hitachi}'s version of the {Motorola
        6809} {microprocessor}.  Compatible with the 6809, it added
        two new eight-bit {registers} that could be added to form a
        second 16-bit register, and all four eight-bit registers could
        form a 32-bit register.  It also featured division, and some
        32-bit arithmetic and was generally 30% faster in native mode.
        This information, surprisingly, was never published by
        Hitachi.

        {Technical reference
        (http://www.sandelman.ottawa.on.ca/People/Alan_DeKok/interests/6309.tec
href)}.

        (1997-03-21)

Hitachi HD64180

        <processor> A processor family which adds peripherals and an
        {MMU} to the {Zilog Z80}.

        (1995-10-06)

HITL

        {Human Interface Technology Laboratory}

hit rate

        <architecture> The fraction of all memory reads which are
        satisfied from the {cache}.

        (1997-01-21)

hk

        <networking> The {country code} for Hong Kong.

        (1999-01-27)

HL7

        <protocol> An information exchange {protocol} used in
        medicine, and possibly elsewhere.  It is different from
        {DICOM}.

        [Details?]

        (1998-12-23)

HLISP

        "Monocopy and Associative Algorithms in an Extended Lisp",
        E. Goto, U Tokyo May 1974.

HLL

        {high-level language}

HLLAPI

        {High Level Language Application Programming Interface}

hlp

        <filename extension> A {Microsoft Windows} {filename
        extension} for {hypertext} {WinHelp} files.  These are in a
        {proprietary} format, and are compiled from {source files}
        written in a dialect of {RTF}.

        See also {gid}.

        {Usenet} newsgroup:
        {news:comp.os.ms-windows.programmer.winhelp}.

        (1997-01-30)

hm

        <networking> The {country code} for the Heard and McDonald
        Islands.

        (1999-01-27)

HMA

        {High Memory Area}

HMAC

        {Keyed-Hashing Message Authentication}

HMP

        {hybrid multiprocessing}

HMSL

        {Hierarchical Music Specification Language}

HMTL

        <spelling> Do you mean {HTML}?

        (1998-06-30)

hn

        <networking> The {country code} for Honduras.

        (1999-01-27)

Hoare powerdomain

        {powerdomain}

Hobbit

        A {Scheme} to {C} compiler by Tanel Tammet
        <tammet@cs.chalmers.se>.  Hobbit attempts to retain most of
        the original Scheme program structure, making the output C
        program readable and modifiable.  Hobbit is written in Scheme
        and is able to self-compile.  Hobbit release 1 works together
        with the {scm} release scm4b3.  Future releases of scm and
        hobbit will be coordinated.

        Current version: release 2.

        {(ftp://altdorf.ai.mit.edu/archive/scm/hobbit2.tar.Z)}

        (1993/04/25)

        2. The non-{ITS} name of <vad@ai.mit.edu> (*Hobbit*), master of
        lasers.

hobbit

        High order bit.  The most significant bit (of a byte).  Also
        known as the {meta bit} or {high bit}.

hog

        1. Favoured term to describe programs or hardware that seem to
        eat far more than their share of a system's resources,
        especially those which noticeably degrade interactive
        response.  *Not* used of programs that are simply extremely
        large or complex or that are merely painfully slow themselves
        (see {pig, run like a}).  More often than not encountered in
        qualified forms, e.g. "memory hog", "core hog", "hog the
        processor", "hog the disk".  "A controller that never gives up
        the I/O bus gets killed after the bus-hog timer expires."

        2. Also said of *people* who use more than their fair share of
        resources (particularly disk, where it seems that 10% of the
        people use 90% of the disk, no matter how big the disk is or
        how many people use it).  Of course, once disk hogs fill up
        one file system, they typically find some other new one to
        infect, claiming to the sysadmin that they have an important
        new project to complete.

HOL

        Higher Order Logic.  A proof-generating system for {higher
        order logic} based on {LCF}.  Implementations include {HOL-88}
        and {HOL-90}.

        {(ftp://ted.cs.uidaho.edu/pub/hol)}.  Mailing list:
        info-hol@ted.cs.uidaho.edu.

        ["HOL: A Machine Oriented Formulation of Higher Order Logic",
        M.J.C. Gordon, Report 68, Comp Lab U Cambridge (1985)].

        ["Introduction to HOL", M.J.C. Gordon et al, Cambridge U Press
        1993 ISBN 0-521-441897].

HOL-88

        An implementation of {HOL} built on {ML} by Mike Gordon
        <mjcg@cl.cam.ac.uk>.

HOL-90

        An implementation of {HOL} built on {SML/NJ} by Brian Graham
        <graham@cpsc.ucalgary.ca>.  Runs on {Sun-4}.

        {(ftp://fsa.cpsc.ucalgary.ca/pub/hol90.tar.Z)}.  Mailing list:
        info-hol@clover.ucdavis.edu.

hole

        <electronics> The absence of an {electron} in a
        {semiconductor} material.  In the {electron model}, a hole can
        be thought of as an incomplete outer electron shell in a
        doping substance.  Holes can also be thought of as positive
        charge carriers; while this is in a sense a fiction, it is a
        useful abstraction.

        (1995-10-06)

hole model

        <electronics> A {model} of semiconductor behaviour in which
        {donors} contribute a positive charge equal in magnitude to
        the charge of an {electron}, and {acceptors} contribute space
        for such a charge within the crystal lattice.  Honored by
        history well before electrons were discovered and described,
        much of {electronics}, especially at the engineering level,
        continues to consider {current} as flowing from positive to
        negative.

        (1995-10-05)

Hollerithabetical order

        <algorithm> Sorted into the order a standard {Hollerith} {card
        sorting machine} produces, with special characters interleaved
        within the alphabet.

        (1997-02-11)

Hollerith, Herman

        {Herman Hollerith}

Hollywired

        {Siliwood}

HOL-UNITY

        A verification tool for {UNITY}?  Version 2.1.

        E-mail: Flemming Andersen <fa@tfl.dk>?

holy wars

        [{Usenet}, but may predate it] {flame war}s over {religious
        issues}.  The paper by Danny Cohen that popularised the terms
        {big-endian} and {little-endian} was entitled "On Holy Wars
        and a Plea for Peace".  Other perennial Holy Wars have
        included {EMACS} vs. {vi}, my personal computer vs. everyone
        else's personal computer, {ITS} vs. {Unix}, {Unix} vs. {VMS},
        {BSD} Unix vs. {USG Unix}, {C} vs. {Pascal}, {C} vs. FORTRAN,
        etc., ad nauseam.  The characteristic that distinguishes holy
        wars from normal technical disputes is that in a holy wars
        most of the participants spend their time trying to pass off
        personal value choices and cultural attachments as objective
        technical evaluations.  See also {theology}.

home box

        A hacker's personal machine, especially one he or she owns.
        "Yeah?  Well, *my* home box runs a full {4.2BSD}, so there!"

home machine

        1. Synonym {home box}.

        2. The machine that receives your e-mail.  These senses might
        be distinct, for example, for a hacker who owns one computer
        at home, but reads e-mail at work.

home page

        <World-Wide Web> 1. The top-level entry point {web page}
        relating to an individual or institution, or possibly a
        subject area.  This often has a {URL} consisting of just a
        {hostname}, e.g. http://www.ncsa.uiuc.edu/.  All other pages
        on a {web site} are usually accessible by following {links}
        from the home page.

        2. The {web page} a user's {web browser} is configured to load
        each time it is started.  This will typically default to the
        {home page} (sense 1) of the organisation that produced or
        distributed the browser.

        (1999-03-21)

homogeneous

        (Or "homogenous") Of uniform nature, similar in kind.

        1. In the context of {distributed systems}, {middleware} makes
        {heterogeneous} systems appear as a homogeneous entity.  For
        example see: {interoperable network}.

        Constrast {heterogeneous}.

        2. <mathematics> (Of a {polynomial}) containing terms of the
        same degree with respect to all the variables, as in x^2 + 2xy
        + y^2.

        3. <mathematics> (Of a {function}) containing a set of
        variables such that when each is multiplied by a constant,
        this constant can be eliminated without altering the value of
        the function, as in cos x/y + x/y.

        4. <mathematics> (of an equation) containing a homogeneous
        function made equal to 0.

        (1999-05-06)

homogenous

        {homogeneous}

homomorphism

        A map f between groups A and B is a homomorphism of A into B
        if
                f(a1 * a2) = f(a1) * f(a2)  for all a1,a2 in A.

        where the *s are the respective group operations.

Honeywell-800 Business Compiler

        Another name for FACT.  Sammet 1969,
        p.327.

HOOD

        Hierarchical Object Oriented Design: a method for
        Architectural Design primarily for software to be developed in
        Ada, leading to automated checking, documentation and source
        code generation.

HOOK

        ? Object Oriented Kernel.  Delphia.  An object-oriented
        extension of Delphia Prolog.

hook

        <programming> A {software} or {hardware} feature included in
        order to simplify later additions or changes by a user.

        For example, a simple program that prints numbers might always
        print them in base 10, but a more flexible version would let a
        variable determine what base to use; setting the variable to 5
        would make the program print numbers in base 5.  The variable
        is a simple hook.  An even more flexible program might examine
        the variable and treat a value of 16 or less as the base to
        use, but treat any other number as the address of a
        user-supplied routine for printing a number.  This is a
        {hairy} but powerful hook; one can then write a routine to
        print numbers as Roman numerals, say, or as Hebrew characters,
        and plug it into the program through the hook.

        Often the difference between a good program and a superb one
        is that the latter has useful hooks in judiciously chosen
        places.  Both may do the original job about equally well, but
        the one with the hooks is much more flexible for future
        expansion of capabilities.

        {Emacs}, for example, is *all* hooks.

        The term "user exit" is synonymous but much more formal and
        less hackish.

        (1997-06-25)

hop

        1. <messaging> One point-to-point transmission in a series
        required to get a message from point A to point B on a {store
        and forward} network.  On such networks (including {UUCPNET}
        and {FidoNet}), an important inter-machine metric is the hop
        count of the shortest path between them.  This can be more
        significant than their geographical separation.

        Each {exclamation mark} in a {bang path} represents one hop.

        2. <networking> One direct host-to-host connection forming
        part of the route between two hosts in a {routed} {network}
        such as the {Internet}.  Some {protocols} place an upper limit
        on the hop count in order to detect routing loops.

        3. <jargon, networking> To {log in} to a {remote} computer,
        especially via {rlogin} or {telnet}.  "I'll hop over to foovax
        to FTP that."

        (1997-06-25)

Hope

        <language> A {functional programming} language designed by
        R.M. Burstall, D.B. MacQueen and D.T. Sanella at {University
        of Edinburgh} in 1978.  It is a large language supporting
        user-defined {prefix}, {infix} or {distfix} operators.  Hope
        has {polymorphic} typing and allows {overloading} of operators
        which requires explicit type declarations.  Hope has {lazy
        lists} and was the first language to use {call-by-pattern}.

        It has been ported to {Unix}, {Macintosh}, and {IBM PC}.

        See also {Hope+}, {Hope+C}, {Massey Hope}, {Concurrent Massey
        Hope}.

        {(ftp://brolga.cc.uq.oz.au/pub/hope)}.

        [R.M.Burstall, D.B.MacQueen, D.T.Sanella, "HOPE: An
        experimental applicative language", Proc. 1980 Lisp conf.,
        Stanford, CA, p.136-143, Aug 1980].

        ["A HOPE Tutorial", R. Bailey, BYTE Aug 1985, pp.235-258].

        ["Functional Programming with Hope", R. Bailey, Ellis Horwood
        1990].

        (1992-11-27)

Hope+

        <language, functional programming> An extension of {Hope}
        implemented in the Alvey {Flagship} project at {Imperial
        College}.  Hope+ has vectors, real numbers, best fit {pattern
        matching}, lazy data constructors, absolute {set abstractions}
        and {constraints}.  It has a {continuation}-based I/O system
        which posesses {referential transparency} and is capable of
        handling all common I/O tasks such as terminal and file I/O,
        {signal} handling and interprocess communications.  It has
        {modules} and {separate compilation}.

        See also {Hope+C}, {Massey Hope}, {Concurrent Massey Hope}.

        ["Hope+", N. Perry, Imperial College, IC/FPR/LANG/2.5.1/7,
        1988.]

        (1999-08-24)

Hope+C

        <language> A further evolution of {Hope+} with
        {continuation-based I/O}, {coroutines}, and {RFC}s.  Hope+C
        was developed as part of the {Flagship} project at {Imperial
        College}.  It has been implemented for {Sun-3}s with
        {Motorola} {FPU}s.

        See also {Massey Hope}, {Concurrent Massey Hope}.

        E-mail: John Darlington <jd@doc.ic.ac.uk>.

        [What kind of RFCs?]

        (1999-06-23)

Hopfield model

        {Hopfield network}

Hopfield network

        <artificial intelligence> (Or "Hopfield model") A kind of
        {neural network} investigated by John Hopfield in the early
        1980s.  The Hopfield network has no special input or output
        neurons (see {McCulloch-Pitts}), but all are both input and
        output, and all are connected to all others in both directions
        (with equal weights in the two directions).  Input is applied
        simultaneously to all neurons which then output to each other
        and the process continues until a stable state is reached,
        which represents the network output.

        (1997-10-11)

horizontal application

        An {application program} common to different business
        processes, e.g. {office automation}.

        Compare {vertical application}.

        (1994-12-12)

horizontal encoding

        <processor> An {instruction set} where each field (a bit or
        group of bits) in an instruction word controls some
        {functional unit} or {gate} directly, as opposed to {vertical
        encoding} where instruction fields are decoded (by
        {hard-wired} {logic} or {microcode}) to produce the control
        signals.  Horizontal encoding allows all possible combinations
        of control signals (and therefore operations) to be expressed
        as instructions whereas vertical encoding uses a shorter
        instruction word but can only encode those combinations of
        operations built into the decoding logic.

        An {instruction set} may use a mixture of horizontal and
        vertical encoding within each instruction.  Because an
        architecture using horizontal encoding typically requires more
        instruction word bits it is sometimes known as a {very long
        instruction word} (VLIW) architecture.

        (1995-04-23)

horizontal loop combination

        See {tupling}.

horizontal microcode

        <processor> {Microcode} using {horizontal encoding}.

        (1995-04-23)

horizontal scan rate

        <hardware> (HSR) The measure of how many {scan lines} of
        {pixels} a {monitor} can display in one second, expressed in
        kHz (generally somewhere between 20 and 100 kHz).

        The HSR is controlled by the horizontal sync signal generated
        by the {video controller}, but is limited by the speed with
        which the monitor can scan the electron beam horizontally
        across the screen and then return it to the beginning of the
        next line.

        (1996-02-09)

horizontal tabulation

        <character> (tab, Control-I, HT, {ASCII 9}) A character which
        when displayed or printed causes the following character to be
        placed at the next "tabstop" - the column whose number is a
        multiple of the current tab width.  Commonly (especially in
        Unix(?)) the tab width is eight, so, counting from the left
        margin (column zero), the tab stops are at columns 8, 16, 24,
        up to the width of the screen or page.

        A tab width of four or two is often preferred when indenting
        program {source code} to conserve indentation.

        Represented as "\t" in {C}, {Unix}, and derivatives.

        (1999-07-05)

Horn clause

        <logic> (Or "definite clause") A set of {atomic literals} with
        one {positive literal}.  Usually written

                L <- L1, ..., Ln where n>=0.

        If L is false the clause is regarded as a goal.  Horn clauses
        can express a subset of statements of {first order logic}.

        The name "Horn Clause" comes from the logician Alfred Horn,
        who first pointed out the significance of such clauses in
        1951, in the article "On sentences which are true of direct
        unions of algebras", Journal of Symbolic Logic, 16, 14-21.

        (1999-06-29)

hose

        1. To make non-functional or greatly degraded in performance.
        "That big ray-tracing program really hoses the system."  See
        {hosed}.

        2. A narrow channel through which data flows under pressure.
        Generally denotes data paths that represent performance
        bottlenecks.

        3. Cabling, especially {thick Ethernet cable}.  This is
        sometimes called "bit hose" or "hosery" (a play on "hosiery")
        or "etherhose".  See also {washing machine}.

hosed

        Same as {down}.  Used primarily by {Unix} hackers.  Humorous:
        also implies a condition thought to be relatively easy to
        reverse.  Probably derived from the Canadian slang "hoser"
        popularised by the Bob and Doug Mackenzie skits on SCTV, but
        this usage predated SCTV by years in hackerdom (it was
        certainly already live at {CMU} in the 1970s).  See {hose}.
        It is also widely used of people in the mainstream sense of
        "in an extremely unfortunate situation".

        Once upon a time, a {Cray} that had been experiencing periodic
        difficulties crashed, and it was announced to have been hosed.
        It was discovered that the crash was due to the disconnection
        of some coolant hoses.  The problem was corrected, and users
        were then assured that everything was OK because the system
        had been rehosed.  See also {dehose}.

        A correspondant suggests that the term "hosed" could be a
        euphemism for the condition resulting from the application of
        a hose-like bodily appendage.  The term has been used for
        decades in this biological sense (with both literal and
        figurative meanings) by members of motorcycle gangs in the
        USA, and many other coarse terms for sexual congress are
        widely used as synonyms for "non-functional".

        (1998-08-28)

HOS-STPL

        Hospital Operating System - STructured Programming Language.
        A {FORTRAN}-like language with structured extensions.

        ["HOS-STPL User Manual", Health Services Research, US Public
        Health Service (Jan 1975)].

host

        1. <networking> A computer connected to a {network}.

        The term {node} includes devices such as routers and printers
        which would not normally be called "hosts".

        2. <communications> A computer to which one connects using a
        {terminal emulator}.

        (1995-02-16)

host adaptor

        {SCSI adaptor}

Host Command Facility

        <operating system> (HCF) Used to access {IBM S/36} and
        {AS/400} computers from a {mainframe}.

        [What is it?]

        (1999-01-24)

host-host layer

        {transport layer}

hostname

        1. (Or "sitename").  The unique name by which a computer is
        known on a {network}, used to identify it in {electronic
        mail}, {Usenet} {news}, or other forms of electronic
        information interchange.

        On {Internet} the hostname is an {ASCII} string,
        e.g. "foldoc.doc.ic.ac.uk" which, consists of a local part
        (foldoc) and a {domain} name (doc.ic.ac.uk).  The hostname is
        translated into an {Internet address} either via the
        /etc/hosts file, {NIS} or by the {Domain Name System} (DNS) or
        {resolver}.  It is possible for one computer to have several
        hostnames (aliases) though one is designated as its
        {canonical} name.

        It is often possible to guess a hostname for a particular
        institution.  This is useful if you want to know if they
        operate network services like {anonymous FTP}, {World-Wide
        Web} or {finger}.  First try the institution's name or obvious
        abbreviations thereof, with the appropriate {domain} appended,
        e.g. "mit.edu".  If this fails, prepend "ftp." or "www." as
        appropriate, e.g. "www.data-io.com".  You can use the {ping}
        command as a quick way to test whether a hostname is valid.

        The folklore interest of hostnames stems from the creativity
        and humour they often display.  Interpreting a sitename is not
        unlike interpreting a vanity licence plate; one has to
        mentally unpack it, allowing for mono-case and length
        restrictions and the lack of whitespace.  Hacker tradition
        deprecates dull, institutional-sounding names in favour of
        punchy, humorous, and clever coinages (except that it is
        considered appropriate for the official public gateway machine
        of an organisation to bear the organisation's name or
        acronym).  Mythological references, cartoon characters, animal
        names, and allusions to SF or fantasy literature are probably
        the most popular sources for sitenames (in roughly descending
        order).  The obligatory comment is Harris's Lament: "All the
        good ones are taken!"

        See also {network address}.

        2. {Berkeley} {Unix} command to set and get the application
        level name used by the host.

        {Unix manual page}: hostname(1).

        (1995-02-16)

host number

        <networking> The host part of an {Internet address}.  The rest
        is the {network number}.

        (1994-10-27)

Hot Fix

        <storage> {Novell, Inc.}'s term for the feature of their
        network {file server} {operating system}, {Novell NetWare},
        which handles errors in disk write operations.  The OS
        re-reads every block it writes to disk while it holds the data
        to be written in memory.  In the case of an error, the data
        block is written to a spare area on the disk.

        The feature lost much of its importance with the widespread
        use of hard disk drives with built-in {error correction} and
        {bad block} re-mapping.

        (1997-05-27)

HotJava

        <World-Wide Web> A modular, extensible {World-Wide Web}
        {browser} from {Sun Microsystems} that can execute programs
        written in the {Java} programming language.  These programs,
        known as "{applets}", can be included (like images) in {HTML}
        pages.  Because Java programs are compiled into machine
        independent {bytecodes}, applets can run on any {platform} on
        which HotJava runs - currently (December 1995)
        {SPARC}/{Solaris} 2 and {Intel 80x86}/{Windows 95}, {Windows
        NT}.

        {Home (http://java.sun.com/hotjava.html)}

        (1995-12-10)

hotlink

        A mechanism for sharing data between two {application
        program}s where changes to the data made by one application
        appear instantly in the other's copy.

        Under {System 7} on the {Macintosh} the users establishes a
        hotlink by doing a "Create Publisher" on the server and
        "Subscribe" on the client.

        Under {Windows 3} it's "Cut Special"(?) and "Paste Special"
        (as opposed to the normal Cut and Paste).

        (1995-02-16)

hotlist

        <World-Wide Web> (From {hypertext} "{hot spot}") A {document}
        on the {World-Wide Web} or a user's {browser} configuration
        file containing {hypertext} {link}s, often unorganised and
        undocumented, to notable pages on the Web.

        Compare the 19th century notion of a {commonplace book
        (http://c.gp.cs.cmu.edu:5103/prog/webster?commonplace+book)}.

        (1995-04-16)

hot spot

        1. (primarily used by {C}/{Unix} programmers, but spreading)
        It is received wisdom that in most programs, less than 10% of
        the code eats 90% of the execution time; if one were to graph
        instruction visits versus code addresses, one would typically
        see a few huge spikes amidst a lot of low-level noise.  Such
        spikes are called "hot spots" and are good candidates for
        heavy optimisation or {hand-hacking}.  The term is especially
        used of tight loops and recursions in the code's central
        algorithm, as opposed to (say) initial set-up costs or large
        but infrequent I/O operations.

        See {tune}, {bum}, {hand-hacking}.

        2. The active location of a cursor on a bit-map display.  "Put
        the mouse's hot spot on the "ON" widget and click the left
        button."

        3. A screen region that is sensitive to mouse clicks, which
        trigger some action.  {Hypertext} help screens are an example,
        in which a hot spot exists in the vicinity of any word for
        which additional material is available.

        4. In a {massively parallel} computer with {shared memory},
        the one location that all 10,000 processors are trying to read
        or write at once (perhaps because they are all doing a
        {busy-wait} on the same lock).

        5. More generally, any place in a hardware design that turns
        into a performance {bottleneck} due to resource contention.

        (1995-02-16)

Hot Swapable Routing Protocol

        <protocol> (HSRP) A mirrored {router} in passive mode sending
        {hello packets}, waiting for a lead router to die and, without
        dropping a {packet}, take over from that router.

        [Specification?]

        (1997-04-25)

hot swapping

        <hardware> The connection and disconnection of {peripherals}
        or other components without interrupting system operation.
        This facility may have design implications for both hardware
        and software.

        [More detail?]

        (1997-03-15)

HOTT

        (Hot Off The Tree) An {Internet}-based electronic magazine
        edited by David Scott Lewis <d.s.lewis@ieee.org> and
        distributed by {electronic mail}.

        (1994-12-23)

house wizard

        (Probably from ad-agency tradetalk, "house freak") A hacker
        occupying a technical-specialist, R&D, or systems position at
        a commercial shop.  A really effective house wizard can have
        influence out of all proportion to his/her ostensible rank and
        still not have to wear a suit.  Used especially of {Unix}
        {wizard}s.  The term "house guru" is equivalent.

        (1995-02-16)

Houston Automatic Spooling Program

        <operating system> (HASP) A program developed [by ?] in the
        1960s to {SPOOL} output on {OS/MFT} and {OS/MVT}.

        (1999-01-12)

HP

        {Hewlett-Packard}

hp2ps

        Version 1.9c

        interpreter

        Alun Jones <alun@huey.wst.com>

        {(ftp://ftp.wst.com/pub/hp2ps/hp2ps19c.zip)}.
        description: hp2ps is an HP-GL interpreter that is written in
        PostScript.

        It runs on the printer itself.  If there is monetary benefit
        from using hp2ps, it is requested that money be set to Alun
        Jones.  Further, hp2ps may not be distributed as part of a
        commercial offering without prior agreement.

H/PC

        {Hand-held Personal Computer}

HPCC

        {High Performance Computing and Communications}

HPcode

        Stack-based intermediate language used by {HP} in many of its
        compilers for {RISC} and stack-based architectures.  Supports
        {Fortran}, {Ada}, {Pascal}, {COBOL} and {C++}.  Descended from
        Stanford's {U-code}.

HPCode-Plus

        A descendant of {HPcode} with {data type}s, developed to be an
        {ANDF} language.

        ["ANDF: Finally an UNCOL After 30 Years", M.E. Benitez, Jack
        Davidson <jwd@virginia.edu> et al, CS TR-91-05 U Virginia (Mar
        1991)].

        (1995-03-16)

HPF

        {High Performance Fortran}

HPFS

        {High Performance File System}

HP-GL

        {Hewlett-Packard Graphics Language}

HP-GL/2

        "HP-GL/2 Programmer's Guide", No. 5959-9733, HP.  (See PCL.)

HP-IB

        {IEEE 488}

HPL

        Language used in HP9825A/S/T "Desktop Calculators", 1978(?)
        and ported to the early Series 200 family (9826 and 9836,
        68000).  Fairly simple and standard, but with extensive I/O
        support for data acquisition and control (BCD, Serial, 16 bit
        custom and {IEEE 488} interfaces), including interrupt
        handling.  Currently owned by Structured Software Systems.
        "HPL Operating Manual for Series 200, Models 216, 226 and
        235\6", HP 98614-90010, Jan 1984.

HPLOT

        A graphical output facility for {HBOOK}.

        (1995-02-22)

HP-MPE

        {Hewlett Packard Multi Processing Executive}

HP-PA

        {Hewlett Packard Precision Architecture}

HPPI

        {High Performance Parallel Interface}

HPR

        {High Performance Routing}

HP-SUX

        <abuse, operating system> /H-P suhks/ An unflattering
        hackerism for {HP-UX} which features some truly unique
        bogosities in the {file system} internals and elsewhere (these
        occasionally create portability problems).  HP-UX is often
        referred to as "hockey-pux" inside HP, and one respondent
        claims that the proper pronunciation is /H-P ukkkhhhh/ as
        though one were about to spit.  Another such alternate
        spelling and pronunciation is "H-PUX" /H-puhks/.  Hackers at
        HP/Apollo (the former Apollo Computers which was swallowed by
        HP in 1989) have been heard to complain that Mr. Packard
        should have pushed to have his name first, if for no other
        reason than the greater eloquence of the resulting acronym.

        Compare {AIDX}, {buglix}, {Telerat}, {Open DeathTrap},
        {ScumOS}, {sun-stools}.

        (1997-05-12)

HP-UX

        <operating system> The version of {Unix} running on
        {Hewlett-Packard} {workstations}.

        HP-UX conforms to {X/Open}'s Portability Guide Issue 4
        ({XPG4}), Federal Information Processing Specification (FIPS)
        151.1, {POSIX} 1003.1, POSIX 1003.2, {AT&T}'s System V
        Interface Definition 2 ({SVID} 2).  HP-UX incorporates
        selected features from the University of California at
        Berkeley Software Distribution 4.3 ({4.3BSD}).

        It is known by some as "{HP-SUX}".

        [Features?]

        (1997-05-12)

HP VEE

        {Hewlett-Packard Visual Engineering Environment}

hqx

        {binhex}

hr

        <networking> The {country code} for Croatia.

        (1999-01-27)

hs

        {Haskell}

HSB

        {hue, saturation, brightness}

HSC

        {High Speed Connect}

HSCSD

        {High Speed Circuit Switched Data}

        Something related to {GSM}.

        [What is it?]

        (1999-04-19)

HSL-FX

        {Hierarchical Specification Language - Function Extension}

HSRP

        {Hot Swapable Routing Protocol}

HSSI

        {high speed serial interface}

HSV

        {hue, saturation, value}

HT

        {horizontal tabulation}

ht

        <networking> The {country code} for Haiti.

        (1999-01-27)

HTH

        <chat> Hope This Helps.  Often used sarcastically, see {HAND}.

        (1998-03-06)

HTLM

        Do you mean {HTML}?

HTML

        {Hypertext Markup Language}

HTML+

        A proposed new {standard} which will supersede {HTML}.  It is
        a superset of HTML which is designed to extend the
        capabilities of the language to incorporate better support for
        {multimedia} objects in documents.

        (1994-10-27)

HTTL

        Do you mean {HTTP} or {HTML}?

HTTP

        {Hypertext Transfer Protocol}

HTTP/1.0

        {Hypertext Transfer Protocol} version 1.0.

HTTP cookie

        <World-Wide Web> A packet of information sent by an {HTTP
        server} to a {World-Wide Web} {browser} and then sent back by
        the browser each time it accesses that server.  Cookies can
        contain any arbitrary information the server chooses and are
        used to maintain {state} between otherwise stateless {HTTP}
        transactions.  Typically this is used to authenticate or
        identify a registered user of a {web site} without requiring
        them to sign in again every time they access that site.  Other
        uses are, e.g. maintaining a "shopping basket" of goods you
        have selected to purchase during a session at a site, site
        personalisation (presenting different pages to different
        users), tracking a particular user's access to a site.

        {(http://www.illuminatus.com/cookie)}.

        (1997-01-15)

HTTPd

        <World-Wide Web> (Hypertext transfer protocol daemon).

        An {HTTP/1.0}-compatible {server}, written by Rob McCool
        <robm@ncsa.uiuc.edu> of {NCSA}, for making {hypertext} and
        other documents available to {World-Wide Web} {browsers}.

        HTTPd is designed to be small and fast and to work with most
        HTTP/0.9 and HTTP/1.0 {browser}s.  You can customise your
        server to execute searches and handle {HTML} {forms}.  It also
        supports {server side include} files, allowing you to include
        the output of commands or other files in {HTML} documents.

        The current (1994-08-08) version is 1.3.

        {(http://hoohoo.ncsa.uiuc.edu/docs/Overview.html)}

        E-mail: <httpd@ncsa.uiuc.edu>.

        (1995-01-16)

HTTPS

        {HyperText Transmission Protocol, Secure}

HTTP server

        <World-Wide Web> (Or "web server") A {server} process running
        at a {web site} which sends out {web pages} in response to
        {HTTP} requests from remote {browsers}.

        If one site runs more than one server they must use different
        {port numbers}.  Alternatively, several hostnames may be
        mapped to the same computer in which case they are known as
        "{virtual servers}".

        {Apache} and {NCSA} {HTTPd} are two popular web servers.
        There are many others including some for practically every
        {platform}.  Servers differ mostly in the "server-side"
        features they offer such as {server-side include}, and in
        their {authentication} and access control mechanisms.  All
        decent servers support {CGI} and most have some binary {API}
        as well.

        (1997-02-05)

hu

        <networking> The {country code} for Hungary.

        (1999-01-27)

hub

        <networking> (By analogy with the hub of a wheel) A device
        connected to several other devices.

        In {ARCnet}, a hub is used to connect several computers
        together.  In a message handling service, a number of local
        computers might exchange messages solely with a hub computer.
        The hub would be responsible for exchanging messages with
        other hubs and non-local computers.

        (1995-01-16)

Hubnet

        <networking> A 50 Mb/s {optical fibre} {network} developed at
        {Toronto University}.  Network {topology} is a rooted tree
        with a maximum of 65536 hosts with maximum separation of 2 km.
        The {protocol} is multiple access, collision avoidance, echo
        detect and retry.

        [Computer Systems Equipment Design, Jan 85].

        (1994-11-22)

hubs

        {hub}

hue

        <graphics> (Or "tint") The coordinate in the {HSB} {colour
        model} that determines the frequency of light or the position
        in the spectrum or the relative amounts of red, green and
        blue.  Hue corresponds to the common definition of colour,
        e.g. "red", "orange", "violet" etc.  The other coordinates are
        {saturation} and {brightness}.

        (1999-07-05)

hue, saturation, brightness

        <graphics> (HSB) A {colour model} that describes colours in
        terms of {hue}, {saturation}, and {brightness}.

        In the tables below, a hue is a "pure" colour, i.e. one with
        no black or white in it.  A shade is a "dark" colour, i.e. one
        produced by mixing a hue with black.  A tint is a "light"
        colour, i.e. one produced by mixing a hue with white.  A tone
        is a colour produced by mixing a hue with a shade of grey.

        {Microsoft Windows} colour dialogs, {PagePlus}, and {Paint
        Shop Pro} use {HSB} but call the third dimension "luminosity"
        or "lightness".  It ranges from 0% (black) to 100% (white).  A
        pure hue is 50% luminosity, 100% saturation.

         Colour type   S      L
         Black        Any     0%
         White        Any    100%
         Grey          0%    1-99%
         Hue          100%    50%
         Shade        100%   1-49%
         Tint         100%  51-99%
         Tone         1-99%  1-99%

        {Quattro Pro}, {CorelDraw}, and {PhotoShop} use a variant
        (Quattro Pro calls the third parameter "brightness") in which
        a brightness of 100% can produce white, a pure hue, or
        anything in between, depending on the saturation.

         Colour type   S      B
         Black        Any     0%
         White         0%    100%
         Grey          0%    1-99%
         Hue          100%   100%
         Shade        100%   1-99%
         Tint         1-99%  100%
         Tone         1-99%  1-99%

        [Same as {HSV}?]

        (1999-07-05)

hue, saturation, value

        <graphics> (HSV) A {colour model} that describes colours in
        terms of {hue} (or "tint"), {saturation} (or "shade") and
        {value} (or "tone" or "luminance").

        [Same as {HSB}?]

        (1999-07-05)

huff

        To compress data using a {Huffman} code.  Various programs
        that use such methods have been called "HUFF" or some variant
        thereof.

        Opposite: {puff}.  Compare {crunch}, {compress}.

        (1994-12-23)

Huffman coding

        <algorithm> A {data compression} technique which varies the
        length of the encoded symbol in proportion to its information
        content, that is the more often a symbol or token is used, the
        shorter the binary string used to represent it in the
        compressed stream.  Huffman codes can be properly decoded
        because they obey the prefix property, which means that no
        code can be a prefix of another code, and so the complete set
        of codes can be represented as a binary tree, known as a
        Huffman tree.  Huffman coding was first described in a seminal
        paper by D.A. Huffman in 1952.

        (1994-12-23)

HUGO

        A {bytecode}-interpreted {transaction handler} from {Geac}.

        (1994-12-23)

HUGS

        {Haskell User's Gofer System}

Human-Computer Interaction

        <software, hardware> (HCI) The study of how humans interact
        with computers, and how to design computer systems that are
        easy, quick and productive for humans to use.

        See also {Human-Computer Interface}.

        {HCI Sites (http://www.acm.org/sigchi/hci-sites/)}.

        (1999-05-09)

Human-Computer Interface

        <software, hardware> (HCI) Any {software} or {hardware} that
        allows a user to interact with a computer.  Examples are
        {WIMP}, {command line interpreter}, or {virtual reality}.

        See also {Human-Computer Interaction}.

        (1999-05-09)

Human Interface Technology Laboratory

        (HITL) The Human Interface Technology Laboratory at the
        {University of Washington} was founded in 1990.  It is a
        centre for research and development of advanced interface
        technology.  Located on the university campus, HITL forms a
        bridge between academia and industry.  It maintains its
        industrial focus via the Virtual Worlds Consortium and
        maintains contacts with academia by training students and
        teaching courses.  The lab has access to faculty and students
        throughout the State of Washington.

        Address: Human Interface Technology Laboratory, University of
        Washington, Seattle, USA.

        (1995-02-13)

humma

        <chat> A filler word used on various "chat" and "talk"
        programs when you had nothing to say but felt that it was
        important to say something.

        The word apparently originated (at least with this definition)
        on the MECC Timeshare System (MTS, a now-defunct educational
        {time-sharing} system running in Minnesota during the 1970s
        and the early 1980s) but was later sighted on early Unix
        systems.

        (1999-02-27)

humor

        {hacker humour}

humour

        {hacker humour}

hung

        ["hung up"] Equivalent to {wedged}, but more common at Unix/C
        sites.  Not generally used of people.  Synonym with {locked
        up}, {wedged}; compare {hosed}.  See also {hang}.  A hung
        state is distinguished from {crash}ed or {down}, where the
        program or system is also unusable but because it is not
        running rather than because it is waiting for something.
        However, the recovery from both situations is often the same.

Hungarian Notation

        <language, convention> A linguistic convention requiring one
        or more letters to be added to the front of {variable} names
        to denote {scope} and/or {type}.

        Hungarian Notation is mainly confined to {Microsoft Windows}
        programming environments, such as Microsoft {C}, {C++} and
        {Visual Basic}.

        It was originally devised by {Charles Simonyi}, a Hungarian,
        who was a senior programmer at {Microsoft} for many years.  He
        disliked the way that names in C programs could stand for any
        kind of variable.  This was for ever leading to mistakes, as
        programmers tried to manipulate variables in ways that their
        type prohibited, which they would never had done if they
        remembered what sort they were.

        According to legend, fellow programmers at Microsoft looked at
        the convoluted, vowel-less variable names produced by his
        scheme and, like everyone else who has come into contact with
        them since, said something like "This might as well be in
        Greek - or even Hungarian!". They almost certainly had in mind
        as well another kind of {mathematical} system called "Polish
        notation" (a variant form called {reverse Polish notation} is
        commonly used in {calculators}, which leads to expressions
        without brackets or punctuation which are easier to enter).
        They put the two together and made up the name "Hungarian
        notation".

        Hungarian Notation is not really necessary when using a modern
        {strongly-typed language} as the {compiler} warns the
        programmer if a variable of one type is used as if it were
        another type.  It is less useful in {object-oriented
        programming} languages such as {C++}, where many variables are
        going to be instances of {classes} [Why?].

        In addition, variable names are essentially only {comments},
        and thus are just as susceptible to becoming out of date and
        incorrect as any other comment.  For example, if a {signed}
        {short} {int} becomes an unsigned {long} int, the variable
        name, and every use of it throughout the program, should be
        changed to reflect its new type.

        If used appropriately however, it does enforce a certain
        consistency, especially when scoping is taken into account
        as well as type (for example g_ for global variables,
        m_ for members, c_ for static members, l_ for local, etc.).

        {Simonyi's original monograph
        (http://www.strangecreations.com/library/c/naming.txt)}.

        {Microsoft VB Naming Conventions
        (http://support.microsoft.com/support/kb/articles/Q110/2/64.asp)}.

        (1999-06-03)

Hungry Programmers

        <body> A group of programmers producing {free software}.

        {Home (http://www.hungry.com/)}

        (1995-03-20)

hungry puppy

        Synonym {slopsucker}.

Hungry ViewKit

        <operating system, library> A {C++} {class} library for
        developing {Motif} {application program}s (although this
        restriction will be lifted once {LessTif} is finished).  It
        follows the {API} of the {Iris}(tm) {ViewKit}, put out by
        {SGI}.  The Hungry ViewKit is a superset of the Iris ViewKit,
        so any code developed for the Iris version will work with the
        Hungry version, but possibly not vice versa.

        {Home (http://www.hungry.com/products/viewkit/)}

        (1995-03-20)

hungus

        <jargon> /huhng'g*s/ (Perhaps related to slang "humongous")
        Large, unwieldy, usually unmanageable.  E.g. "{TCP} is a
        hungus piece of code."

        (1999-01-26)

Hunt the Wumpus

        <games, history> (Or "Wumpus") /huhnt th* wuhm'p*s/ A famous
        family of computer games, dating back at least to 1972
        (several years before {ADVENT}) on the {Dartmouth Time-Sharing
        System}.

        Hunt the Wumpus was created by {Ken Thompson} on an early
        version of {Unix}.  It was created from a game in a children's
        magazine, and was made to give his young son something to do
        on the computer.

        The wumpus lived somewhere in a cave with the topology of an
        dodecahedron's edge/vertex graph (later versions supported
        other topologies, including an icosahedron and M"obius
        strip). The player started somewhere at random in the cave
        with five "crooked arrows"; these could be shot through up to
        three connected rooms, and would kill the wumpus on a hit
        (later versions introduced the wounded wumpus, which got very
        angry).  Unfortunately for players, the movement necessary to
        map the maze was made hazardous not merely by the wumpus
        (which would eat you if you stepped on him) but also by
        bottomless pits and colonies of super bats that would pick you
        up and drop you at a random location (later versions added
        "anaerobic termites" that ate arrows, bat migrations and
        earthquakes that randomly changed pit locations).

        This game appears to have been the first to use a non-random
        graph-structured map (as opposed to a rectangular grid like
        the even older Star Trek games).  In this respect, as in the
        dungeon-like setting and its terse, amusing messages, it
        prefigured {ADVENT} and {Zork} and was directly ancestral to
        both (Zork acknowledged this heritage by including a super-bat
        colony).  A port was distributed with {SunOS} and as
        {freeware} for the {Macintosh}.  There is a freeware {C}
        emulation of the original {Basic} game.

        (1999-02-15)

Hurd

        The Hurd will be the foundation of the whole {GNU} system.  It
        is built on top of the {Mach} 3.0 {kernel}, a free
        {message-passing} kernel developed by {CMU}.  Mach's {virtual
        memory} management and message-passing facilities are
        extensively used by the Hurd.  The GNU C Library will provide
        the {Unix} {system call} interface, and will call the Hurd for
        needed services it can't provide itself.

        One goal of the Hurd is to establish a framework for shared
        development and maintenance.  The Hurd is like GNU {Emacs} in
        that it will allow a broad range of users to create and share
        useful projects without knowing much about the internal
        workings of the system -- projects that might never have been
        attempted without freely available source, a well-designed
        interface, and a multi-server-based design.

        Currently there are free ports of the {Mach} {kernel} to the
        {Intel 80386} {IBM PC}, the {DEC} {PMAX} {workstation}, the
        {Luna} {88k} and several other machines, with more in
        progress, including the {Amiga} and {DEC} {Alpha}-3000
        machines.  Contact <mach@cs.cmu.edu>, if you want to help with
        one of these or start your own.  Porting the GNU Hurd and GNU
        C Library is easy (easier than porting GNU Emacs, certainly
        easier than porting GCC) once a {Mach} port to a particular
        {platform} exists.

        [June 1994 GNU's Bulletin].

        (1994-12-07)

HVD

        {High Voltage Differential}

Hybrid

        A {concurrent} {object-oriented} language.

        ["Active Objects in Hybrid", O.M. Nierstrasz, SIGPLAN Notices
        22(12):243-253 (OOPSLA '87) (Dec 1987)].

        (1994-12-07)

hybrid multiprocessing

        <parallel> (HMP) The kind of {multitasking} which {OS/2}
        supports.  HMP provides some elements of {symmetric
        multiprocessing}, using add-on {IBM} software called MP/2.
        OS/2 SMP was planned for release in late 1993.

        (1995-03-19)

hybrid testing

        <testing> A combination of {top-down testing} with {bottom-up
        testing} of prioritised or available components.

        (1996-05-22)

hydrofluorocarbon

        <hardware> (HFC) A suggested replacement for the
        chlorofluorocarbon (CFC) coolant gas used in chillers and air
        conditioners.

        (1996-11-05)

HyperBase

        <database> An experimental active multi-user {database} for
        {hypertext} systems from the {University of Aalborg}, written
        in {C++}.  It is built on the {client-server} model enabling
        distributed, {concurrent}, and shared access from
        {workstation}s in a {local area network}.

        See also {EHTS}.

        (1995-03-19)

Hyper-C

        A {data parallel} extension of {C} from HyperParallel Tech,
        France, for {PVM}, {CM} and {Maspar}.  It is available from
        Fortunel Systems <fortunel@vnet.net>, +1 (919) 319 1624.

        E-mail: <hyperc-support@hyperparallel.polytechnique.fr>.

        (1994-11-17)

HyperCard

        A software package by Bill Atkinson for storage and retrieval
        of information on the {Macintosh}.  It can handle {image}s and
        is designed for {browsing}.  The powerful customisable
        interactive {user interface} allows new {application}s to be
        easily constructed by manipulating objects on the screen,
        often without conventional programming, though the language
        {HyperTalk} can be used for more complex tasks.

        {Usenet} newsgroup: {news:comp.sys.mac.hypercard}.

        ["Apple Macintosh HyperCard User Guide", Apple Computer 1987].

        (1995-02-10)

hypercube

        A cube of more than three dimensions.  A single (2^0 = 1)
        point (or "node") can be considered as a zero dimensional
        cube, two (2^1) nodes joined by a line (or "edge") are a one
        dimensional cube, four (2^2) nodes arranged in a square are a
        two dimensional cube and eight (2^3) nodes are an ordinary
        three dimensional cube.  Continuing this geometric
        progression, the first hypercube has 2^4 = 16 nodes and is a
        four dimensional shape (a "four-cube") and an N dimensional
        cube has 2^N nodes (an "N-cube").  To make an N+1 dimensional
        cube, take two N dimensional cubes and join each node on one
        cube to the corresponding node on the other.  A four-cube can
        be visualised as a three-cube with a smaller three-cube
        centred inside it with edges radiating diagonally out (in the
        fourth dimension) from each node on the inner cube to the
        corresponding node on the outer cube.

        Each node in an N dimensional cube is directly connected to N
        other nodes.  We can identify each node by a set of N
        {Cartesian coordinates} where each coordinate is either zero
        or one.  Two node will be directly connected if they differ in
        only one coordinate.

        The simple, regular geometrical structure and the close
        relationship between the coordinate system and binary numbers
        make the hypercube an appropriate topology for a parallel
        computer interconnection network.  The fact that the number of
        directly connected, "nearest neighbour", nodes increases with
        the total size of the network is also highly desirable for a
        {parallel computer}.

        (1994-11-17)

Hyperion

        <computer> An {MS-DOS} {personal computer} that was
        manufactured in Kanata (near Ottawa, Ontario, Canada) in the
        mid-1980s.  It received considerable government subsidies and,
        while it was considered well-designed and manufactured and a
        real threat to the {Compaq Portable}, the Ottawa firm that
        designed it was unable to beat {Compaq}.

        (1997-07-21)

hyperlink

        <hypertext> A reference (link) from some point in one
        {hypertext} document to (some point in) another document or
        another place in the same document.  A {browser} usually
        displays a hyperlink in some distinguishing way, e.g. in a
        different colour, font or style.  When the user activates the
        link (e.g. by clicking on it with the {mouse}) the {browser}
        will display the target of the link.

        (1995-02-10)

Hyper-Man

        A {browser} available with {Epoch} giving {hypertext} access
        to the {Unix} manual.

hypermedia

        An extension of {hypertext} to include graphics, sound, video
        and other kinds of data.  See also {hypertext markup
        language}, {World-Wide Web}.

HyperNeWS

        A Hypertext system from the Turing Institute Glasgow, based on
        {NeWS}.

Hyperscript

        Informix.  The object-based programming language for Wingz,
        used for creating charts, graphs, graphics, and customised
        data entry.

hyperspace

        /hi:'per-spays/ A memory location that is *far* away from
        where the {program counter} should be pointing, often
        inaccessible because it is not even mapped in.  (Compare {jump
        off into never-never land}.)

        This usage is from the SF notion of a spaceship jumping "into
        hyperspace", that is, taking a shortcut through
        higher-dimensional space - in other words, bypassing this
        universe.  The variant "east hyperspace" is recorded among
        {CMU} and {Bliss} hackers.

        (1994-11-23)

HyperSPARC

        <processor> The successor to the {SuperSPARC} processor, based
        on the {SPARC} {ISA}.  The HyperSPARC has smaller {caches}
        than the {SuperSPARC}: 8kb on-chip and 256kb off-chip
        (compared with 36kb and 1Mb).  The HyperSPARC's {memory
        management} is optimised for more efficient out-of-cache
        addressing which means quicker access to external (slower,
        cheaper) memory.

        (1994-11-23)

Hyperstrict

        A function which is hyperstrict in some argument will fully
        evaluate that argument.  To fully evaluate an object, evaluate
        it to WHNF and if it is a constructed data object (e.g. a list
        or tuple) then fully evaluate every component and so on
        recursively.  Thus a hyperstrict function will fail to
        terminate if its argument or any component or sub-component of
        its argument fails to terminate (i.e. if its argument is not
        "total").

HyperTalk

        A verbose semicompiled language by Bill Atkinson and Dan
        Winkler, with loose {syntax} and high readability.

        HyperTalk uses {HyperCard} as an object management system,
        development environment and interface builder.  Programs are
        organised into "stacks" of "cards", each of which may have
        "buttons" and "fields".  All data storage is in
        zero-terminated strings in fields, local, or global variables;
        all data references are through "chunk expressions" of the
        form:

                'last item of background field
                "Name List" of card ID 34217'.

        Flow of control is {event-driven} and uses message-passing
        among scripts that are attached to stack, background, card,
        field and button objects.

        {Apple Computer} has taken back distribution and maintenance of
        HyperCard from {Claris} Corporation

        ["HyperTalk Language Reference Manual", A-W 1988].

        (1994-11-17)

hypertext

        <hypertext> A term coined by Ted Nelson around 1965 for a
        collection of documents (or "nodes") containing
        cross-references or "links" which, with the aid of an
        interactive {browser} program, allow the reader to move easily
        from one document to another.  See also {hypermedia}.

        (1996-05-31)

Hypertext Markup Language

        <hypertext, World-Wide Web> (HTML) A {Hypertext} document
        format used on the {World-Wide Web}.  Built on top of {SGML}.
        "Tags" are embedded in the text.  A tag consists of a "<", a
        "directive" (case insensitive), zero or more parameters and a
        ">".  Matched pairs of directives, like "<TITLE>" and
        "</TITLE>" are used to delimit text which is to appear in a
        special place or style.

        Links to other documents are in the form

         <A HREF="http://machine.edu/subdir/file.html">foo</A>

        where "A", "/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.:

         <A NAME="baz">

        The "fragment identifier", "baz", can be used in an HREF by
        appending "#baz" to the document name.

        Other common tags include <P> for a new paragraph, <B>..</B>
        for bold text, <UL> for an unnumbered list, <PRE> for
        preformated text, <H1>, <H2> .. <H6> for headings.

        {HTML} supports some standard {SGML} {national characters} and
        other non-{ASCII} characters through special {escape
        sequences}, e.g. "&eacute;" for a lower case 'e' with an acute
        accent.  You can sometimes get away without the terminating
        semicolon but it's bad style.

        The {World-Wide Web Consortium} is the standards body for
        HTML.

        See also {HTML+}, {weblint}.

        {HTML 3.0 draft specification
        (http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html)}.

        {One of the definition documents
        (http://www.ucc.ie/info/net/htmldoc.html)}.

        {Character escape sequences
        (http://www.w3.org/hypertext/WWW/MarkUp/ISOlat1.html)}.

        (1997-12-07)

Hypertext Transfer Protocol

        <protocol> (HTTP) The {client-server} {TCP/IP} {protocol} used
        on the {World-Wide Web} for the exchange of {HTML} documents.
        It conventionally uses {port} 80.

        Current version (May 1997): HTTP 1.1, defined in {RFC 2068}.

        See also {Uniform Resource Locator}.

        (1994-10-27)

HyperText Transmission Protocol, Secure

        <protocol> (HTTPS) A variant of {HTTP} used by {Netscape} for
        handling secure transactions.

        The {Netscape Navigator} supports a {URL} {access method},
        "https", for connecting to {HTTP} {server}s using {SSL}.

        "https" is a unique protocol that is simply {SSL} underneath
        {HTTP}.  You need to use "https://" for HTTP {URL}s with
        {SSL}, whereas you continue to use "http://" for HTTP URLs
        without SSL.  The default "https" {port} number is 443, as
        assigned by the {Internet Assigned Numbers Authority}.

        {(http://www.netscape.com/info/security-doc.html)}

        (1995-01-16)

hysterical reasons

        (Or "hysterical raisins") A variant on the stock phrase "for
        historical reasons", indicating specifically that something
        must be done in some stupid way for backwards compatibility,
        and moreover that the feature it must be compatible with was
        the result of a bad design in the first place.  "All IBM PC
        video adaptors have to support MDA text mode for hysterical
        reasons."  Compare {bug-for-bug compatible}.

Hytelnet

        <networking> A {hypertext} database of publicly accessible
        {Internet} sites created and maintained by Peter Scott
        <scottp@moondog.usask.ca>.  Hytelnet currently lists over 1400
        sites, including Libraries, Campus-Wide Information Systems,
        {Gopher}, {WAIS}, {WWW} and {Freenets}.

        Hytelnet software is available for the {IBM PC}, {Macintosh},
        {Unix} and {VMS} systems.

        {(ftp://ftp.usask.ca/pub/hytelnet)} (128.233.3.11).  {Telnet
        (telnet://access.usask.ca/)}, login: hytelnet.

        Mailing list: listserv@library.berkeley.edu (no subject, body:
        subscribe hytelnet FirstName LastName).

        (1995-10-18)

HyTime

        Hypermedia/Time-based Structuring Language: an emerging
        ANSI/ISO Standard from the {SGML} Users' Group's Special
        Interest Group on Hypertext and Multimedia (SIGhyper).  A
        hypermedia extension of {SGML}.

        ["The HyTime Hypermedia/Time-based Document Structuring
        Language", S. Newcomb et al, CACM 34(11):67-83 (Nov 1991)].

i18n

        {internationalisation}

I2O

        {Intelligent Input/Output}

i386

        {Intel 80386}

i486

        {Intel 486}

i487

        {Intel 487SX}

i860

        <processor> A 32/64-bit {superscalar} {RISC} {microprocessor}
        from {Intel}, released in 1989.  Originally codenamed "N10".
        It has a 32-bit integer {ALU} and a 64-bit {floating-point
        unit}.  It has a 64-bit {data bus} with an initialisation mode
        which only uses eight bits of the data bus to allow the use of
        a small {boot ROM}.  It has a 32-bit wide {instruction cache}
        and a separate 64-bit wide {data cache}.  It uses {register
        scoreboarding} and {register bypassing}.  The {clock rate} is
        33 MHz with a clock-doubled version available.

        (1998-03-28)

IA

        {Information Appliance}

IAB

        {Internet Architecture Board}

IAD

        A dynamic analyser from {IBM} giving information on run-time
        performance and code use.

IAL

        {ALGOL 58}

IAM

        Interactive Algebraic Manipulation.  Interactive {symbolic
        mathematics} for {PDP-10}.

        ["IAM, A System for Interactive Algebraic Manipulation", C.
        Christensen et al, Proc Second Symp Symb Alg Manip, ACM Mar
        1971].

IANA

        {Internet Assigned Numbers Authority}

IANAL

        <chat> I Am Not A Lawyer (but my legal opinion is...).

        (1998-07-28)

IAP

        {Internet Access Provider}

I-APL

        A version of {APL}.
        {(ftp://watserv1.waterloo.edu/languages/apl/)}.

        (1992-07-06)

IAR

        Instruction Address Register.

        The {IBM} name for {program counter}.

        (1995-03-21)

IAS

        <computer> The first modern computer.  It had main
        {registers}, processing circuits, information paths within the
        {central processing unit} and used {Von Neumann}'s
        {fetch-execute cycle}.

        The IAS machine's basic unit of information was a 40 bit
        {word} and the memory had 4096 words.  A word stored in memory
        could represent either an instruction or data.  Each IAS
        instruction was twenty bits long, so that two instructions
        could be stored in each 40-bit memory location.  Each
        instruction consisted of an 8-bit {operation code} and a
        12-bit address that could identify any of 2^12 locations that
        may be used to store an {operand} of the instruction.

        The {CPU} consisted of a data processing unit and a program
        control unit.  It contained various processing and control
        circuits along with a set of high-speed {registers} for the
        temporary storage of instructions, memory addresses and data.

        The main actions specified by instructions were performed by
        the arithmetic-logic circuits of the data processing unit.  An
        electronic clock circuit was used to generate the signals
        needed to synchronise the operation of the different parts of
        the system.

        (1996-11-24)

IAW

        inactive window.

        Used in {talk} systems to mean that that person will not be
        taking part in the conversation for a while.  The sadly
        mispelled alternative, "unactive window" (UAW) has also been
        reported.

        (1994-12-05)

IBEX

        The command language for {Honeywell}'s {CP-6} {operating
        system}.

        (1994-12-06)

IBM

        {International Business Machines}

IBM 1403

        <printer> A printer used with the {IBM 360} {mainframe}, a
        successor to the 1401.

        (1999-01-11)

IBM 1620

        <computer> A computer built by {IBM} and released in late
        1959.  The 1620 cost from around $85,000(?) up to hundreds of
        thousands of dollars(?) according to the configuration.  It
        was billed as a "small scientific computer" to distinguish it
        from the business-oriented {IBM 1401}.  It was regarded as
        inexpensive, and many schools started out with one.

        It was either developed for the US Navy to teach computing, or
        as a replacement for the very successful {IBM 650} which did
        quite well in the low end scientific market.  Rumour has it
        that the Navy called this computer the CADET - Can't Add,
        Doesn't Even Try.

        The {ALU} used lookup tables to add, subtract and multiply but
        it could do address increments and the like without the
        tables.  You could change the number base by adjusting the
        tables, which were input during the boot sequence from
        {Hollerith} cards.  The divide instruction required additional
        hardware, as did {floating point} operations.

        The basic machine had 20,000 decimal digits of {ferrite core
        memory} arranged as a 100 by 100 array of 12-bit locations,
        each holding two digits.  Each digit was stored as four
        numeric bits, one flag bit and one parity bit.  The numeric
        bits stored a decimal digit (values above nine were illegal).

        Memory was logically divided into fields.  On the high-order
        digit of a field the flag bit indicated the end of the field.
        On the low-order digit it indicated a negative number.  A flag
        bit on the low order of the address indicated {indirect
        addressing} if you had that option installed.  A few "illegal"
        bit combinations were used to store things like record marks
        and "numeric blanks".

        On a {subroutine} call it stored the {return address} in the
        five digits just before the entry point to the routine, so you
        had to build your own {stack} to do {recursion}.

        The enclosure was grey, and the core was about four or five
        inches across.  The core memory was kept cool inside a
        temperature-controlled box.  The machine took a few minutes to
        warm up after power on before you could use it.  If it got too
        hot there was a thermal cut-out switch that would shut it
        down.

        Memory could be expanded up to 100,000 digits in a second
        cabinet.  The cheapest package used {paper tape} for I/O.  You
        could also get {punched cards} and later models could be
        hooked up to a 1311 {disk drive} (a two-{megabyte} {washing
        machine}), a 1627 {plotter}, and a 1443 {line printer}.

        Because the 1620 was popular with colleges, IBM ran a clearing
        house of software for a nominal cost such as {Snobol},
        {COBOL}, chess games, etc.

        The model II, released about three years later, could add and
        subtract without tables.  The {clock period} decreased from 20
        to 10 microseconds, instruction fetch sped up by a few cycles
        and it added {index registers} of some sort.  Some of the
        model I's options were standard on the model II, like
        {indirect addressing} and the {console} {teletype} changed
        from a model C to a {Selectric}.  Later still, IBM marketed
        the {IBM 1710}.

        A favorite use was to tune a FM radio to pick up the
        "interference" from the lights on the console.  With the right
        delay loops you could generate musical notes.  Hackers wrote
        {interpreters} that played music from notation like "C44".

        1620 consoles were used as props to represent {Colossus} in
        the film "The Forbin Project", though most of the machines had
        been scrapped by the time the film was made.

        {A fully configured 1620
        (http://uranus.ee.auth.gr/TMTh/exhibit.htm)}.

        {IBM 1620 console picture
        (http://foldoc.doc.ic.ac.uk/pub/IBM1620-console.jpg)}.

        ["Basic Programming Concepts and the IBM 1620 Computer",
        Leeson and Dimitry, Holt, Rinehart and Winston, 1962].

        (1997-08-05)

IBM 1710

        <computer> An {IBM 1620} with additional features useful for
        industrial process control: {A/D convertors}, {D/A
        convertors}, general-purpose I/O lines, and {interrupts}.

        [Date?]

        (1997-07-20)

IBM 2741

        {golf ball printer}

IBM 3270

        A class of {terminal}s known as Display Devices, normally used
        to talk to {IBM} {mainframe}s.  The 3270 attempts to minimise
        the number of I/O interrupts required by accepting large
        blocks of data, known as datastreams, in which both text and
        control (or formatting functions) are interspersed allowing an
        entire screen to be "painted" as a single output operation.
        The concept of "formatting" in these devices allows the screen
        to be divided into clusters of contiguous character cells for
        which numerous attributes (color, highlighting, character set,
        protection from modification) can be set.  Further, using a
        technique known as 'Read Modified' the changes from any number
        of formatted fields that have been modified can be read as a
        single input without transferring any other data, another
        technique to enhance the terminal throughput of the CPU.

        The 3270 had twelve, and later twenty-four, special Programmed
        Function Keys, or PF keys.  When one of these keys was
        pressed, it would cause the device to generate an I/O
        {interrupt} and present a special code identifying which key
        was pressed.  {Application program} functions such as
        termination, page-up, page-down or help could be invoked by a
        single key-push, thereby reducing the load on very busy
        processors.

        A version of the {IBM PC} called the "3270 PC" was released in
        October 1983.  It included 3270 {terminal emulation}.

        {tn3270} is modified version of {Telnet} which acts as a 3270
        {terminal emulator} and can be used to connect to an IBM
        computer over a network.

        See also {broken arrow}.

        (1995-02-07)

IBM 360

        <computer> The generic name for the {CPU}s and architecture
        released by {IBM} in 1964.  The 360 was marketed as a general
        purpose computer with 'all round' functionality - hence 360
        (degrees).

        Models ranged from the 360/20 to the 360/65 and later the
        360/95, with typical memory configurations from 16K to 1024K.

        Elements of the architecture, such as the basic {instruction
        set} are still in use on IBM {mainframes} today.  Associated
        {operating systems} included {DOS}, {OS/MFT} and {OS/MVT}.

        The 360 architecture was based on an 8-bit {byte}, 16 general
        purpose {registers}, 24-bit addressing, and a PSW (Program
        Status Word) including a location counter.

        {Gene Amdahl}, then an IBM employee, is generally acknowledged
        as the 360's chief architect.  He later went on to found
        {Amdahl Corporaton}, a manufacture of {PCM} {mainframe}
        equipment.

        The 360's predecessors were the smaller {IBM 1401} and the
        large {IBM 7090} series.

        See also {ABEND}, {ALC}, {BAL}, {Big Red Switch}, {HCF}, {mode
        bit}, {PL360}, {PL/S}.

        (1999-01-24)

IBM 650

        <computer> A computer, produced ca. 1955 and in use in the
        late 1950s, with rotating {magnetic drum} storage and {punched
        card} input.  Its memory words could store 10-digit decimal
        numbers and each instruction had two addresses, one for the
        {operand} and one for address of the next instruction on the
        drum.

        {SOAP} was its (optimising) {assembler}.  Languages used on it
        included {BACAIC}, {BALITAC}, {BELL}, {CASE SOAP III}, {DRUCO
        I}, {EASE II}, {ELI}, {ESCAPE}, {FAST}, {FLAIR}, {FORTRANSIT},
        {FORTRUNCIBLE}, {GAT}, {IPL}, {Internal Translator}, {KISS},
        {MITILAC}, {MYSTIC}, {OMNICODE}, {PIT}, {RELATIVE},
        {RUNCIBLE}, {SIR}, {SOAP}, {Speedcoding}, {SPIT}, {SPUR}.

        [More details?]

        (1995-03-30)

IBM 704

        <computer> A large, general-purpose computer made by {IBM} and
        used by the largest commercial, government and educational
        institutions.

        The IBM 704 had 36-bit memory words, 15-bit addresses and
        instructions with one address.  A few {index register}
        instructions had the infamous 15-bit decrement field in
        addition to the 15-bit address.

        The 704, and {IBM 709} which had the same basic architecture,
        represented a substantial step forward from the {IBM 650}'s
        {magnetic drum} storage as they provided random access at
        electronic speed to {core storage}, typically 32k words of 36
        bits each.

        [Or did the 704 actually come *before* the 650?]

        A typical 700 series installation would be in a specially
        built room of perhaps 1000 to 2000 square feet, with a floor
        raised to permit interconnecting cables underneath.
        Substantial air conditioning was required to remove the heat.
        Along one or two walls would be line(s) of {magnetic tape}
        transports, each about 3 x 3 x 6 feet.  Depending on the
        installation, there might be 4 to 8 transports on each of one
        or two "channels."  The 1/2 inch tape had seven tracks and
        moved at 150 inches per second, giving a read/write speed of
        15,000 six bit characters (plus parity) per second.

        In the centre would be the operator's {console} consisting of
        cabinets and tables for storage of tapes and boxes of cards;
        and a {card reader}, a {card punch}, and a {line printer},
        each perhaps 4 x 4 x 5 feet in dimension.  Small {jobs} could
        be entered via {punched cards} at the console, but as a rule
        the user jobs were transferred from cards to {magnetic tape}
        by {off-line} equipment and only control information was
        entered at the console (see {SPOOL}).  Before each job, the
        {operating system} was loaded from a read-only system tape
        (because the system in {core} could have been corrupted by the
        previous user), and then the user's program, in the form of
        card images on the input tape, would be run.  Program output
        would be written to another tape (typically on another
        channel) for printing off-line.

        Well run installations would transfer the user's cards to
        tape, run the job, and print the output tape with a turnaround
        time of one to four hours.

        The processing unit typically occupied a position symmetric
        but opposite the operator's console.  Physically the largest
        of the units, it included a glass enclosure a few feet in
        dimension in which could be seen the "core" about one foot on
        each side.  The 36-bit word could hold two 18-bit addresses
        called the "Contents of the Address Register" ({CAR}) and the
        "Contents of the Decrement Register" ({CDR}).

        On the opposite side of the floor from the tape drives and
        operator's console would be a desk and bookshelves for the
        ever-present (24 hours a day) "field engineer" dressed in, you
        guessed it, a grey flannel suit and tie.  The maintenance of
        the many thousands of {vacuum tubes}, each with limited
        lifetime, and the cleaning, lubrication, and adjustment of
        mechanical equipment, was augmented by a constant flow of
        {bug} reports, change orders to both hardware and software,
        and hand-holding for worried users.

        The 704 was considered a business-oriented machine (early
        version of {COBOL}?), whereas the 709 was oriented toward
        scientific work ({floating point} hardware and {FORTRAN}?).

        Very few 700 series computers remained in service by 1965, but
        the {IBM 7090}, using {transistors} but similar in logical
        structure, remained an important machine until the production
        of the earliest {integrated circuits}.

        [Was the 704 scientific, business or general purpose?
        Difference between 704 and 709?]

        (1996-01-24)

IBM 7040

        <computer> A scaled down version of the {IBM 7090}.

        (1997-02-23)

IBM 705

        <computer> A business oriented computer from {IBM}.

        Languages incuded {ACOM}, {Autocode}, {ELI}, {PRINT}, {PRINT
        I}, {SOHIO}, {SYMBOLIC ASSEMBLY}.

        (1997-02-23)

IBM 709

        <computer> A computer made by {IBM} oriented towards
        scientific work.  The 709 had the same basic architecture as
        the {IBM 704} but with many {I/O} and performance refinements
        over the 704.

        The IBM 709 (like the 704) had 36-bit memory words, 15-bit
        addresses and instructions with one address.  A few {index
        register} instructions had the infamous 15-bit decrement field
        in addition to the 15-bit address.

        The {IBM 7090} was a transistorised version of the 709.

        [Difference between 704 and 709?]

        (1999-01-19)

IBM 7090

        <computer> A transistorised version of the {IBM 709} which was
        a very popular high end computer in the early 1960s.  The 7090
        had 32Kbytes of 36-bit {core} memory and a hardware {floating
        point unit}.  {Fortran} was its most popular language, but it
        supported many others.  It was later upgraded to the {IBM
        7094}, and a scaled down version, the IBM 7040 was also
        introduced.

        IBM 7090s controlled the Mercury and Gemini space flights, the
        Balistic Missile Early Warning System (until well into the
        1980s), and the {CTSS} {time sharing} system at {MIT}.

        The 7090 was not good at unit record I/O, so in small
        configurations an {IBM 1401} was used for {SPOOL} I/O and in
        large configurations (such as a 7090/94) a 7040/44 would be
        directly coupled and dedicated to handling printers and {card
        readers}.  (See the film Dr Strangelove).

        (1999-01-19)

IBM 7094

        <computer> A faster version of the {IBM 7090} with more {index
        registers}.

        (1997-02-23)

IBM 801

        The original {IBM} {RISC} processor, developed as a research
        project.  It was named after the building in which it was
        designed.

        [Features?  Dates?]

        (1995-03-01)

IBM compatible

        <computer> A computer which can use hardware and software
        designed for the {IBM PC} (or, less often, IBM {mainframes}).

        This was once a key phrase in marketing a new PC {clone} but
        now in 1998 is rarely used, the non-IBM {wintel} {personal
        computer} manufacturers such as {Compaq}, {Dell} and {Gateway
        2000} and OS vendor {Microsoft} having taken control of the
        market, marginalising IBM.

        (1998-07-30)

IBM Customer Engineer

        <job> (CE) A hardware guy from {IBM}.

        [Are/were any CEs female?]

        (1998-07-08)

IBM discount

        A price increase.  Outside IBM, this derives from the common
        perception that IBM products are generally overpriced (see
        {clone}); inside, it is said to spring from a belief that
        large numbers of IBM employees living in an area cause prices
        to rise.

        (1995-02-07)

IBM PC

        <computer> International Business Machines Personal Computer.

        IBM PCs and compatible models from other vendors are the most
        widely used computer systems in the world.  They are typically
        single user {personal computers}, although they have been
        adapted into multi-user models for special applications.

        Note: "IBM PC" is used in this dictionary to denote IBM and
        compatible personal computers, and to distinguish these from
        other {personal computers}, though the phrase "PC" is often
        used elsewhere, by those who know no better, to mean "IBM PC
        or compatible".

        There are hundreds of models of IBM compatible computers.
        They are based on {Intel}'s {microprocessors}: {Intel 8086},
        {Intel 8088}, {Intel 80286}, {Intel 80386}, {Intel 486} or
        {Pentium}.  The models of IBM's first-generation Personal
        Computer (PC) series have names: IBM PC, {IBM PC XT}, {IBM PC
        AT}, Convertible and Portable.  The models of its second
        generation, the Personal System/2 ({PS/2}), are known by model
        number: Model 25, Model 30.  Within each series, the models
        are also commonly referenced by their {CPU} {clock rate}.

        All IBM personal computers are software compatible with each
        other in general, but not every program will work in every
        machine.  Some programs are time sensitive to a particular
        speed class.  Older programs will not take advantage of newer
        higher-resolution {display standards}.

        The speed of the {CPU} ({microprocessor}) is the most
        significant factor in machine performance.  It is determined
        by its {clock rate} and the number of bits it can process
        internally.  It is also determined by the number of bits it
        transfers across its {data bus}.  The second major performance
        factor is the speed of the {hard disk}.

        {CAD} and other graphics-intensive {application programs} can
        be sped up with the addition of a mathematics {coprocessor}, a
        chip which plugs into a special socket available in almost all
        machines.

        {Intel 8086} and {Intel 8088}-based PCs require {EMS}
        (expanded memory) boards to work with more than one megabyte
        of memory.  All these machines run under {MS-DOS}.  The
        original {IBM PC AT} used an {Intel 80286} processor which can
        access up to 16 megabytes of memory (though standard {MS-DOS}
        applications cannot use more than one megabyte without {EMS}).
        {Intel 80286}-based computers running under {OS/2} can work
        with the maximum memory.

        Although IBM sells {printers} for PCs, most printers will work
        with them.  As with display hardware, the software vendor must
        support a wide variety of printers.  Each program must be
        installed with the appropriate {printer driver}.

        The original 1981 IBM PC's keyboard was severely criticised by
        typists for its non-standard placement of the return and left
        shift keys.  In 1984, IBM corrected this on its AT keyboard,
        but shortened the backspace key, making it harder to reach.
        In 1987, it introduced its Enhanced keyboard, which relocated
        all the function keys and placed the control key in an awkward
        location for touch typists.  The escape key was relocated to
        the opposite side of the keyboard.  By relocating the function
        keys, IBM made it impossible for software vendors to use them
        intelligently.  What's easy to reach on one keyboard is
        difficult on the other, and vice versa.  To the touch typist,
        these deficiencies are maddening.

        An "IBM PC compatible" may have a keyboard which does not
        recognize every key combination a true IBM PC does,
        e.g. shifted cursor keys.  In addition, the "compatible"
        vendors sometimes use proprietary keyboard interfaces,
        preventing you from replacing the keyboard.

        The 1981 PC had 360K {floppy disks}.  In 1984, IBM introduced
        the 1.2 megabyte floppy disk along with its AT model.
        Although often used as {backup} storage, the high density
        floppy is not often used for interchangeability.  In 1986, IBM
        introduced the 720K 3.5" microfloppy disk on its Convertible
        {laptop computer}.  It introduced the 1.44 megabyte double
        density version with the PS/2 line.  These disk drives can be
        added to existing PCs.

        Fixed, non-removable, {hard disks} for IBM compatibles are
        available with storage capacities from 20 to over 600
        megabytes.  If a hard disk is added that is not compatible
        with the existing {disk controller}, a new controller board
        must be plugged in.  However, one disk's internal standard
        does not conflict with another, since all programs and data
        must be copied onto it to begin with.  Removable hard disks
        that hold at least 20 megabytes are also available.

        When a new peripheral device, such as a {monitor} or
        {scanner}, is added to an IBM compatible, a corresponding, new
        controller board must be plugged into an {expansion slot} (in
        the bus) in order to electronically control its operation.
        The PC and XT had eight-bit busses; the AT had a 16-bit bus.
        16-bit boards will not fit into 8-bit slots, but 8-bit boards
        will fit into 16-bit slots.  {Intel 80286} and {Intel 80386}
        computers provide both 8-bit and 16-bit slots, while the 386s
        also have proprietary 32-bit memory slots.  The bus in
        high-end models of the PS/2 line is called "{Micro Channel}".
        {EISA} is a non-IBM rival to Micro Channel.

        The original IBM PC came with {BASIC} in {ROM}.  Later, Basic
        and BasicA were distributed on floppy but ran and referenced
        routines in ROM.

        IBM PC and PS/2 models

        PC range

                        Intro     CPU     Features
         PC             Aug 1981   8088   Floppy disk system
         XT             Mar 1983   8088   Slow hard disk
         XT/370         Oct 1983   8088   IBM 370 mainframe emulation
         3270 PC        Oct 1983   8088   with 3270 terminal emulation
         PCjr           Nov 1983   8088   Floppy-based home computer
         PC Portable    Feb 1984   8088   Floppy-based portable
         AT             Aug 1984   286    Medium-speed hard disk
         Convertible    Apr 1986   8088   Microfloppy laptop portable
         XT 286         Sep 1986   286    Slow hard disk

        PS/2 range

                        Intro     CPU     Features
         Model 1987-08-25   8086          PC bus (limited expansion)
         Model 1987-04-30   8086          PC bus
         Model 30 1988-09-286   286       PC bus
         Model 1987-04-50   286   Micro Channel bus
         Model 50Z      Jun 1988   286    Faster Model 50
         Model 55 SX    May 1989   386SX  Micro Channel bus
         Model 1987-04-60   286   Micro Channel bus
         Model 1988-06-70   386   Desktop, Micro Channel bus
         Model P1989-05-70   386          Portable, Micro Channel bus
         Model 1987-04-80   386   Tower, Micro Channel bus

        IBM PC compatible specifications

         CPU   CPU    Clock    Bus          Floppy        Hard
               bus    speed   width  RAM    disk          disk     OS
               bit    Mhz     bit   byte    inch   byte   Mbyte

         8088  16    4.8-9.5    8    1M*     5.25  360K   10-40   DOS
                                             3.5   720K
                                             3.5   1.44M

         8086  16     6-12     16    1M*                  20-60

         286   16     6-25     16   1-8M*    5.25  360K   20-300  DOS
                                             5.25  1.2M           OS/2

         386   32     16-33    32   1-16M**  3.5   720K           Unix
                                             3.5   1.44M  40-600

         386SX 32     16-33    16   1-16M**               40-600

        *Under DOS, RAM is expanded beyond 1M with EMS memory boards

        **Under DOS, RAM is expanded beyond 1M with normal "extended"
        memory and a memory management program.

        See also {BIOS}, {display standard}.

        (1995-05-12)

IBM PC AT

        <computer> ("Advanced Technology") A version of the {IBM PC},
        released in Aug 1984 with an {Intel 80286} processor, a 16-bit
        {bus}, a medium-speed {hard disk} and a 1.2 {megabyte}
        {floppy} {disk drive}.  It had a larger case than the PC,
        which allowed it to accept "{tall cards}".

        The AT keyboard corrected the PC's non-standard placement of
        the {return} and left shift keys but shortened the {backspace}
        key, making it harder to reach.

        (1995-03-01)

IBM PCjr

        <computer> ({IBM PC} Junior) A {floppy disk}-based home
        computer with an {Intel 8088} {CPU} and a {chiclet keyboard},
        released in November 1983.  The PCjr could be expanded to have
        two floppy drives and 640 kilobytes of {RAM} using {sidecar}s.
        Some even had a {mouse} and could run drawing programs with
        {popup menu}s.

        (1995-10-06)

IBM PC XT

        <computer> An {IBM PC} with a (slow) {hard disk}.  The XT was
        released in March 1983.  It had an {Intel 8088} {CPU}.  The
        XT/370, released in October 1983, added {IBM 370} {mainframe}
        {emulation}, and the XT 286 followed in September 1986 with an
        {Intel 80286} CPU [Why?].

        (1996-05-21)

IBM Systems Engineer

        <job> (SE) A software guy from {IBM}.

        [Are/were any SEs female?]

        (1998-07-08)

Ibpag2

        Icon-Based Parser Generation System 2

        Ibpag2 is a {parser generator} for {Icon} by Richard
        L. Goerwitz <goer@midway.uchicago.edu>.  It does most of what
        you would expect.  Latest version can handle both {SLR1
        grammar}s and even {GLR grammar}s ({Tomita grammar}s).  Ibpag2
        runs under {Unix}.  Version: 1.0 (beta).

        Posted to comp.sources.misc.

        (1993-07-13)

Iburg

        A program by Christopher W. Fraser <cwf@research.att.com>,
        David R. Hanson <drh@princeton.edu> and Todd A. Proebsting
        <todd@cs.arizona.edu> that generates a fast tree parser.

        Iburg is compatible with {Burg}.  Both programs accept a
        cost-augmented tree {grammar} and emit a {C} program that
        discovers an optimal parse of trees in the language described
        by the grammar.  They have been used to construct fast optimal
        instruction selectors for use in code generation.  Burg uses
        {BURS}.  Iburg's matchers do {dynamic programming} at compile
        time.

        {(ftp://ftp.cs.princeton.edu/pub/iburg.tar.Z)}

        (1993-02-10)

IC

        1. <hardware> {integrated circuit}.

        2. {Independent Carrier}.

        3. {Imperial College}.

        (1997-04-12)

ICAM

        {Integrated Computer Aided Manufacturing}

I-CASE

        Integrated {CASE}.  Another term for an {IPSE}.

ICBM address

        <networking, humour> (Or "missile address") The form used to
        register a site with the {Usenet} mapping project includes a
        space for longitude and latitude, preferably to seconds-of-arc
        accuracy.  This is actually used for generating
        geographically-correct maps of {Usenet} links on a plotter;
        however, it has become traditional to refer to this as one's
        "ICBM address" or "missile address", and many people include
        it in their {sig block} with that name.  (A real missile
        address would include target altitude.)

        (1994-12-15)

ICE

        1. {in-circuit emulator}.

        2. {Intrusion Countermeasure Electronics}.

ICES

        Integrated Civil Engineering System.  Subsystems include COGO,
        STRUDL, BRIDGE, LEASE, PROJECT, ROADS and TRANSET.  Internal
        languages include ICETRAN and CDL.  "An Integrated Computer
        System for Engineering Problem Solving", D. Roos, Proc SJCC
        27(2), AFIPS (Spring 1965).  Sammet 1969, pp.615-620.

ICETRAN

        An extension of {FORTRAN IV} and a component of {ICES}.

        [Sammet 1969, p. 617].

ICI

        Interactive C Interpreter?  An extensible, interpreted
        language by Tim Long with {syntax} similar to {C}.  ICI adds
        high-level garbage-collected {associative} data structures.
        {Exception} handling, sets, {regular expression}s, {dynamic
        array}s.

        There are standard functions to provided the sort of support
        provided by the standard I/O and the C libraries, as well as
        additional types and functions to support common needs such as
        simple non-indexed {database}s; character based screen
        handling; direct access to many {system call}s; {safe
        pointer}s and {floating-point}.

        ICI runs on {Sun-4}, {80x86} {Xenix}, {NEXTSTEP} and {MS-DOS}.

        {(ftp://nexus.yorku.ca/pub/oz/ici.cpio.Z)}.  E-mail: Andy
        Newman <andy@research.canon.oz.au>.  Mailing list:
        ici@research.canon.oz.au.

        (1992-11-10)

ICL

        <company> {International Computers Limited}.

ICMP

        {Internet Control Message Protocol}

ICMP Router Discovery Protocol

        <protocol> (IRDP) A {routing} {protocol} used by {Microsoft
        Windows} {DHCP} clients and various {Unix} flavors.

        [Details?  Reference?]

        (1999-09-18)

I-Comm

        <tool, World-Wide Web> A graphical {World-Wide Web} {browser}
        for {IBM PC}s with a {window system} ({Windows 95}, {Windows
        NT} or {OS/2}).  I-Comm does NOT require a {SLIP} or {PPP}
        connection, just a {modem}.  It is available as a {shareware}
        program.

        Version: 1.15 Beta1.

        {Home (http://www.talentcom.com/icomm/icomm.htm)}, {mirror
        (http://www.best.com:80/~icomm/icomm/icomm.htm)}.

        {FTP netcom.com (ftp://ftp.netcom.com/pub/ic/icomm/)},
        {FTP best.com (ftp://ftp.best.com/pub/icomm/icomm/)}.

        E-Mail: <icomm@talentcom.com>.

        (1996-03-22)
iCOMP

        {Intel Comparative Microprocessor Performance index}

Icon

        <language> A descendant of {SNOBOL4} with {Pascal}-like
        syntax, produced by Griswold in the 1970's.  Icon is a
        general-purpose language with special features for string
        scanning.  It has dynamic types: records, sets, lists,
        strings, tables.  If has some {object oriented} features but
        no {modules} or {exception}s.  It has a primitive {Unix}
        interface.

        The central theme of Icon is the generator: when an expression
        is evaluated it may be suspended and later resumed, producing
        a result sequence of values until it fails.  Resumption takes
        place implicitly in two contexts: iteration which is
        syntactically loop-like ('every-do'), and goal-directed
        evaluation in which a conditional expression automatically
        attempts to produce at least one result.  Expressions that
        fail are used in lieu of Booleans.  Data {backtracking} is
        supported by a reversible {assignment}.  Icon also has
        {co-expression}s, which can be explicitly resumed at any time.

        Version 8.8 by Ralph Griswold <ralph@cs.arizona.edu> includes
        an {interpreter}, a compiler (for some {platform}s) and a
        library (v8.8).  Icon has been ported to {Amiga}, {Atari},
        {CMS}, {Macintosh}, {Macintosh/MPW}, {MS-DOS}, {MVS}, {OS/2},
        {Unix}, {VMS}, {Acorn}.

        See also {Ibpag2}.

        {(ftp://cs.arizona.edu/icon/)}, {MS-DOS FTP
        (ftp://bellcore.com norman/iconexe.zip)}.

        {Usenet} newsgroup: {news:comp.lang.icon}.

        E-mail: <icon-project@cs.arizona.edu>, <mengarini@delphi.com>.

        Mailing list: icon-group@arizona.edu.

        ["The Icon Programmming Language", Ralph E. Griswold and Madge
        T. Griswold, Prentice Hall, seond edition, 1990].

        ["The Implementation of the Icon Programmming Language", Ralph
        E. Griswold and Madge T. Griswold, Princeton University Press
        1986].

        (1992-08-21)

icon

        <graphics> (From minature religious statues) A small picture
        intended to represent something (a file, directory, or action)
        in a {graphical user interface}.  When an icon is clicked on,
        some action is performed such as opening a directory or
        aborting a file transfer.  Icons are usually stored as
        {bitmap} images.

        (1995-03-07)

Iconicode

        1990-1992.  Visual dataflow language, token-based with
        hierarchical, recursive and iterative constructs.  Version:
        IDF with extensions for image processing.

        ["IDF: A Graphical Data Flow Programming Language for Image
        Processing and Computer Vision", Neil Hunt, Proc IEEE Conf on
        Systems Man & Cybernetics, IEEE, Nov 1990.  Available from
        Iconicon <icon@teleos.com>].

ICONIX Software Engineering, Inc.

        <company> Makers of {ICONIX PowerTools}, software development
        tools, and the first {CD-ROM} training course in
        {object-oriented} methods.  ICONIX started operating in 1984.

        {Home (http://www.biap.com/iconix/)}

        Address: 2800 28th Street, Suite 320, Santa Monica, CA 90405,
        USA.  Telephone: +1 (310) 458 0092

        (1995-04-30)

IC-Prolog

        Clark & McCabe, Imperial College 1979.  Logic language with
        coroutining.

        ["IC-Prolog Language Features", K.L. Clark <klc@doc.ic.ac.uk>
        et al in Logic Programming, K.L. Clark et al eds, pp.253-266,
        Academic Press 1982].

IC Prolog II

        Imperial College Prolog.  A {Prolog} with {multi-threading},
        {TCP} primitives for interprocess communication, {mailbox} and
        an interface to {Parlog}.

        {(ftp://doc.ic.ac.uk/computing/programming/languages)}.
        E-mail: Damien Chu <dac@doc.ic.ac.uk>.

        ["IC Prolog II: A Language for Implementing Multi-Agent
        Systems", Y. Cosmadopoulos et al, in Tutorial and Workshop on
        Cooperating Knowledge Based Systems, Keele U 1992].

        (1994-11-01)

ICQ

        <chat> 1. Abbreviation for "I seek you".

        2. A proprietary {chat} system owned by {America On-Line}.
        The name is probably derived from sense 1.

        {Home (http://www.icq.com/)}.

        [Confirm derivation?  TCP?  Summary?]

        (1998-04-26)

ICSI

        {International Computer Science Institute} at Berkeley, CA.

ICT

        {In Circuit Test}

ICW

        {Interactive CourseWare}

ICWS

        International {Core War} Society.

Id

        {Irvine Dataflow}

id

        <networking> The {country code} for Indonesia.

        (1999-01-27)

I-D

        {Internet-Draft}

IDAMS

        A pictorial retrieval language implemented in {APL}.

        ["Concept of the Diagnostic Image Workstation",
        D. Meyer-Ebrecht, Proc 2nd Conf on Picture Archiving (PACS
        II), SPIE 418, pp.180-183 (1983)].

IDE

        1. <storage> Integrated Drive Electronics, see {Advanced
        Technology Attachment}.

        2. <programming, tool> {interactive development environment}.

        3. <company> {Interactive Development Environments}.

        (1996-03-04)

IDEA

        1. <language> {Interactive Data Entry/Access}.

        2. <algorithm> {International Data Encryption Algorithm}.

        (1996-02-16)

IDEAL

        1. Ideal DEductive Applicative Language.  A language by Pier
        Bosco and Elio Giovannetti combining {Miranda} and {Prolog}.
        Function definitions can have a {guard} condition (introduced
        by ":-") which is a conjunction of equalities between
        arbitrary terms, including functions.  These guards are solved
        by normal {Prolog} {resolution} and {unification}.  It was
        originally compiled into {C-Prolog} but was eventually to be
        compiled to {K-leaf}.

        2. A numerical {constraint} language written by Van Wyk of
        {Stanford} in 1980 for {typesetting} graphics in documents.
        It was inspired partly by {Metafont} and is distributed as
        part of {Troff}.

        ["A High-Level Language for Specifying Pictures", C.J. Van
        Wyk, ACM Trans Graphics 1(2):163-182 (Apr 1982)].

        (1994-12-15)

ideal

        <theory> In {domain theory}, a non-empty, {downward closed}
        subset which is also closed under binary {least upper bounds}.
        I.e. anything less than an element is also an element and the
        least upper bound of any two elements is also an element.

        (1997-09-26)

Idealized CSP

        <language> A programming language combining simply typed,
        {call-by-name} {procedures} with {asynchronous} communicating
        processes, assuming fair parallel execution.  Idealized CSP
        generalises {Anthony Hoare}'s original {CSP} and Kahn's
        networks of {deterministic} processes, and is closely related
        to {Parallel Algol} by Stephen Brookes of {CMU}.

        Procedures permit the encapsulation of common {protocols} and
        parallel programming idioms.  {Local variables} and local
        channel declarations provide a way to delimit the scope of
        interference between parallel agents, and allow a form of
        concurrent {object-oriented programming}.

        [Was this language also designed by Brookes?]

        (1997-09-26)

Idealized Instruction Set

        <language> (IIS) The {assembly language} for the {Flagship}
        parallel machine.

        ["An Idealized Instruction Set for a Packet Rewrite Machine",
        J. Sargeant, Manchester U, 1988].

        (1994-11-07)

IDEF

        {ICAM} Definition.

idempotent

        1. A function f : D -> D is idempotent if

                f (f x) = f x  for all x in D.

        I.e. repeated applications have the same effect as one.  This
        can be extended to functions of more than one argument,
        e.g. Boolean & has x & x = x.  Any value in the {image} of an
        idempotent function is a {fixed point} of the function.

        2. This term can be used to describe {C} header files, which
        contain common definitions and declarations to be included by
        several source files.  If a header file is ever included twice
        during the same compilation (perhaps due to nested #include
        files), compilation errors can result unless the header file
        has protected itself against multiple inclusion; a header file
        so protected is said to be idempotent.

        3. The term can also be used to describe an initialisation
        subroutine that is arranged to perform some critical action
        exactly once, even if the routine is called several times.

        (1995-01-11)

IDF

        <networking> {Intermediate Distribution Frame}.

I didn't change anything!

        An aggrieved cry often heard as bugs manifest during a
        regression test.  The {canonical} reply to this assertion is
        "Then it works just the same as it did before, doesn't it?"
        See also {one-line fix}.  This is also heard from applications
        programmers trying to blame an obvious applications problem on
        an unrelated systems software change, for example a
        divide-by-0 fault after terminals were added to a network.
        Usually, their statement is found to be false.  Upon close
        questioning, they will admit some major restructuring of the
        program that shouldn't have broken anything, in their opinion,
        but which actually {hosed} the code completely.

IDL

        1. Interactive Data analysis Language.  {Xerox}.  Built on
        {Interlisp-D}.

        2. {Interface Description Language} (Snodgrass, UNC, Arizona).

        3. {Interface Definition Language} ({SunSoft}, {OMG}).

        4. {Interactive Data Language} ({Research Systems}).

IDMS

        1. <language, database> A pictorial {query language},
        an extension of {Sequel2}.

        ["A Management System for an Integrated Database of Pictures
        and Alphanumeric Data", G.Y. Tang, Computer Graphics Image
        Processing 16:270-286 (1981)].

        2. <database> {Integrated Database Management
        System}.

IDMSX

        <database> {IDMS} extended.

        (1995-04-19)

Id Nouveau

        A {dataflow} language by Arvind <arvind@lcs.mit.edu> and
        R.S. Nikhil <nikhil@crl.dec.com>, {MIT} {LCS}, ca. 1986.

        Id Nouveau began as a {functional language}, added {stream}s,
        resource managers and {I-structure}s ({mutable array}s).
        Loops are {syntactic sugar} for {tail recursion}.

        See also {Id}.

        ["Id Nouveau Reference Manual", R.S.  Nikhil, CS TR, MIT,
        March 1988].

        ["Id (Version 90.1) Reference Manual", R.S. Nikhil, CSG Memo
        284-2, LCS MIT, July 15, 1991].

IDOL

        Icon-Derived Object Language.  An {object-oriented}
        {preprocessor} for {Icon}.

        {(ftp://src.doc.ic.ac.uk/pub/languages/icon/idol.tar.Z)}

        ["Programming in Idol: An Object Primer", C.L. Jeffery, U
        Arizona CS TR #90-10].

IDS/I

        Integrated Data Store.  AN extension to {COBOL} involving
        "chains" (circular lists), for {General Electric} computers.

        ["A General Purpose Programming System for Random Access
        Memories", C.W. Bachman et al, Proc FJCC 26(1), AFIPS (Fall
        1964)].

        [Sammet 1969, p. 376].

id Software

        <games> Creators and publishers of the {DOOM} game for {IBM
        PC}s.

        E-mail: <help@idsoftware.com>.  Telephone: +1 800-ID-GAMES
        (Orders only).

IDSS

        {Intelligent Decision Support Systems}

IE

        {Internet Explorer}

ie

        <networking> The {country code} for Ireland.

        (1999-01-27)

IEC

        {International Electrotechnical Commission}

IEC 559

        {IEEE Floating Point Standard}

IEEE

        {Institute of Electrical and Electronics Engineers}

IEEE 1076

        The {IEEE} standard for {VHDL}.

IEEE 1394

        {FireWire}

IEEE 488

        <hardware, standard> (GPIB, General-Purpose Interface Bus,
        HP-IB, Hewlett-Packard Interface Bus) An 8-bit parallel {bus}
        common on {test equipment}.

        The IEEE-488 standard was proposed by {Hewlett-Packard} in the
        late 1970s and has undergone a couple of revisions.  HP
        documentation (including data sheets and manuals) calls it
        HP-IB, or Hewlett-Packard Interface Bus.

        It allows up to 15 intelligent devices to share a single bus,
        with the slowest device participating in the control and data
        transfer handshakes to drive the speed of the transaction.
        The maximum data rate is about one {megabit} per second.

        Other standards committees have adopted HP-IB (American
        Standards Institute with ANSI Standard MC 1.1 and
        International Electro-technical Commission with IEC
        Publication 625-1).

        To paraphrase from the HP 1989 Test & Measurement Catalog (the
        50th Anniversary version): The HP-IB has a party-line
        structure wherein all devices on the bus are connected in
        parallel.  The 16 signal lines within the passive
        interconnecting HP-IB (IEEE-488) cable are grouped into three
        clusters according to their functions (Data Bus, Data Byte
        Transfer Control Bus, General Interface Management Bus).

        In June 1987 the IEEE approved a new standard for programmable
        instruments called IEEE Std. 488.2-1987 Codes, Formats,
        Protocols, and Common Commands.  It works with the IEEE
        Standard Digital Interface for Programmable Instrumentation,
        IEEE 488-1978 (now 488.1).  HP-IB is Hewlett-Packard's
        implementation of IEEE 488.1.

        (1996-05-10)

IEEE 754

        {IEEE Floating Point Standard}

IEEE 802

        <networking, standard> The {IEEE} standards for {local area
        networks}.  The {spanning tree algorithm} is defined in {IEEE
        802.1} (under consideration), {Logical Link Control} (LLC, the
        upper portion of the {data link layer}) in {IEEE 802.2},
        {Ethernet} in {IEEE 802.3}, {Token Bus} in IEEE 802.4 and IBM
        {Token Ring} in {IEEE 802.5}.

        The equivalent {ISO} {standard} is IS 8802.

        (1995-02-15)

IEEE 802.2

        (Networks) The {IEEE} standard defining {Logical Link Control}
        (LLC, the upper portion of the {data link layer}) for {local
        area network}s.

        (1995-02-14)

IEEE 802.3

        The {IEEE} standard defining the {hardware layer} and
        {transport layer} of (a varient of) {Ethernet}.  The maximum
        {segment} length is 500m and the maximum total length is
        2.5km.  The maximum number of hosts is 1024.

        The maximum {packet} size is 1518 bytes.  If the upper layer
        {protocol} submits a {PDU} less than 64 bytes, 802.3 will pad
        the {LLC Info} field to achieve the minimum 64 bytes.

        Although it is not technically correct, the terms "{packet}"
        and frame are used interchangeably.  The {ISO}/{IEC} 8802-3
        {ANSI}/{IEEE} 802.3 Standards refer to {MAC} sub-layer
        {frame}s consisting of the Destination Address, Source
        Address, Length, LLC Info., and {FCS} fields.  The {Preamble}
        and {SFD} are (usually) considered a header to the {MAC}
        Frame.  This header plus the MAC Frame constitute a "Packet".

        (1995-07-09)

IEEE 802.3u

        <networking, standard> The {IEEE} committee working on
        standards for {Fast Ethernet}.

        (1998-06-30)

IEEE 802.3z

        <networking, standard> The {IEEE} committee working on
        standards for {Gigabit Ethernet}.

        (1998-06-30)

IEEE 802.4

        <networking, standard> The {IEEE} {Token Bus} {standard}.

        (1996-12-12)

IEEE 802.5

        The {IEEE} {token ring} {standard}.  The most common type of
        token ring.

        (1994-10-27)

IEEE Computer Society

        <body> The society of the {IEEE} which publishes the journal
        "Computer".

        {Home (http://www.computer.org/)}

        (1995-03-10)

IEEE Floating Point Standard

        <standard, mathematics> (IEEE 754) "{IEEE} Standard for Binary
        {Floating-Point} Arithmetic (ANSI/IEEE Std 754-1985)" or {IEC}
        559: "Binary floating-point arithmetic for microprocessor
        systems". A {standard}, used by many {CPU}s and {FPU}s, which
        defines formats for representing floating-point numbers;
        representations of special values (e.g. {infinity}, very small
        values, {NaN}); five {exceptions}, when they occur, and what
        happens when they do occur; four {rounding modes}; and a set
        of floating-point operations that will work identically on any
        conforming system.

        IEEE 754 specifies four formats for representing
        floating-point values: single-precision (32-bit),
        double-precision (64-bit), single-extended precision (80-bit?)
        and double-extended precision (128-bit).  Only 32-bit values
        are required by the standard, the others are optional though
        64-bit is required by standard {C}.

        [On-line document?]

        (1997-12-19)

IEF

        {Information Engineering Facility}

IEN

        {Internet Experiment Note}

IEPG

        {Internet Engineering and Planning Group}

IESG

        {Internet Engineering Steering Group}

IETF

        {Internet Engineering Task Force}

IF1

        <language> A graph language used as an intermediate language
        for {dataflow} hardware.  Used by the {OSC} {SISAL} compiler.

        ["The Manchester Prototype Dataflow Computer", J.R. Gurd et
        al, CACM 28(1):34-52, Jan 1985].

        (1996-01-05)

IF2

        <language> S graph language used by the {OSC} {SISAL}
        compiler, a superset of {IF1}.

        ["IF2: An Applicative Language Intermediate Form with Explicit
        Memory Management", M. L. Welcome et al, UC-LLNL, Nov 1986].

        (1996-01-05)

IFAC

        International Federation of Automatic Control, involved in
        informatics related to control systems.

ifdef out

        /if'def owt/ v. Synonym for {condition out}, specific
        to {C}.

IFDL

        <language> Independent Form Description Language.

        {DEC}'s language for describing form-based human interfaces in
        {DECforms}.

        (1995-04-21)

IFF

        1. <file format> {Interchange File Format}.

        2. Identify friend or foe (radar).

IFIP

        1. {International Federation for Information Processing}.

        2. A subset of {ALGOL}.

        [Sammet 1969, p. 180].

IFP

        Illinois FP.  An {interpreter} written in portable {C} by Arch
        D. Robinson for a variant of Backus' {FP} with syntax like
        {ALGOL} or {Modula-2}.  IFP Runs under {Unix}, {CTSS} ({Cray})
        and {MS-DOS}.  Version 0.5.

        {(ftp://a.cs.uiuc.edu/pub/ifp)}.  Posted to comp.sources.unix
        volume 10.

        ["The Illinois Functional Programming Interpreter",
        A.D. Robison, Proc 1987 SIGPLAN Conf on Interpreters and
        Interpretive Techniques (June 1987), pp. 64-73].

        ["Illinois Functional Programming: A Tutorial", A.D. Robison,
        BYTE Feb 1987, pp. 115-125].

        (1994-10-24)

IFS

        1. <operating system> {internal field separators}.

        2. <operating system> {Installable File System}.

        3. <graphics> {Iterated Function System}.

        (1999-04-07)

IFX

        ["Type Reconstruction with First-Class Polymorphic Values",
        J. O'Toole et al, SIGPLAN Notices 24(7):207-217 (Jul 1989)].

If you want X, you know where to find it.

        <exclamation> There is a legend that {Dennis Ritchie},
        inventor of {C}, once responded to demands for features
        resembling those of what at the time was a much more popular
        language by observing "If you want {PL/I}, you know where to
        find it."  Ever since, this has been hackish standard form for
        fending off requests to alter a new design to mimic some older
        (and, by implication, inferior and {baroque}) one.  The case X
        = {Pascal} manifests semi-regularly on {Usenet}'s
        {news:comp.lang.c} {newsgroup}.  Indeed, the case X = X has
        been reported in discussions of graphics software (see {X
        Window System}).

        (1995-10-25)

IGC

        {Institute for Global Communications}

IGES

        Initial Graphics Exchange Specification: an ASME/ANSI standard
        for the exchange of CAD data.

IGL

        Interactive Graphic Language.  Used primarily by Physics Dept
        at Brooklyn Poly, uses numerical methods on vectors to
        approximate continuous function problems that don't have
        closed form solutions.

        [Is this being confused with Tektronix's graphics library by
        the same name?]

IGMP

        {Internet Group Management Protocol}

IGP

        {Interior Gateway Protocol}

IGPL

        {Interest Group in Pure and Applied Logics}

IGU

        <chat> I Give Up.  Often found appended to documents, e-mail,
        programs that don't work, etc.

        (1999-09-30)

IHS

        {Integrated Home System}

IHV

        <company> {Independant Hardware Vendor}.

        (1995-12-11)

IIcx

        {Apple IIcx}

IIDMS/R

        Integrated database management system.  A {DBMS} from
        {Cullinet Software, Inc.}

        (1994-11-07)

IINREN

        {Interagency Interim National Research and Education Network}

IIOP

        {Internet Inter-ORB Protocol}

IIR

        {Infinite Impulse Response}

IIRC

        <chat> If I recall/remember correctly.

        (1996-11-28)

IIS

        1. <World-Wide Web> {Internet Information Server}.

        2. <language> {Idealized Instruction Set}.

        (1999-08-26)

IIT

        {Integrated Information Technology}

IITF

        {Information Infrastructure Task Force}

IITRAN

        Simple PL/I-like language for students, on IBM 360.

        ["The IITRAN Programming Language", R. Dewar et al, CACM
        12(10):569-575 (Oct 1969)].

il

        <networking> The {country code} for Israel.

        (1999-01-27)

ILBM

        {interleaved bit-map}

ILF

        {Independent Logical File}

ILIAD

        A {real-time} language.

        ["On the Design of a Language for Programming Real-Time
        Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng
        SE-5(3):248-255 (May 1979)].

ILISP

        A somewhat {LISP Machine}-like interface to {lisp listener}s
        from {Emacs}.

        Version 5.0 Emacs interface by ? Ivan Vazquez
        <ivan@haldane.bu.edu>.

        {(ftp://haldane.bu.edu/)} (128.197.54.25).  E-mail:
        <ilisp-bug@darwin.bu.edu>, <ilisp-bugs@darwin.bu.edu>,
        <ilisp-request@darwin.bu.edu> (discussion).

        (1993-06-28)

ill-behaved

        1. [numerical analysis] Said of an {algorithm} or
        computational method that tends to blow up because of
        accumulated roundoff error or poor convergence properties.

        2. Software that bypasses the defined {operating system}
        interfaces to do things (like screen, keyboard, and disk I/O)
        itself, often in a way that depends on the hardware of the
        machine it is running on or which is nonportable or
        incompatible with other pieces of software.

        In the {IBM PC}/{mess-dos} world, there is a folk theorem
        (nearly true) to the effect that (owing to gross inadequacies
        and performance penalties in the OS interface) all interesting
        applications are ill-behaved.

        See also {bare metal}. Opposite: {well-behaved}, compare
        {PC-ism}.

ILLIAC

        Assembly language for the ILLIAC computer.  Listed in CACM
        2(5):16, (May 1959) p.16.

Illiac IV

        <computer> One of the most infamous {supercomputer}s ever.  It
        used early ideas on {SIMD} (single instruction stream,
        multiple data streams).  The project started in 1965, it used
        64 processors and a 13MHz clock.  In 1976 it ran its first
        sucessfull application.  It had 1MB memory (64x16KB).

        Its actual performance was 15 MFLOPS, it was estimated in
        initial predictions to be 1000 MFLOPS.  It totally failed as a
        computer, only a quarter of the fully planned machine was ever
        built, costs escalated from the $8 million estimated in 1966
        to $31 million by 1972, and the computer took three more years
        of enginering before it was operational.

        The only good it did was to push research forward a bit,
        leading way for machines such as the {Thinking Machines}
        {CM-1} and CM-2.

        (1995-04-28)

ILOC

        Rice U.  Register-oriented intermediate language targeted to
        PC/RT.  Source languages include {FORTRAN} and {Russell}.

Ilog Solver

        A commercial {constraint} programming system.

        (1994-11-15)

image

        1. Data representing a two-dimensional scene.  A digital image
        is composed of {pixel}s arranged in a rectangular array with a
        certain height and width.  Each pixel may consist of one or
        more {bit}s of information, representing the brightness of the
        image at that point and possibly including colour information
        encoded as {RGB} triples.

        {Image}s are usually taken from the real world via a digital
        camera, {frame grabber} or {scanner}.

        See also {image formats}, {image processing}.

        (1994-10-21)

        2. <mathematics> The image (or range) of a {function} is the
        set of values of that function applied to all elements of its
        {domain}.  So, if f : D -> C then the set f(D) = { f(d) | d in
        D } is the image of D under f.  The image is a subset of C,
        the {codomain}.

        (1994-10-21)

image formats

        <graphics, file format> There are many formats used to store
        {images} in files.  {GIF}, {TIFF} and {JPEG} are very common.
        Others are {BIFF}, {BMP}, {Clear}, {FITS}, {IFF}, {NFF},
        {OFF}, {PCX}, {PNG}, {TGA}, {XBM}.

        Some of these are documented on-line at the following sites:

        {The Graphics File Format Page
        (http://www.dcs.ed.ac.uk/~mxr/gfx/)}.
        {The NCSA file formats archive
        (ftp://ftp.ncsa.uiuc.edu/misc/file.formats/graphics.formats)}.
        {The Avalon repository
        (ftp://avalon.viewpoint.com/pub/format_specs)}.

        [Others?]

        (1997-08-07)

image map

        <World-Wide Web> An image in an {HTML} document with "hot
        spots" which when clicked on in a suitable {browser}, act as
        {anchors} or links to other information.  For example, an
        image of a map of the world might provide links to resources
        related to different countries.  Clicking on a country would
        take the user to the relevant information.

        [Documentation URL?]

        (1995-12-05)

image processing

        <graphics> Computer manipulation of {images}.  Some of the
        many {algorithms} used in image processing include
        {convolution} (on which many others are based), {FFT}, {DCT},
        {thinning} (or {skeletonisation}), {edge detection} and
        {contrast enhancement}.  These are usually implemented in
        {software} but may also use special purpose {hardware} for
        speed.

        Image processing contrasts with {computer graphics}, which is
        usually more concerned with the generation of artificial
        images, and {visualisation}, which attempts to understand
        (real-world) data by displaying it as an artificial image
        (e.g. a graph).  Image processing is used in {image
        recognition} and {computer vision}.

        {Silicon Graphics} manufacture {workstations} which are often
        used for image processing.  There are a few programming
        languages designed for image processing, e.g. {CELIP}, {VPL}.

        See also {Pilot European Image Processing Archive}.

        {Usenet} newsgroup: {news:sci.image.processing}.

        [Other algorithms, languages?  FAQ?]

        (1995-04-12)

image recognition

        <graphics, artificial intelligence> The identification of
        objects in an {image}.  This process would probably start with
        {image processing} techniques such as {noise removal},
        followed by (low-level) {feature extraction} to locate lines,
        regions and possibly areas with certain textures.

        The clever bit is to interpret collections of these shapes as
        single objects, e.g. cars on a road, boxes on a conveyor belt
        or cancerous cells on a microscope slide.  One reason this is
        an {AI} problem is that an object can appear very different
        when viewed from different angles or under different lighting.
        Another problem is deciding what features belong to what
        object and which are background or shadows etc.  The human
        visual system performs these tasks mostly unconsciously but a
        computer requires skillful programming and lots of processing
        power to approach human performance.

        (1997-07-20)

imaging

        <graphics> The production of graphic {images}, either from a
        video camera or from digitally generated data (see
        {visualisation}), or the recording of such images on
        microfilm, videotape or laser disk.

        See also {scanner}.

        (1997-07-20)

Imago Europe plc

        A UK {Internet} provider.  There sevice is called {Imago
        On-line}.  E-mail: <info@imago.com>.

Imago On-line

        An {Internet} {electronic mail} and {news} service in the
        United Kingdom provided by {Imago Europe} plc.

        A one year subscription to the service costs just seventy five
        pounds plus VAT and offers {dial-up} access with a {graphical
        user interface} for users of {Macintosh} and {Microsoft
        Windows} {PC}s and the {Apple Newton} {MessagePad} {PDA}
        family.

imake

        A tool which generates {Makefile}s from a template, a set of
        {cpp} {macro}s, and a per-directory input file called an
        Imakefile.  This allows machine dependencies (such has
        compiler options, alternate command names, and special make
        rules) to be kept separate from the descriptions of the
        various items to be built.

        imake is distributed with, and used extensively by, the {X
        Window System}.

        (1995-02-21)

IMAO

        {IMHO}

IMAP

        {Internet Message Access Protocol}

imc

        A {REXX} {interpreter} for {SunOS}.  Version 1.3.

        {(ftp://rexx.uwaterloo.ca/pub/freerexx/imc/rexx-imc-1.3.tar.Z)}

IMHO

        <chat> (From SF fandom via {Usenet}) In My Humble Opinion.
        Also seen in variant forms such as IMO, IMNSHO (In My
        Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).

        (1998-09-24)

IML

        {Initial Microprogram Load}

immediate version

        {child version}

Imminent Death Of The Net Predicted!

        <messaging> Since {Usenet} first got off the ground in
        1980-81, it has grown exponentially, approximately doubling in
        size every year.  On the other hand, most people feel the
        {signal-to-noise ratio} of {Usenet} has dropped steadily.
        These trends led, as far back as mid-1983, to predictions of
        the imminent collapse (or death) of the net.  Ten years and
        numerous doublings later, enough of these gloomy
        prognostications have been confounded that the phrase
        "Imminent Death Of The Net Predicted!" has become a running
        joke, hauled out any time someone grumbles about the {S/N
        ratio} or the huge and steadily increasing volume, or the
        possible loss of a key node or link, or the potential for
        lawsuits when ignoramuses post copyrighted material etc.

        (1998-09-24)

IMNSHO

        {IMHO}

IMO

        {IMHO}

IMP

        1. <language> {IMProved Mercury autocode}.

        2. <language> An extensible dialect of {ALGOL 60}, for {CDC
        1604}.

        ["Experience with an Extensible Language", Edgar T. Irons,
        CACM 13(1):31-39, Jan 1970].

        3. <language> {Interpretive Menu Processor}.

        4. <language> {IMPlementation language}.

        5. <networking> {Interface Message Processor}.

        (1996-04-07)

impact printer

        <printer> The earlier, noisier kind of {printer} where part of
        the mechanism comes into contact with the paper.  The term
        would only be only used in contrast to "{non-impact printer}".
        Examples include {line printer}, {daisy wheel printer}, {golf
        ball printer}, {dot matrix printer}, {Braille printer}.

        (1998-10-13)

imperative language

        {procedural language}

Imperial Software Technology

        <company> A {software engineering} company which emerged from
        {Imperial College} in about 1982.  It enjoys a world-wide
        reputation for technical excellence as a software product and
        technology provider in the Open Systems market.  Its flagship
        product is {X-Designer}, the award-winning {graphical user
        interface builder}.  It also has considerable expertise in the
        {Z} language and {Formal Methods}.

        {Home (http://www.ist.co.uk/)}

        (1995-11-23)

IMPlementation language

        <language> (IMP) An extension of {B} with {floating-point}
        operations, developed by W. Davidsen
        <davidsen@ariel.crd.ge.com> in 1970 for the {GE 600}.  It was
        also {cross-compile}d to {VAX} and {Intel 8080}.

        (1996-04-07)

implicit parallelism

        A feature of a programming language for a {parallel
        processing} system which decides automatically which parts to
        run in parallel.

        The best way of providing implicit parallelism is still an
        active research topic.  The problem is to generate the right
        number of parallel tasks of the right size (or
        "{granularity}").  Too many tasks and the system gets bogged
        down in house-keeping, or memory for waiting tasks runs out,
        too few tasks and processors are left idle.

        The best performance is usually achieved with {explicit
        parallelism} where the the programmer can annotate his program
        to indicate which parts should be executed as independent
        parallel tasks.

        (1995-02-16)

implicit type conversion

        <programming> (Or "coercion") The abilty of some {compilers}
        to automatically insert {type} conversion {functions} where an
        expression of one type is used in a context where another type
        is expected.

        A common example is coercion of {integers} to {reals} so that
        an expression like sin(1) is compiled as sin(integerToReal(1))
        where sin is of type Real -> Real.

        A coercion is usually performed automatically by the compiler
        whereas a {cast} is an {explicit type conversion} inserted by
        the programmer.

        See also {subtype}.

        (1997-07-28)

implies

        <logic> (=> or a thin right arrow) A binary {Boolean} function
        and {logical connective}.  A => B is true unless A is true and
        B is false.  The {truth table} is

                A B | A => B
                ----+-------
                F F |   T
                F T |   T
                T F |   F
                T T |   T

        It is surprising at first that A => B is always true if A is
        false, but if X => Y then we would expect that (X & Z) => Y
        for any Z.

        (1995-09-30)

IMProved Mercury autocode

        <language> (IMP) A version of {Autocode} used to program the
        {Edinburgh Multi Access System} (EMAS), one of the first
        {operating systems} written in a {high-level language},
        apparently predating {Unix}.

        Luis Damas' {Prolog} {interpreter} in IMP for EMAS led to
        {C-Prolog}.

        [Papers in J. {British Computer Society}].

        (1996-04-07)

IMR

        {Internet Monthly Report}

IMS

        {Information Management System}

IMS 6100

        {Intersil 6100}

Imsai

        <company> One of the companies that made very early
        {microprocessor} systems.

        [Where?  When?  Who?  What?]

        (1995-05-12)

IMS/Data Base

        <database> (IMS/DB) A hierarchical high performance {database}
        for {IBM} {mainframes}, part of {IMS}.  IMS/DB is implemented
        on top of {VSAM} and uses its underlying data structures.

        (1999-01-11)

IMS/Data Communications

        <database> (IMS/DC) The {teleprocessing monitor}/{transaction
        processing} sytem in {IMS} from {IBM}.

        (1999-01-11)

IMSE

        {Integrated Modelling Support Environment}

IMTC

        {International Multimedia Teleconferencing Consortium}

in

        <networking> The {country code} for India.

        (1999-01-27)

Ina Jo

        [FDM?]  ["The Ina Jo Specification Language Reference Manual",
        J.  Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985].

inc

        /ink/ increment, i.e. increase by one.  Especially used by
        {assembly} programmers, as many assembly languages have an
        "inc" {mnemonic}.

        Antonym: {dec}.

incantation

        Any particularly arbitrary or obscure command that one must
        mutter at a system to attain a desired result.  Not used of
        passwords or other explicit security features.  Especially
        used of tricks that are so poorly documented that they must be
        learned from a {wizard}.  "This compiler normally locates
        initialised data in the data segment, but if you {mutter} the
        right incantation they will be forced into text space."

include

        [{Usenet}] 1. To duplicate a portion (or whole) of another's
        message (typically with attribution to the source) in a reply
        or followup, for clarifying the context of one's response.
        See the discussion of inclusion styles under "Hacker Writing
        Style".

        2. [{C}] "#include <disclaimer.h>" has appeared in {sig
        block}s to refer to a notional "standard {disclaimer} file".

include war

        Excessive multi-leveled including within a discussion
        {thread}, a practice that tends to annoy readers.  In a forum
        with high-traffic newsgroups, such as {Usenet}, this can lead
        to {flame}s and the urge to start a {kill file}.

inclusive

        <theory> In {domain theory}, a {predicate} P : D -> Bool is
        inclusive iff

                For any {chain} C, a subset of D, and
                for all c in C,
                P(c) => P(lub C)

        In other words, if the predicate holds for all elements of an
        increasing sequence then it holds for their {least upper
        bound}.

        ("lub is written in {LaTeX} as {\sqcup}).

        (1995-02-03)

incomparable

        <mathematics> Two elements a, b of a set are incomparable
        under some relation <= if neither a <= b, nor b <= a.

        (1995-09-21)

incremental analysis

        <testing> Partial analysis of an incomplete product to allow
        early feedback on its development.

        (1996-05-22)

incremental backup

        A copy of all files which have changed since the date of some
        previous backup.  The first backup of a file system should
        include all files.  Call this level 0.  The next backup could
        also be a full level 0 backup but it is usually much quicker
        to do a level 1 backup which will include only those files
        which have changed since the level 0 backup.  Together the
        level 0 and level 1 backups will include the latest version of
        every file.  Level 1 backups can be made until, say, the
        backup tape is nearly full, after which we can switch to level
        2.  Each level includes those files which have changed since
        the last backup at a lower level.  The more levels you use,
        the longer it will take to restore the latest version of a
        file (or all files) if you don't know when it was last
        modified.

incremental constraint solver

        A system in which a {constraint solver} is given {constraint}s
        one at a time by an {inference engine} (as is found in
        {Prolog}).  The solver adds the new constraint to an initially
        empty set of solved constraints.  If the new constraint is
        consistent with the solved constraints it will be added to the
        set.  If it was inconsistent, the inference engine
        {backtrack}s.  This is the basis of {Constraint Logic
        Programming}.

        (1994-11-01)

Incremental Prototyping Technology for Embedded Realtime Systems

        <project> An {Esprit} project.

        [Partners?  Results?]

        (1998-11-27)

[incr Tcl]

        <language> An extension of {Tcl} that adds {classes} and
        {inheritence}.

        The name is a pun on {C++} - an {object-oriented} extension of
        {C} - [incr variable] is the Tcl {syntax} for adding one to a
        variable.

        [Origin?  Availability?]

        (1998-11-27)

indent style

        <programming> The rules one uses to indent code in a readable
        fashion.  There are four major {C} indent styles, described
        below; all have the aim of making it easier for the reader to
        visually track the {scope} of control constructs.  The
        significant variable is the placement of "{" and "}" with
        respect to the statement(s) they enclose and to the guard or
        controlling statement ("if", "else", "for", "while", or "do")
        on the block, if any.

        "K&R style" - Named after Kernighan & Ritchie, because the
        examples in {K&R} are formatted this way.  Also called "kernel
        style" because the {Unix} {kernel} is written in it, and the
        "{One True Brace Style}" (abbreviation 1TBS) by its partisans.
        The basic indent shown here is eight spaces (or one tab) per
        level; four spaces are occasionally seen, but are much less
        common.

         if (cond) {
                <body>
         }

        "Allman style" - named after Eric Allman, a Berkeley hacker
        who wrote a lot of the {BSD} utilities in it (it is sometimes
        called "BSD style").  Resembles normal indent style in
        {Pascal} and {ALGOL}.  Basic indent per level shown here is
        eight spaces, but four spaces are just as common (especially
        in C++ code).

         if (cond)
         {
                <body>
         }

        "Whitesmiths style" - popularised by the examples that came
        with {Whitesmiths C}, an early commercial C compiler.  Basic
        indent per level shown here is eight spaces, but four spaces
        are occasionally seen.

         if (cond)
                {
                <body>
                }

        "GNU style" - Used throughout {GNU} {EMACS} and the {Free
        Software Foundation} code, and just about nowhere else.
        Indents are always four spaces per level, with "{" and "}"
        halfway between the outer and inner indent levels.

         if (cond)
          {
            <body>
          }

        Surveys have shown the Allman and Whitesmiths styles to be the
        most common, with about equal shares.  K&R/1TBS used to be
        nearly universal, but is now much less common.  The opening
        brace tends to get lost against the right parenthesis of the
        guard part in an "if" or "while", which is a {Bad Thing}.
        Defenders of 1TBS argue that any putative gain in readability
        is less important than their style's relative economy with
        vertical space, which enables one to see more code on one's
        screen at once.  Doubtless these issues will continue to be
        the subject of {holy wars}.

        (1995-07-24)

Independent Logical File

        <database> (ILF) One kind of {dynamic database management
        system}.

        Examples of ILF databases are {INQUIRE}, {ADABAS}, {NOMAD},
        {FOCUS} and {DATACOM}.

        [More details?]

        (1998-10-07)

Independent Verification and Validation

        <testing> (IV&V) The verification and validation of a software
        product by an organisation that is both technically and
        managerially separate from the organisation responsible for
        developing the product.

        (1996-12-27)

index

        (Plural "indices" or "indexes")

        1. <programming> A number used to select an element of a list,
        vector, {array} or other sequence.  Such indices are nearly
        always non-negative integers but see {associative array}.

        2. <database> See {inverted index}.  [Other kinds?]

        3. <World-Wide Web> A {search engine}.

        4. <World-Wide Web> A {subject index}.

        4. <jargon> See {coefficient of X}.

        (1997-04-09)

Index Data

        <company> A Danish company who have released a lot of {ANSI
        Z39.50} related source under {GPL}.

        {Home (http://130.228.5.168)}.

        (1996-07-22)

Indexed Sequential Access Method

        (ISAM) A file access method supporting both sequential and
        indexed access.

        [Details?  Origin?]

        (1995-03-28)

indices

        <spelling> A plural of "{index}".

indirect address

        <processor> An {addressing mode} found in many processors'
        {instruction sets} where the instruction contains the address
        of a memory location which contains the address of the operand
        (the "{effective address}") or specifies a {register} which
        contains the effective address.  In the first case
        (indirection via memory), accessing the operand requires two
        memory accesses - one to fetch the effective address and
        another to read or write the actual operand.  Register
        indirect addressing requires only one memory access.

        An indirect address may be indicated in {assembly language} by
        an operand in parentheses, e.g. in {Motorola 68000} assembly

                MOV D0,(A0)

        writes the contents of register D0 to the location pointed to
        by the address in register A0.

        Indirect addressing is often combined with pre- or post-
        increment or decrement addressing, allowing the address of the
        operand to be increased or decreased by one (or some specified
        number) either before or after using it.

        (1994-11-07)

indirect addressing

        {indirect address}

indirection

        <programming> Manipulating data via its address.  Indirection
        is a powerful and general programming technique.  It can be
        used for example to process data stored in a sequence of
        consecutive memory locations by maintaining a {pointer} to the
        current item and incrementing it to point to the next item.

        Indirection is supported at the {machine language} level by
        {indirect addressing}.  Many processor and {operating system}
        architectures use {vectors} which are also an instance of
        indirection, being locations which hold the address of a
        routine to handle a particular event.  The event handler can
        be changed simply by pointing the vector at a new piece of
        code.

        {C} includes operators "&" which returns the address of a
        {variable} and its inverse "*" which returns the variable at a
        given address.

        (1997-02-06)

induction

        <logic> A method of proving statements about {well-ordered
        set}s.  If S is a well-ordered set with ordering "<", and we
        want to show that a property P holds for every element of S,
        it is sufficient to show that, for all s in S,

                IF for all t in S, t < s => P(t) THEN P(s)

        I.e. if P holds for anything less than s then it holds for s.
        In this case we say P is proved by induction.

        The most common instance of proof by induction is induction
        over the {natural number}s where we prove that some property
        holds for n=0 and that if it holds for n, it holds for n+1.

        (In fact it is sufficient for S to be a {well-founded}
        {partial order}).

        (1995-03-25)

inductive inference

        {grammatical inference}

inductive relation

        A relation R between {domain}s D and E is inductive if for all
        {chain}s {d1 .. dn} in D and {e1 .. en} in E,

                For all i, di R ei  =>  lub(d) R lub(e)

Industrial Programming, Inc.

        <company> The company which developed {MTOS}.

        {Home (http://www.ipi.com)}.

        E-mail: <info@ipi.com>.

        Telephone: +1 (516) 938 6600.  Address: 100 Jericho
        Quadrangle, Jericho, NY 11753, USA.

        (1997-07-23)

Industrial Robot Language

        <language, robotics> (IRL) A {high-level language} for
        programming industrial {robots}.

        ["IRL, Industrial Robot Language", DIN 66312, Beuth-Verlag
        1992].

        (1996-11-28)

Industry Standard Architecture

        <architecture, standard> (ISA) A {bus} {standard} for {IBM
        compatibles} that extends the {XT bus architecture} to 16
        bits.  It also allows for {bus mastering} although only the
        first 16 {MB} of {main memory} is available for direct access.
        In reference to the XT bus architecture it is sometimes
        referred to as "AT bus architecture".

        Compare {EISA}, {MCA}.

        (1996-06-25)

inetd

        <networking, tool> Berkeley daemon program that listens for
        connection requests or messages for certain ports and starts
        server programs to perform the services associated with those
        ports.  Sometimes known as netd.

        {Unix manual page}: inetd(8).

        (1995-03-20)

inews

        <messaging, application> A {Unix} program for posting {Usenet}
        news articles, written by Rich $alz <rsalz@uunet.uu.net> for
        {InterNetNews}.  inews reads an article (perhaps with headers)
        from a file or {standard}, adds some {header}s and possibly a
        {signature}, and, if the article passes some consistency
        checks (too much quoting, non-existent {newsgroup}) then inews
        sends the article to the local news {server} for distribution.

        If an unapproved posting is made to a {moderated} newsgroup,
        inews will try to send the article to the moderator (specified
        in a configuration file) by {electronic mail}.

        Version: 1.25, dated 1993/03/18.

        {Unix manual page}: inews(1).

        (1996-02-27)

infant mortality

        <hardware> It is common lore among hackers (and in the
        electronics industry at large) that the chances of sudden
        hardware failure drop off exponentially with a machine's time
        since first use (that is, until the relatively distant time at
        which enough mechanical wear in I/O devices and
        thermal-cycling stress in components has accumulated for the
        machine to start going senile).  Up to half of all chip and
        wire failures happen within a new system's first few weeks;
        such failures are often referred to as "infant mortality"
        problems (or, occasionally, as "sudden infant death
        syndrome").

        See {bathtub curve}, {burn-in period}.

        (1995-03-20)

infeasible path

        {dead code}

inference

        <logic> The logical process by which new facts are derived
        from known facts by the application of {inference rule}s.

        See also {symbolic inference}, {type inference}.

        (1995-03-20)

inference engine

        A program that infers new {fact}s from known facts using
        {inference rule}s.  Commonly found as part of a {Prolog}
        {interpreter}, {expert system} or {knowledge based system}.

        (1994-11-01)

inference rule

        A procedure which combines known facts to produce ("infer")
        new facts.  For example, given that

                1. Socrates is a man and that
                2. all men are motal,

        we can infer that Socrates is mortal.  This uses the rule
        known as "modus ponens" which can be written in {Boolean
        algebra} as

                (A & A => B) => B

        (if proposition A is true, and A implies B, then B is true).

        Or given that,

                1. Either Denis is programming or Denis is sad and
                2. Denis is not sad,

        we can infer that Denis is programming.  This rule can be
        written

                ((A OR B) & not B) => A

        (If either A is true or B is true (or both), and B is false,
        then A must be true).

        (1994-10-31)

infimum

        {greatest lower bound}

infinite

        <mathematics> 1. Bigger than any {natural number}.  There are
        various formal set definitions in {set theory}: a set X is
        infinite if

        (i) There is a bijection between X and a proper subset of X.

        (ii) There is an injection from the set N of natural numbers
        to X.

        (iii) There is an injection from each natural number n to X.

        These definitions are not necessarily equivalent unless we
        accept the {Axiom of Choice}.

        2. The length of a line extended indefinitely.

        See also {infinite loop}, {infinite set}.

        (1995-03-29)

infinite loop

        <programming> (Or "endless loop") Where a piece of program is
        executed repeatedly with no hope of stopping.  This is nearly
        always because of a {bug}, e.g. if the condition for exiting
        the loop is wrong, though it may be intentional if the program
        is controlling an {embedded system} which is supposed to run
        continuously until it is turned off.  The programmer may also
        intend the program to run until interrupted by the user.  An
        endless loop may also be used as a last-resort error handler
        when no other action is appropriate.  This is used in some
        {operating system} kernels following a {panic}.

        A program executing an infinite loop is said to {spin} or
        {buzz} forever and goes {catatonic}.  The program is "wound
        around the axle".

        A standard joke has been made about each generation's exemplar
        of the ultra-fast machine: "The Cray-3 is so fast it can
        execute an infinite loop in under 2 seconds!"

        See also {black hole}, {recursion}, {infinite loop}.

        (1996-05-11)

Infinite-Monkey Theorem

        <humour> "If you put an {infinite} number of monkeys at
        typewriters, eventually one will bash out the script for
        Hamlet."  (One may also hypothesise a small number of monkeys
        and a very long period of time.)  This theorem asserts nothing
        about the intelligence of the one {random} monkey that
        eventually comes up with the script (and note that the mob
        will also type out all the possible *incorrect* versions of
        Hamlet).  It may be referred to semi-seriously when justifying
        a {brute force} method; the implication is that, with enough
        resources thrown at it, any technical challenge becomes a
        {one-banana problem}.

        This theorem was first popularised by the astronomer Sir
        Arthur Eddington.  It became part of the idiom through the
        classic short story "Inflexible Logic" by Russell Maloney, and
        many younger hackers know it through a reference in Douglas
        Adams's "Hitchhiker's Guide to the Galaxy".

        (1996-05-11)

infinite set

        <mathematics> A set with an infinite number of elements.
        There are several possible definitions, e.g.

        (i) ("Dedekind infinite") A set X is infinite if there exists
        a {bijection} (one-to-one mapping) between X and some proper
        subset of X.

        (ii) A set X is infinite if there exists an {injection} from N
        (the set of {natural number}s) to X.

        In the presence of the {Axiom of Choice} all such definitions
        are equivalent.

        (1995-03-27)

infinity

        1. <mathematics> The size of something {infinite}.

        Using the word in the context of sets is sloppy, since
        different {infinite set}s aren't necessarily the same size
        {cardinality} as each other.

        See also {aleph 0}

        2. <programming> The largest value that can be represented in
        a particular type of variable ({register}, memory location,
        data type, whatever).

        See also {minus infinity}.

        (1994-11-18)

infix notation

        <language> One of the possible orderings of {functions} and
        {operands}: in infix notation the functions are placed between
        their operands, such as "1+2".  Although infix notation is
        limited to binary functions most languages mix infix notation
        with {prefix} or {postfix} notation, as a form of {syntactic
        sugar}.

        (1997-01-17)

infix syntax

        {infix notation}

inflate

        {deflate}

INFN

        Istituto Nazionale di Fisica Nucleare: an Italian State
        research organisation.

Infobahn

        (After the German "Autobahn") {Information Superhighway}.

Info BASIC

        Variant of {Pick BASIC} used with {PRIME}'s {PRIMOS}.

infobot

        <chat> A {bot} that serves as a common database of information
        (often noteworthy {URL}s) for users on a {chat} system.
        Infobots often have a simple {chatbot interface}, responding
        to key-phrases, as well as to direct queries.

        Here, in a real conversation, the bot Purl's first response is
        triggered by the phrase "just tell me", and its second
        response is triggered by being directly asked "perlfunc?":

         <eesh> can someone tell me what: $num9 =
                substr($number,9,1); means

         <Tkil> eesh -- man perlfunc, look at "substr".

         <eesh> just tell me

         <purl> Didn't your momma ever tell you, "Go
                look it up in the dictionary"?!

         <Tkil> eesh -- no.  that's all we'll tell
                you.  read the documentation.

         <Tkil> eesh -- if you haven't man pages or
                perldoc, you can read them on the 'net.

         <Tkil> purl, perlfunc?

         <purl> well, perlfunc is Perl builtin
                functions, at man perlfunc or
                http://www.perl.com/CPAN-local/doc/manual/html/pod/perlfunc.htm
l

        {(http://www.cs.cmu.edu/~lenzo/infobot.html/)}.

        (1998-10-30)

Informatics Corporation

        <company> Renamed to {Sterling Software Corp}.

        [When?]

        (1998-10-30)

Information Algebra

        Theoretical formalism for DP, never resulted in a language.
        Language Structure Group of CODASYL, ca. 1962.  Sammet 1969,
        709.

Information Appliance

        <hardware> (IA) A consumer device that performs only a few
        targeted tasks and is controlled by a simple {touch-screen}
        interface or push buttons on the device's enclosure.

        [How does this differ from a {PDA}?]

        (1998-02-24)

Information Builders

        Distributors of {LEVEL5 OBJECT}.  Telephone +1 800 969 INFO.

Information Engineering Facility

        (IEF) A {CASE} tool from {Texas Instruments} which generates
        code from graphical business process models.

        (1994-12-22)

information highway

        {information superhighway}

Information Innovation

        A group of companies with offices in Amsterdam and New York
        which acts as an information filter for the {World-Wide Web}.
        They analyse what happens in the Web community and organise
        the Web's information so that it is accessible and efficient
        to use.

        Information Innovation provides:

        "The Management Guide" - a guide for managers in the
        information age.  The Guide consists of 22 parts, each
        concentrating on a particular technology or issue facing
        managers.  Topics range from {Artificial Intelligence} and
        Telecommunications to Finance and Marketing.  Each part
        contains references to additional valuable information,
        including {CD ROM}s, conferences, magazines, articles and
        books.

        "The Hypergraphic Matrix" - a "hypergraphic" matrix of 250
        graphics discussing the interrelationships between technology,
        change, business functions and specific industries.

        "Dictionary" - the largest Internet dictionary on management
        and technology.

        "The Delphi Oracle" - a comprehensive guide to the latest
        management ideas and issues.  Over 500 articles and books have
        been read, analysed, rated and catalogued.

        "Management Software" - a guide to software which is useful to
        managers.  Both Web software, Internet software and commecial
        products are included in this guide.

        "The Web Word" - an information service about the Web.  It
        includes a regular newsletter and databases about Web
        resources, news, interviews with Web personalities and, of
        course, the most comprehensive guide to sites.

        "Web Bibliography" - a guide to the latest Web information
        printed.  Over 150 articles, magazines, market research
        reports and books are catalogued.

        "The Power Launch Pad" - our own list of useful sites on the
        Web.  Also includes links to our own lists of special subjects
        such as Finance, Telecommunications, Manufacturing, Technology
        and so forth.

        {(http://www.euro.net/innovation/WelcomeHP.html)}.  E-mail:
        <innovation@euronet.nl>.

        (1994-10-27)

information island

        <jargon> A body of information (i.e. electronic files) that
        needs to be shared but has no network connection.

        (1995-03-16)

Information Management

        The planning, budgeting, control and exploitation of the
        information resources in an organisation.  The term
        encompasses both the information itself and the related
        aspects such as personnel, finance, marketing, organisation
        and technologies and systems.  Information Managers are
        responsible for the coordination and integration of a wide
        range of information handling activities within the
        organisation.  These include the formulation of corporate
        information policy, design, evaluation and integration of
        effective information systems and services, the exploitation
        of IT for competitive advantage and the integration of
        internal and external information and data.

Information Management System

        <database> (IMS, IMS/VS, IMS/ESA) A database system from {IBM}
        consisting of {IMS/Data Base} and {IMS/Data Communications}.

        (1999-01-11)

Information Processing Language

        (IPL) Said to be the first list-processing language, also the
        first language to support {recursion}.  Written by Allen
        Newell, J.C. Shaw and H. Simon at Carnegie ca. 1956.  It was
        very low level.

        Versions: IPL-I (never implemented), IPL-II (1957 for
        {JOHNNIAC}), IPL-III (existed briefly), IPL-IV, IPL-V (1958,
        for {IBM 650}, {IBM 704}, {IBM 7090}, many others.  Widely
        used), IPL-VI.

        [Sammet 1969, pp. 388-400].

        ["Information Processing Language-V Manual", A. Newell ed, P-H
        1965].

        (1994-11-04)

Information Resource Management

        (IRM) A philosophical and practical approach to managing
        government information.  Information is regarded as a valuable
        resource which should be managed like other resources, and
        should contribute directly to accomplishing organisational
        goals and objectives.  IRM provides an integrated view for
        managing the entire life-cycle of information, from
        generation, to dissemination, to archiving and/or destruction,
        for maximising the overall usefulness of information, and
        improving service delivery and program management.

        IRM views information and {information technology} as an
        integrating factor in the organisation, that is, the various
        organisational positions that manage information are
        coordinated and work together toward common ends.  Further,
        IRM looks for ways in which the management of information and
        the management of information technology are interrelated, and
        fosters that interrelationship and organisational integration.

        IRM includes the management of (1) the broad range of
        information resources, e.g., printed materials, electronic
        information, and microforms, (2) the various technologies and
        equipment that manipulate these resources, and (3) the people
        who generate, organise, and disseminate those resources.
        Overall the intent of IRM is to increase the usefulness of
        government information both to the government and to the
        public.

        [Gary D. Blass et al. "Finding Government Information: The
        Federal Information Locator System (FILS)", Government
        Information Quarterly, JAI Press, Inc., Greenwich,
        Connecticut. Vol. 8, No. 1, pp.  11-32. 1991].

        (1995-11-12)

information superhighway

        (Or "Infobahn", "Info Strada") The name coined by US
        Vice-president Al Gore in the early 1990s for the emerging
        high-speed global communications network capable of carrying
        voice, data, video and other services around the world.  These
        services will use satellite, copper cable, {optical fibre},
        cellular telecommunications and be accessible via {set-top
        box}es or suitably equipped computers.

        {A White House briefing
        (http://clinton.ai.mit.edu/white-house-publications/1993/12/1993-12-20-
background-on-information-superhighway.text)}.

        See also {National Information Infrastructure}.

        (1994-11-02)

Information Systems Factory

        (ISF) An equivalent to an {SEE}.

Information Technology Infrastructure Library

        (ITIL) A method of organising the system and network
        management departments of large organisations.  ITIL defines
        the (work) processes involved and the interfaces between them.

        (1995-06-27)

Informix

        A {relational DBMS} vendor.

InfoSeek

        <company> A company providing InfoSeek Net Search, a free
        {World-Wide Web} search service which, in August 1995, indexed
        the full text of over 400,000 web pages.  Net Search was rated
        as the fourth most popular site on the web by Interactive Age
        magazine.

        The also sell a commercial service, InfoSeek Search, that
        offers access to all the {Usenet} {news groups}, daily
        newswires, business and computer periodicals, and more.

        {Home (http://www2.infoseek.com/)}

        (1995-11-09)

InfoStreet, Inc.

        <company> An Internet consulting and development company
        dedicated to assisting companies in establishing an Internet
        presence.  InfoStreet develope Internet strategies, design and
        create web pages, and host and maintain {web sites}.

        InfoStreet, has been recognized by PC/Computing as the "Best
        of the Top Home Page Services" (August 1996) and has been
        featured in Netguide magazine and the Wiley and Son's
        Electronic Marketing book.

        {Home (http://www.InfoStreet.com/)}.

        {Home page hosting service (http://www.instantweb.com)}.

        (1997-01-30)

InfoWord Office

        <tool> A suite of applications for {Unix} including a {word
        processor}, {spreadsheet} and {database}.

        {Light Infocon S.A. (http://www.light.com.br/)}.

        (1998-07-21)

infrared

        <electronics> (IR) Electromagnetic waves in the frequency
        range just below visible light corresponding to radiated heat.
        IR waves can be generated by a kind of {LED} and are often
        used for remote controls for televisions etc. and in some
        {docking stations}.

        (1997-01-30)

infrastructure

        Basic support services for computing, particularly national
        networks.

        See also {information superhighway}.

        (1995-06-27)

Inglish

        <games> An English-like language used for {Adventure} games
        like "The Hobbit".  Inglish could distinguish between "take
        the rope and axe" and "take the money and run".

        (1995-06-27)

INGRES

        A {relational DBMS} vendor.

inheritance

        In {object-oriented programming}, the ability to derive new
        {class}es from existing classes.  A derived class ("subclass")
        inherits the instance variables and {method}s of the base
        class ("superclass"), and may add new instance variables and
        methods.  New methods may be defined with the same names as
        those in the base class, in which case they override the
        original one.

        For example, bytes might belong to the class of integers for
        which an add method might be defined.  The byte class would
        inherit the add method from the integer class.

        See also {multiple inheritance}.

initgame

        <games> /in-it'gaym/ [IRC] An {IRC} version of the venerable
        trivia game "20 questions", in which one user changes his
        {nick} to the initials of a famous person or other named
        entity, and the others on the channel ask yes or no questions,
        with the one to guess the person getting to be "it" next.  As
        a courtesy, the one picking the initials starts by providing a
        4-letter hint of the form sex, nationality, life-status,
        reality-status.  For example, MAAR means "Male, American,
        Alive, Real" (as opposed to "fictional").  Initgame can be
        surprisingly addictive.  See also {hing}.

initialise

        <programming> To give a {variable} its first value.  This may
        be done automatically by some languages or it may require
        explicit code by the programmer.  Some languages allow
        initialisation to be combined with variable definition,
        e.g. in {C}:

                int i = 0;

        Failing to initialise a variable before using it is a common
        programming error, but one which compilers and automatic
        checkers like {lint} can easily detect.

        (1997-06-08)

Initial Microprogram Load

        <operating system> (IML) Loading {microcode} into microcode
        memory.

        (1997-08-31)

Initial Operational Test and Evaluation

        <testing> (IOT&E) The first phase of {operational test} and
        evaluation conducted on {pre-protectional} items,
        {prototypes}, or pilot production items and normally completed
        prior to the first major production decision.  Conducted to
        provide a valid estimate of expected system operational
        effectiveness and suitability.

        (1996-12-27)

Initial Program Load

        <operating system> (IPL) The procedure used to (re-)start a
        computer system by copying the {operating system} {kernel}
        into {main memory} and running it.  Part of the {boot
        sequence}.

        (1997-08-31)

Initial Program Loader

        <operating system> (IPL) A {bootstrap loader} which loads the
        part of an {operating system} needed to load the remainder of
        the operating system.

        (1997-08-31)

initiator

        {SCSI initiator}

injection

        1. <mathematics> A {function}, f : A -> B, is injective or
        one-one, or is an injection, if and only if

                for all a,b in A, f(a) = f(b) => a = b.

        I.e. no two different inputs give the same output (contrast
        many-to-one).  This is sometimes called an embedding.  Only
        injective functions have left inverses f' where f'(f(x)) = x,
        since if f were not an injection, there would be elements of B
        for which the value of f' was not unique.  If an injective
        function is also a {surjection} then is it a {bijection}.

        2. <reduction> An injection function is one which takes
        objects of type T and returns objects of type C(T) where C is
        some {type constructor}.  An example is

                f x = (x, 0).

        The opposite of an injection function is a {projection}
        function which extracts a component of a constructed object,
        e.g.

                fst (x,y) = x.

        We say that f injects its argument into the data type and fst
        projects it out.

        (1995-03-14)

inkjet printer

        <hardware, printer> A class of printer in which small ink
        droplets are sprayed electrostatically from a nozzle onto the
        paper.

        Inkjet printers are very quiet in comparison to {impact
        printer}s.

        A popular example is the {Olivetti} {BJ10}.

        (1995-03-14)

ink printer

        <printer> A {retronym} used by Blind users to refer to all
        printers which are not {Braille printers}, regardless of
        whether they actually use ink.

        (1998-10-13)

inline

        <programming> (Or "unfold") To replace a {function} call with
        an instance of the function's body.  {Actual argument}
        expressions are substituted for {formal parameters} as in
        {beta reduction}.  Inlining is usually done as a
        {compile-time} transformation.

        If done recklessly (e.g. attempting to inline a {recursive}
        function) the {compiler} will fail to terminate.  If done
        over-enthusiastically the code size may increase
        exponentially, e.g. if function f calls g twice, and g calls h
        twice and h is inlined in g which is inlined in f (in either
        order) then there will be four copies of h's body in f.

        See also {linear argument}, {unfold/fold}.

        (1994-11-03)

inline image

        <world-wide web> An image that appears within the body of a
        {web page}.  Most graphical {web browsers} can display both
        {GIF} and {JPG} images inline.  The {web browser} may give the
        user an option to turn off inline images, to speed up the
        display of web pages.
         
        Other {image formats} may have to be displayed in a separate 
        {window} and/or by another {application program}.       

        An inline image in a web page is achieved with the <IMG>
        {HTML} {tag}, which can take many attributes.

        (1999-08-25)

INMOS transputer

        {transputer}

inner join

        <database> (Commonly "join", but see also "{outer join}") A
        {relational database} operation which selects rows from two
        {tables} such that the value in one {column} of the first
        table also appears in a certain column of the second table.

        An example in {SQL}:

                select * from A, B
                where A.x = B.y

        The column names (x and y in this example) are often, but not
        necessarily, the same.

        (1998-11-23)

inner product

        <mathematics> In {linear algebra}, any linear map from a
        {vector space} to its {dual} defines a product on the vector
        space: for u, v in V and linear g: V -> V' we have gu in V' so
        (gu): V -> scalars, whence (gu)(v) is a scalar, known as the
        inner product of u and v under g.  If the value of this scalar
        is unchanged under interchange of u and v (i.e. (gu)(v) =
        (gv)(u)), we say the inner product, g, is symmetric.
        Attention is seldom paid to any other kind of inner product.

        An inner product, g: V -> V', is said to be positive definite
        iff, for all non-zero v in V, (gv)v > 0; likewise negative
        definite iff all such (gv)v < 0; positive semi-definite or
        non-negative definite iff all such (gv)v >= 0; negative
        semi-definite or non-positive definite iff all such (gv)v <=
        0.  Outside relativity, attention is seldom paid to any but
        positive definite inner products.

        Where only one inner product enters into discussion, it is
        generally elided in favour of some piece of syntactic sugar,
        like a big dot between the two vectors, and practitioners
        don't take much effort to distinguish between vectors and
        their duals.

        (1997-03-16)

InnovAda

        An {object-oriented} extension to {Ada}, said to be
        {Lisp}-like.  Implemented as an {Ada} {preprocessor}.

        (1994-11-03)

        [Where?  Who?  When?]

inode

        A data structure holding information about files in a {Unix}
        {file system}.  There is an inode for each file and a file
        is uniquely identified by the file system on which it
        resides and its inode number on that system.  Each inode
        contains the following information: the device where the inode
        resides, locking information, mode and type of file, the
        number of links to the file, the owner's user and group ids,
        the number of bytes in the file, access and modification
        times, the time the inode itself was last modified and the
        addresses of the file's blocks on disk.  A {Unix} directory is
        an association between file leafnames and inode numbers.  A
        file's inode number can be found using the "-i" switch to ls.

        {Unix manual page}: fs(5).

        See also /usr/include/ufs/inode.h.

Inprise Corporation

        <company> The company, known as Borland International,
        Inc. until 1998-04-29, that sells 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.

        In Febuary 1998 Borland bought {Visigenic Software, Inc.}.

        Quarterly sales $69M, profits $61M (Aug 1994).

        {Home (http://www.inprise.com/)}.

        {Borland (http://www.borland.com/)}.

        Headquarters: 100 Borland Way, Scotts Valley, CA, 95066, USA.
        Telephone: +1 (408) 431 1000.

        (1999-02-25)

Input

        {ALPHA}

input

        <architecture> {data} transferred from the outside world into
        a computer system via some kind of {input device}.

        Opposite: {output}.

        (1997-04-28)

input device

        <hardware> A {peripheral} used to transfer data from the
        outside world into a computer system.  Some input devices are
        operated directly by the user, e.g. {keyboard}, {mouse},
        {touch screen}, {joystick}, {digitising tablet}, microphone;
        others are sensors or transducers which convert external
        signals into data, e.g. using an {ananlog to digital
        converter} (this would also be true of a microphone).  Other
        kinds of inputs are really one half of a bidirectional link
        with another computer or storage device, e.g. {serial line},
        {SCSI} interface.

        (1996-11-03)

input/output

        <programming, operating system> (I/O) Communication between a
        computer and its users, its storage devices, other computers
        (via a {network}) or the outside world.  The devices the
        computer uses to do this are called "{peripherals}".

        (1999-02-05)

input/output redirection

        <operating system> In {Unix}, to send ouput from a {process}
        to different {file} or {device} or to another process via a
        {pipe}, or to have a process read its input from a different
        file, device or pipe.  Some other {operating systems} have
        similar facilities.

        To redirect input to come from a file instead of the keyboard,
        use "<":

                myprog < myfile

        Similarly to redirect output to a file instead of the screen:

                ls > filelist

        A pipe redirects the output of one process directly into the
        input of another

                who | wc -l

        A common misuse by beginners is

                cat myfile | myprog

        Which is more or less equivalent to "myprog < myfile" except
        that it introduces an extra unnecessary cat process and buffer
        space for the pipe.  Even the "<" is unnecessary with many
        standard Unix commands since they accept input file names as
        command line arguments anyway.

        Unix's concept of {standard input/output} and I/O redirection
        make it easy to combine simple processes in powerful ways and
        to use the same commands for different purposes.

        (1998-04-24)

inquiry/response system

        <business> Any computer system in which data is entered
        {offline} and processed in {batch} form, but information can
        be retrieved on-line.  An example is the checking of credit
        cards.

        ["Computer Information Systems for Business V", Thomas Dock
        and James C Wetherbe, West Publishing Company 1988].

        (1996-06-24)

INRIA

        {Institut National de Recherche en Informatique et Automatique}

insanely great

        ({Macintosh} community, from {Steve Jobs}; also {BSD Unix}
        people via {Bill Joy}) Something so incredibly {elegant} that
        it is imaginable only to someone possessing the most puissant
        of {hacker}-natures.

        (1994-12-06)

insertion sort

        <algorithm> A sorting {algorithm} that inserts each item in
        the proper place into an initially empty list by comparing it
        with each item in the list until it finds the new element's
        successor or the end of the list.

        Compare {bubble sort}.

        (1997-02-12)

INSIGHT

        A {simulation} and modeling language especially for health
        care problems.

        ["Simulation Modeling with INSIGHT", S.D. Roberts Proc 1983
        Winter Sim Conf, S.D. Roberts et al eds, pp.7-16].

        (1995-03-03)

Insignia Solutions, Inc.

        <company> /in-sig'nee-* s*-loosh'nz/ A leading provider of
        {cross-platform} compatibility software for desktop computers,
        including {Unix} {workstations}, {Macintosh}, {IBM PCs}, {X
        terminals}, {Windows terminals} and {network computers}.

        Insignia's {cross-platform} compatibility software allows
        users to run {Microsoft Windows} and {MS-DOS} {application
        programs} on different hardware {platforms}.  The company's
        technology has been specifically developed for {Digital},
        {HP}, {IBM}, {Motorola}, {NeXT}, {Silicon Graphics} and
        {Sun}/{SPARC} {workstations}, {X terminals}, {Java} desktops
        and {Apple Computer}'s {Power Macintosh} and {Motorola
        68000}-based computers.

        Insignia Solutions was founded in 1986 to develop software to
        enable users of non-{Intel} {Unix} computers to run {IBM PC}
        applications.  The company's first product, {SoftPC} 1.0 for
        Sun workstations, was introduced in 1988.  Also in 1988,
        Insignia shipped its first version of SoftPC for Apple
        Computer's Macintosh.  As the demand to run Windows and MS-DOS
        applications on non-Intel computers grew, Insignia Solutions
        signed {OEM} agreements with several companies including {Data
        General}, Digital, {Fujitsu}, HP, {Intergraph Corp.},
        Motorola, Silicon Graphics and Sun Microsystems.

        {Home Page (http://www.insignia.com/)}.

        (1997-06-23)

inspection

        <testing> A formal evaluation technique in which software
        {requirements}, design, or code are examined in detail by a
        person or group other than the author to detect faults,
        violations of development standards, and other problems.

        (1996-05-22)

installable file system

        <operating system> (IFS or "File System Driver", "FSD")) An
        {API} that allows you to extend {OS/2} to access files stored
        on disk in formats other than {FAT} and {HPFS}, and access
        files that are stored on a {network file server}.

        For example an IFS could provide programs running under OS/2
        (including DOS and Windows programs) with access to files
        stored under {Unix} using the {Berkeley fast file system}.

        The other variety of IFS (a "remote file system" or
        "redirector") allows file sharing over a {LAN}, e.g. using
        Unix's {Network File System} {protocol}.  In this case, the
        IFS passes a program's file access requests to a remote file
        server, possibly also translating between different file
        attributes used by OS/2 and the remote system.

        Documentation on the IFS API has been available only by
        special request from IBM.

        An IFS is structured as an ordinary 16-bit {DLL} with entry
        points for opening, closing, reading, and writing files, the
        swapper, file locking, and {Universal Naming Convention}.  The
        main part of an IFS that runs in {ring} 0 is called by the
        OS/2 {kernel} in the context of the caller's process and
        {thread}.  The other part that runs in ring 3 is a utility
        library with entry points for FORMAT, RECOVER, SYS, and
        CHKDSK.

        {EDM/2 article (http://www.edm2.com/0103/)}.

        (1999-04-07)

installed user base

        {user base}

installer

        <operating system> A {utility} program to ease the
        installation of another, probably larger, {application}.  It
        is also possible for {hardware} to have an installer accompany
        it, to install any low level {device drivers} required.

        The installer commonly asks the user to enter desired
        configuration options for the main program or hardware, and
        sets up various initialisation files accordingly, as well as
        copying the main program to a {hard disc}.

        Some badly designed operating systems require applications to
        provide an {uninstaller} because of the number of different
        files modified or created during the installation process.

        (1998-02-09)

instance

        <programming> An individual {object} of a certain {class}.
        While a class is just the type definition, an actual usage of
        a class is called "instance".  Each instance of a class can
        have different values for its {instance variables}, i.e. its
        {state}.

        (1998-03-06)

instance variable

        <programming> In {object-oriented programming}, one of the
        variables of a {class template} which may have a different
        value for each {object} of that {class}.  Instance variables
        hold the {state} of an object.

        (1998-01-16)

instantiate

        {instantiation}

instantiation

        <programming> Producing a more defined version of some object
        by replacing variables with values (or other variables).

        1. In {object-oriented programming}, producing a particular
        {object} from its {class template}.  This involves allocation
        of a structure with the types specified by the template, and
        initialisation of {instance variable}s with either default
        values or those provided by the class's {constructor}
        function.

        2. In {unification}, (as used in {logic programming}, {type
        checking} and {type inference}), binding a {logic variable}
        ({type variable}) to some value (type).

        (1995-03-28)

Institute for Global Communications

        (IGC) Provider of computer networking tools for international
        communications and information exchange.  The IGC Networks --
        PeaceNet, EcoNet, ConflictNet and LaborNet -- comprise the
        world's only computer communications system dedicated solely
        to environmental preservation, peace, and human rights.  New
        technologies are helping these worldwide communities cooperate
        more effectively and efficiently.

        Address: 18 De Boom Street, San Francisco, CA 94107 USA.  A
        division of the Tides Foundation, a 501(c)(3) tax-exempt
        organisation.  A founding member of the world-wide Association
        of Progressive Communications (APC).

        {Home (ftp://igc.apc.org)}

        E-mail: <support@igc.apc.org>.

        (1996-06-24)

Institute of Electrical and Electronics Engineers, Inc.

        (IEEE) The world's largest technical professional society,
        based in the USA.  Founded in 1884 by a handful of
        practitioners of the new electrical engineering discipline,
        today's Institute has more than 320,000 members who
        participate in its activities in 147 countries.  The IEEE
        sponsors technical conferences, symposia and local meetings
        worldwide, publishes nearly 25% of the world's technical
        papers in electrical, electronics and computer engineering and
        computer science, provides educational programs for its
        members and promotes standardisation.  Areas covered include
        aerospace, computers and communications, biomedical
        technology, electric power and consumer electronics.

        {Home (http://www.ieee.org/)}.
        {Gopher (gopher://gopher.ieee.org/)}.
        {(ftp://ftp.ieee.org/)}.

        E-mail file-server: <fileserver-help@info.ieee.org>.

        { IEEE Standards Process Automation (SPA) System
        (http://stdsbbs.ieee.org/)},
        {telnet (telnet:stdsbbs.ieee.org)} [140.98.1.11].

        (1995-03-10)

Institut National de Recherche en Informatique et Automatique

        <body> (INRIA) A French computer science research institute.

        (1996-06-24)

Instruction Address Register

        (IAR) The {IBM} name for {program counter}.

        The IAR can be accessed by way of a {supervisor} call in
        {supervisor state}, but cannot be directly addressed in
        {problem state}.

        (1995-03-21)

instruction mnemonic

        <programming> A word or acronym used in {assembly language} to
        represent a {binary} machine instruction {operation code}.
        Different processors have different {instruction set} and
        therefore use a different set of {mnemonics} to represent
        them.

        E.g. ADD, B (branch), BLT (branch if less than), {SVC}, MOVE,
        LDR (load register).

        (1997-02-18)

instruction prefetch

        <architecture> A technique which attempts to minimise the time
        a {processor} spends waiting for {instructions} to be fetched
        from memory.  Instructions following the one currently being
        executed are loaded into a prefetch queue when the processor's
        {extenal bus} is otherwise idle.  If the processor executes a
        {branch} instruction or receives an {interrupt} then the queue
        must be flushed and reloaded from the new address.

        Instruction prefetch is often combined with {pipelining} in
        an attempt to keep the pipeline busy.

        By 1995 most processors used prefetching, e.g. {Motorola
        680x0}, {Intel 80x86}.

        [First processors using prefetch?]

        (1998-03-29)

instruction scheduling

        The {compiler} phase that orders instructions on a
        {pipelined}, {superscalar}, or {VLIW} architecture so as to
        maximise the number of function units operating in parallel
        and to minimise the time they spend waiting for each other.

        Examples are filling a {delay slot}; interspersing
        {floating-point} instructions with integer instructions to
        keep both units operating; making adjacent instructions
        independent, e.g. one which writes a register and another which
        reads from it; separating memory writes to avoid filling the
        {write buffer}.

        Norman P. Jouppi and David W. Wall, {"Available
        Instruction-Level Parallelism for Superscalar and
        Superpipelined Processors"
        (ftp://gatekeeper.dec.com/archive/pub/DEC/WRL/research-reports/WRL-TR-8
9.7.ps.Z)},
        Proceedings of the Third International Conference on
        Architectural Support for Programming Languages and Operating
        Systems, pp. 272--282, 1989.

        [The SPARC Architecture Manual, v8, ISBN 0-13-825001-4]

instruction set

        <architecture> The collection of {machine language}
        {instructions} that a particular {processor} understands.

        The term is almost synonymous with "{instruction set
        architecture}" since the instructions are fairly meaningless
        in isolation from the {registers} etc. that they manipulate.

        (1999-07-05)

instruction set architecture

        <architecture> (ISA) The parts of a {processor}'s design that
        need to be understood in order to write {assembly language},
        such as the {machine language} instructions and {registers}.
        Parts of the architecture that are left to the implementation,
        such as number of {superscalar} {functional units}, {cache}
        size and {cycle} speed, are not part of the ISA.

        The definition of {SPARC}, for example, carefully
        distinguishes between an implementation and a specification.

        (1999-01-16)

Instruction Set Processor

        <language> (ISP) A family of languages for describing the
        {instruction set}s of computers.

        ["Computer Structures: Readings and Examples", D.P. Siewiorek
        et al, McGraw-Hill 1982].

        (1995-10-12)

instrument

        <programming> To install devices or instructions into hardware
        or software to monitor the operation of a system or component.

        (1996-05-22)

int

        1. <programming> A common name for the {integer} data type.
        In {C} for example, it means a (signed) integer of the
        computer's native {word length}.

        2. <networking> The {top-level domain} for international
        organisations.

        (1999-01-26)

INTCODE

        A low-level interpreted language used in {bootstrapping} the
        {BCPL} compiler.  The INTCODE machine has six control
        {register}s and eight functions.  {OCODE} was used as the
        intermediate language.

        ["INTCODE - An Interpretive Machine Code for BCPL",
        M. Richards, Computer Lab, U Cambridge 1972].

        ["BCPL - The Language and its Compiler", Martin Richards &
        Colin Whitby-Stevens, Cambridge U Press 1979].

integer

        <mathematics> (Or "whole number") One of the finite numbers in
        the infinite set

                ..., -3, -2, -1, 0, 1, 2, 3, ...

        An {inductive definition} of an integer is a number which is
        either zero or an integer plus or minus one.  An integer is a
        number with no fractional part.  If written in as a
        {fixed-point} number, the part after the decimal (or other
        base) point will be zero.

        A {natural number} is a non-negative integer.

        (1995-03-25)

Integer SPECbaserate

        {SPECrate_base_int92}

Integer SPECbaseratio

        {SPECbase_int92}

Integer SPECrate

        {SPECrate_int92}

Integer SPECratio

        {SPECint92}

integrated circuit

        <electronics> (IC, or "chip") A microelectronic
        {semiconductor} device consisting of many interconnected
        transistors and other components.  ICs are constructed
        ("fabricated") on a small rectangle (a "die") cut from a
        Silicon (or for special applications, Sapphire) wafer.  This
        is known as the "substrate".  Different areas of the substrate
        are "doped" with other elements to make them either "p-type"
        or "n-type" and polysilicon or aluminium tracks are etched in
        one to three layers deposited over the surface.  The die is
        then connected into a package using gold wires which are
        welded to "pads", usually found around the edge of the die.

        Integrated circuits can be classified into analogue, digital
        and hybrid (both analogue and digital on the same chip).
        Digital integrated circuits can contain anything from one to
        millions of {logic gates} - {inverters}, {AND}, {OR}, {NAND}
        and {NOR} gates, {flip-flops}, {multiplexors} etc. on a few
        square millimeters.  The small size of these circuits allows
        high speed, low power dissipation, and reduced manufacturing
        cost compared with board-level integration.

        The first integrated circuits contained only a few
        {transistors}.  Small Scale Integration ({SSI}) brought
        circuits containing transistors numbered in the tens.  Later,
        Medium Scale Integration ({MSI}) contained hundreds of
        transistors.  Further development lead to Large Scale
        Integration ({LSI}) (thousands), and VLSI (hundreds of
        thousands and beyond).  In 1986 the first one {meagbyte} {RAM}
        was introduced which contained more than one million
        transistors.

        LSI circuits began to be produced in large quantities around
        1970 for computer main memories and pocket calculators.  For
        the first time it became possible to fabricate a {CPU} or even
        an entire {microprocesor} on a single integrated circuit.  The
        most extreme technique is {wafer-scale integration} which uses
        whole uncut wafers as components.

        [Where and when was the term "chip" introduced?]

        (1997-07-03)

Integrated Database Management System

        <database> (IDMS) A network {DBMS} written by the staff of
        B.F.Goorich (Akron, Ohio, USA) circa 1972 and sold to
        {Cullinet} (Originally Cullinane, now part of {Computer
        Associates}).

        IDMS was licensed to {ICL} in 1976 for porting to, and
        subsequent development on, their computers.  It was
        implemented on the {ICL 1900} Series ({DME} {George 2},
        {George 3}, {CME}, {TME}), {System 4}, and {ICL 2900} Series
        (later Series 39 Corporate Servers).  The latest version runs
        on Series 39 {OpenVME} as IDMSX (IDMS extended).

        (1995-04-19)

Integrated Drive Electronics

        {Advanced Technology Attachment}

Integrated Information Technology

        <company> (IIT) A Santa Clara based company producing a
        programmable, single chip {H.261} and {MPEG} system.  The chip
        contains a {RISC} processor, originally based on the {MIPS}
        architecture but now called {RISCit}, and a "Pixel Processor".

        (1994-11-03)

Integrated Modelling Support Environment

        <project> (IMSE) An {Esprit} programme.

        [Details?]

        (1999-04-26)

Integrated Project Support Environment

        <software> (IPSE) A set of management and technical tools to
        support software development, usually integrated in a coherent
        framework, equivalent to a {Software Engineering Environment}.

        (1999-04-26)

Integrated Services Digital Network

        <communications> (ISDN) A set of communications {standards}
        allowing a single wire or {optical fibre} to carry voice,
        digital network services and video.  ISDN is intended to
        eventually replace the {plain old telephone system}.

        ISDN was first published as one of the 1984 {ITU-T} {Red Book}
        recommendations.  The 1988 {Blue Book} recommendations added
        many new features.  ISDN uses mostly existing {Public Switched
        Telephone Network} (PSTN) switches and wiring, upgraded so
        that the basic "call" is a 64 kilobits per second, all-digital
        end-to-end channel.  {Packet} and {frame} modes are also
        provided in some places.

        There are different kinds of ISDN connection of varying
        bandwidth (see {DS level}):

                DS0  =    1 channel  PCM at      64 kbps
         T1  or DS1  =   24 channels PCM at   1.54  Mbps
         T1C or DS1C =   48 channels PCM at   3.15  Mbps
         T2  or DS2  =   96 channels PCM at   6.31  Mbps
         T3  or DS3  =  672 channels PCM at  44.736 Mbps
         T4  or DS4  = 4032 channels PCM at 274.1   Mbps

        Each channel here is equivalent to one voice channel.  DS0 is
        the lowest level of the circuit.  T1C, T2 and T4 are rarely
        used, except maybe for T2 over microwave links.  For some
        reason 64 kbps is never called "T0".

        A {Basic Rate Interface} (BRI) is two 64K "bearer" channels
        and a single "delta" channel ("2B+D").  A {Primary Rate
        Interface} (PRI) in North America and Japan consists of 24
        channels, usually 23 B + 1 D channel with the same physical
        interface as T1.  Elsewhere the PRI usually has 30 B + 1 D
        channel and an {E1} interface.

        A {Terminal Adaptor} (TA) can be used to connect ISDN channels
        to existing interfaces such as {RS-232} and {V.35}.

        Different services may be requested by specifying different
        values in the "Bearer Capability" field in the call setup
        message.  One ISDN service is "telephony" (i.e. voice), which
        can be provided using less than the full 64 kbps bandwidth (64
        kbps would provide for 8192 eight-bit samples per second) but
        will require the same special processing or {bit diddling} as
        ordinary PSTN calls.  Data calls have a Bearer Capability of
        "64 kbps unrestricted".

        ISDN is offered by local telephone companies, but most readily
        in Australia, France, Japan and Singapore, with the UK
        somewhat behind and availability in the USA rather spotty.

        (In March 1994) ISDN deployment in Germany is quite
        impressive, although (or perhaps, because) they use a
        specifically German signalling specification, called {1.TR.6}.
        The French {Numeris} also uses a non-standard protocol (called
        {VN4}; the 4th version), but the popularity of ISDN in France
        is probably lower than in Germany, given the ludicrous
        pricing.  There is also a specifically-Belgian V1 experimental
        system.  The whole of Europe is now phasing in {Euro-ISDN}.

        See also {Frame Relay}, {Network Termination}, {SAPI}.

        {FAQ
        (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.dcom.isdn/)}.

        {Usenet} newsgroup: {news:comp.dcom.isdn}.

        (1998-03-29)

Integrated Systems Architecture

        (ISA for {ODP}) An {Esprit} 2 project continuing the {ANSA}
        project.

        (1995-02-21)

integration

        <programming> Combining software or hardware components or
        both into an overall system.

        (1996-05-22)

integration testing

        <testing> testing in which software and/or hardware components
        are combined and tested progressively until the entire system
        has been integrated.

        (1996-05-22)

integrity constraint

        <database> A {constraint} (rule) that must remain true for a
        {database} to preserve {integrity}.  Integrity constraints are
        specified at database creation time and enforced by the
        {database management system}.

        Examples from a genealogical database would be that every
        individual must be their parent's child or that they can have
        no more than two natural parents.

        (1995-11-11)

Intel 4004

        <processor> The world's first {microprocessor}, released in
        1971.  The 4004 contained 2300 transistors (compared with 5.5
        million in the 1996 {Pentium Pro}) and was intended for use in
        a calculator.  It processed data in 4 bits, but its
        instructions were 8 bits long.  Program and Data memory were
        separate, it had 1 {kilobyte} of data memory and a 12-bit {PC}
        for 4K of program memory (in the form of a 4 level {stack},
        used for CALL and RET instructions).  There were also sixteen
        4-bit (or eight 8-bit) general purpose {registers}.  The 4004
        had 46 instructions.

        (1997-03-30)

Intel 4040

        <processor> An enhanced version of the {Intel 4004}, adding 14
        instructions, larger (8 level) {stack}, 8 kbyte program memory
        and {interrupt} abilities (including shadows of the first 8
        {register}s).  The 4040 was similar to the {Intel 8008}.

        (1994-10-31)

Intel 486

        <processor> (Or "i486", "iAPX 80486", and "Intel DX4" but
        usually just "486").  A range of {Intel} {CISC}
        {microprocessors} which is part of the {Intel 80x86} family of
        processors.

        The 486s are very similar to their immediate predecessor, the
        {Intel 80386}DX.  The main differences are that the 486 has an
        optimised {instruction set}, has an on-chip unified
        instruction and data {cache}, an optional on-chip
        {floating-point unit} (FPU), and an enhanced {bus interface
        unit}.  These improvements yield a rough doubling in
        performance over an {Intel 80386} at the same {clock rate}.

        There are several suffixes and variants including:

        {Intel 486SX} - a 486DX with its {FPU} disabled (see
        {crippleware}).

        {Intel 486DX} - 486SX with a working {FPU}.

        486DX-2 - runs at twice the external {clock rate}.

        486SX-2 - runs at twice the external {clock rate}.

        486SL - 486DX with power conservation circuitry.

        486SL-NM - 486SX with power conservation circuitry; SL
        enhanced suffix, denotes a 486 with special power conservation
        circuitry similar to that in the 486SL processors.

        487 - 486DX with a slightly different pinout for use in 486SX
        systems.

        OverDrive - 486DX-2 with a slightly different pinout for use
        in 486SX systems.

        {RapidCAD} - 486DX in a special package with a companion {FPU}
        dummy package for use in {Intel 80386} systems.

        {Intel DX4}, {Cyrix} {Cy486SLC}.

        External {clock rates} include 16MHz, 20MHz, 25MHz, 33MHz,
        40MHz, although 16Mhz is rare now, and the 20MHz processors
        are often clock doubled.

        The 486 processor has been licensed or reverse engineered by
        other companies such as {IBM}, {AMD}, {Cyrix}, and {Chips &
        Technologies}.  Some are almost exact duplicates in
        specications and performance, some aren't.

        The successor to the 486 is the {Pentium}.

        (1995-02-21)

Intel 486DX

        <processor> One of {Intel}'s {Intel 486} family of
        {microprocessors} (one of the last before the {Pentium}).  The
        486DX has a working built-in {floating point unit} (FPU).  The
        {Intel 486SX} is effectively a DX with the FPU disabled.  The
        DX has a pin to select the external {data bus} width (16 or
        32).

        The {Intel 487SX} is a 486DX with a 486SX pinout.

        (1995-05-09)

Intel 486SX

        <processor> An {Intel 486DX} {microprocessor} with its
        {floating-point unit} disconnected.  All 486SX chips were
        fabricated with FPUs.  If testing showed that the CPU was OK
        but the FPU was defective, the FPU's power and bus connections
        were destroyed with a laser and the chip was sold cheaper as
        an SX, if the FPU worked it was sold as a DX.

        [Was this true of all 486SX chips?]

        Some systems, e.g. Aopen 486SX, allowed a DX to be plugged
        into an expansion socket.  A board jumper would disable the SX
        which was hard to remove because it was surface mounted.

        Some SX chips only had a 16-bit wide external {data bus}.  The
        DX has a pin to select the data bus width (16 or 32).  On the
        smaller SX, that line is {hard-wired} to 16 inside the
        package.  This is similar to the 286 SX, which was a 16-bit
        processor with an 8-bit external data bus.

        The {Jargon File} claimed that the SX was deliberately
        disabled {crippleware}.  The German computer magazine, "c't",
        made this same theory the basis of an {April Fools Joke}.
        They claimed that if one drilled a hole of a specified
        diameter through the right point on a SX chip, this would
        brake the circuit that disables the FPU.  Some people actually
        tried (and then bought themselves new processors).

        (1997-02-14)

Intel 487SX

        <processor> A version of the {Intel 486DX} {microprocessor}
        with an extra pin, for use in the {coprocessor} socket of an
        {Intel 486SX} system.  The 487SX provides the {FPU} which is
        missing in the 486SX.

        Although the 486SX is completely disabled when you install a
        487SX, the 487SX design requires that you leave the 486SX in
        your PC [why?], rather than use it elsewhere.  Intel admits
        that in some systems you can unplug the 486SX and fit a 487SX
        in its place but they don't guarantee that it will always
        work.

        See {Intel 486}.

        (1995-05-10)

Intel 8008

        <processor> A {microprocessor} intended for use as a terminal
        controller, and similar to the {Intel 4040}.  The 8008 had a
        14-bit {PC} and addressing and an eight level internal
        {stack}.  It was followed by the {Intel 8080}.

        [Date?]

        (1994-10-31)

Intel 80186

        <processor> A {microprocessor} developed by {Intel} circa
        1982.  The 80186 was an improvement on the {Intel 8086} and
        {Intel 8088}.  As with the 8086, it had a 16-bit {external
        bus} and was also available as the {Intel 80188}, with an
        8-bit external {data bus}.  The initial {clock rate} of the
        80186 and 80188 was 6 MHz.  They were not used in many
        computers, but one notable exception was the {Mindset}, a very
        advanced computer for the time.  They were used as {embedded
        processors}.

        One major function of the 80186/80188 series was to reduce the
        number of chips required.

        "To satisfy this market, we defined a processor with a
        significant performance increase over the 8086 that also
        included such common peripheral functions as
        software-controlled wait state and chip select logic, three
        timers, priority interrupt controller, and two channels of DMA
        (direct memory access).  This processor, the 80186, could
        replace up to 22 separate VLSI (very large scale integration)
        and TTL (transistor-transistor logic) packages and sell for
        less than the cost of the parts it replaced."

        -- Paul Wells of Intel Corporation writing in Byte (reference
        below)

        New instructions were also introduced as follows:

         ENTER  Make stcak frame for procedure parameters
         LEAVE  High-level procedure exit
         PUSHA  Push all general registers
         POPA   Pop all general registers
         BOUND  Check array index against bounds
         IMUL   Signed (integer) multiply
         INS    Input from port to string
         OUTS   Output string to port

        ["The Evolution of the iAPX 286", Bob Greene, Intel
        Corporation, PC Tech Journal, December 1984, page 134].

        ["The 80286 Microprocessor", Paul Wells, Intel Corporation,
        Byte, November 1984, p. 231].

        (1999-05-10)

Intel 80188

        <processor> A version of the {Intel 80186} with an 8 bit
        external data bus (instead of 16 bit).  This makes it cheaper
        to connect to peripherals.

        (1995-01-13)

Intel 80286

        <processor> (Or "286", "i286") A {microprocessor} developed by
        {Intel}.  THe 80286 processor has a 16-bit {data bus} and
        incorporates a {memory management unit} that allowed a limited
        amount of {multitasking}.  The 80286 only has a segmented MMU
        while the later processors add a {page}d MMU "behind" the
        segmented one.

        The 80286 was the processor in the {IBM PC AT} {personal
        computer}.

        (1995-02-21)

Intel 80386

        <processor> (Commonly abbreviated to "386", trademark
        "Intel386") The successor to the {Intel 80286}
        {microprocessor}.  It was the first Intel processor with
        32-bit data and address {bus}ses.  It can address four
        {gigabytes} (2^32 bytes) of memory; however, 16 megabytes is a
        typical maximum in {IBM PC}s.  The 386 allows multiple
        {application programs} to run at the same time (when running
        under 386-specific {operating systems}) using "{protected
        mode}".

        The first {IBM compatible} to use the 386 was the {Compaq}
        386, before {IBM} used it in high-end models of their {PS/2}
        series.  It is also used in {HP}'s {RS} series and many
        others.

        It does not require special {EMS} memory boards to expand
        {MS-DOS} memory limits.  With the 386, the EMS standard can be
        simulated in normal {extended memory}, and many DOS add-ons
        provide this "Expanded Memory Manager" feature.

        See also {Intel 80386SX}, {BSD386}.

        (1995-02-21)

Intel 80386SX

        <processor> A lower-speed version of the {Intel 80386}.  It
        uses a 16-bit data bus instead of a 32-bit data bus.  It is
        faster than the 286, and more importantly, like the full-size
        386, provides more flexibility in running existing DOS
        applications.

        (1995-05-12)

Intel 80486

        {Intel 486}

Intel 8080

        <processor> The successor to the {Intel 8008}.  The 8080 had a
        16-bit {address bus} and an 8-bit {data bus}.  It had seven
        8-bit {registers} (six which could also be combined as three
        16-bit registers), a 16-bit {stack pointer} to memory which
        replaced the 8008's internal stack and a 16-bit {program
        counter}.  It also had 256 I/O ports (so I/O devices could be
        connected without needing to allocate any addressing space as
        is required for {memory mapped} devices) and a signal pin that
        allowed the {stack} to occupy a separate bank of memory.

        Shortly after the 8080, the {Motorola 6800} was introduced.

        [Date?]

        (1994-10-31)

Intel 8085

        <processor> A {microprocessor} intended to be an improved
        {Intel 8080}, as was the {Zilog Z80}.

        (1994-10-31)

Intel 8086

        <processor> A sixteen bit {microprocessor} chip used in early
        {IBM PC}s.  The {Intel 8088} was a version with an eight-bit
        external data bus.

        The Intel 8086 was based on the design of the {Intel 8080} and
        {Intel 8085} (it was {source compatible} with the 8080) with a
        similar {register set}, but was expanded to 16 bits.  The Bus
        Interface Unit fed the instruction stream to the Execution
        Unit through a 6 byte {prefetch} queue, so fetch and execution
        were concurrent - a primitive form of {pipelining} (8086
        instructions varied from 1 to 4 bytes).

        It featured four 16-bit general {register}s, which could also
        be accessed as eight 8-bit registers, and four 16-bit {index
        registers} (including the {stack pointer}).  The data
        registers were often used implicitly by instructions,
        complicating {register allocation} for temporary values.  It
        featured 64K 8-bit I/O (or 32K 16 bit) ports and fixed
        {vectored interrupts}.  There were also four {segment
        registers} that could be set from index registers.

        The segment registers allowed the CPU to access 1 meg of
        memory in an odd way.  Rather than just supplying missing
        bytes, as most segmented processors, the 8086 actually shifted
        the segment registers left 4 bits and added it to the address.
        As a result, segments overlapped, and it was possible to have
        two pointers with the same value point to two different memory
        locations, or two pointers with different values pointing to
        the same location.  Most people consider this a {brain
        damaged} design.

        Although this was largely acceptable for {assembly language},
        where control of the segments was complete (it could even be
        useful then), in higher level languages it caused constant
        confusion (e.g. near/far pointers).  Even worse, this made
        expanding the address space to more than 1 meg difficult.  A
        later version, the {Intel 80386}, expanded the design to 32
        bits, and "fixed" the segmentation, but required extra modes
        (suppressing the new features) for compatibility, and retains
        the awkward architecture.  In fact, with the right assembler,
        code written for the 8008 can still be run on the most recent
        {Intel 486}.

        The {Intel 80386} added new {op code}s in a kludgy fashion
        similar to the {Zilog Z80} and {Zilog Z280}.  The {Intel
        486} added full {pipeline}s, and {clock doubling} (like the
        {Zilog Z280}).

        So why did {IBM} chose the 8086 series when most of the
        alternatives were so much better?  Apparently IBM's own
        engineers wanted to use the {Motorola 68000}, and it was used
        later in the forgotten {IBM Instruments} 9000 Laboratory
        Computer, but IBM already had rights to manufacture the 8086,
        in exchange for giving Intel the rights to its {bubble memory}
        designs.  Apparently IBM was using 8086s in the IBM
        {Displaywriter} {word processor}.

        Other factors were the 8-bit {Intel 8088} version, which could
        use existing {Intel 8085}-type components, and allowed the
        computer to be based on a modified 8085 design.  68000
        components were not widely available, though it could use
        {Motorola 6800} components to an extent.

        {Intel} {bubble memory} was on the market for a while, but
        faded away as better and cheaper memory technologies arrived.

        (1994-12-23)

Intel 8088

        <processor> An {Intel 8086} with 16-bit {register}s and an
        8-bit data bus.

        The 8088 was the processor used in the original {IBM PC}.

        (1995-02-21)

Intel 80x86

        <processor> One of the family of {Intel} {microprocessors}
        including the {Intel 80186}, {Intel 80286}, {Intel 80386},
        {Intel 486}, in a more general sense also {Intel 8086},
        {Pentium}, {Pentium Pro}, and {Pentium II}.

        (1998-03-07)

Intel 8751

        <processor> A {microcontroller} from {Intel} including a
        {CPU}, two timers.  128 bytes of {RAM}, 4 kBytes of {EEPROM},
        four eight-bit biderectional I/O ports and an {RS-232} port.

        The 8751 belongs to the Intel i51 Microcontroller family.  It
        was designed by Intel but is now manufactured by Intel,
        {Philips}, {Siemens}, {AMD} and others.  Motorola's
        microcontroller families (68HC05, 68HC08 and 68HC11) are meant
        to compete with the i51 family.

        (1995-04-22)

Intel Comparative Microprocessor Performance index

        <benchmark, unit> (iCOMP) A unit used by {Intel} to indicate
        the relative performance of their {80x86} {microprocessors}.

        {(http://134.134.214.1/procs/perf/icomp/)}.

        (1997-06-07)

Intel Corporation

        <company> A US microelectronics manufacturer.  They produced
        the {Intel 4004}, {Intel 8080}, {Intel 8086}, {Intel 80186},
        {Intel 80286}, {Intel 80386}, {Intel 486} and {Pentium}
        {microprocessor} families as well as many other {integrated
        circuit}s and {personal computer} networking and
        communications products.

        Gordon Moore and Robert Noyce founded Intel in 1968 to design,
        manufacture, and market semiconductor computer memory to
        replace {magnetic core} memory, the dominant computer memory
        at that time.  Dr. Andrew S. Grove joined Intel soon after its
        incorporation.  Three years later, in 1971, Intel introduced
        the world's first {microprocessor}, the {Intel 4004}.

        Intel has design, development, production, and administration
        facilities throughout the western US, Europe and Asia.  In
        1995 nearly 75% of the world's {personal computer}s use Intel
        architecture.  Annual revenues are rapidly approaching $10
        billion.  In March, 1994, "Business Week" named Intel one of
        the top ten American companies in terms of profit, one of the
        top 15 market value winners, and 16th out of the magazine's
        top 1,000 companies overall.

        Intel invested a record $2.9 billion in capital and R&D in
        1993, and expects to increase combined spending on these
        activities to $3.5 billion in 1994.  Quarterly sales were
        $2770M and profits, $640M in Aug 1994.

        {(http://www.intel.com/)}

        Address: Santa Clara, CA, USA.

        (1995-03-01)

IntelDX4

        <processor> Essentially an {Intel 486DX} {microprocessor} with
        a 16 kilobyte on-chip {cache}.

        The DX4 is the fastest member of the {Intel 486} family.  75
        and 100MHz versions are available.  At an iCOMP index rating
        of 435, the 100 MHz DX4 performs up to 50% faster than the 66
        MHz {Intel DX2}.  The DX4's {clock multiplier} allows the
        processor to run three times faster than the {system clock}.
        This performance is achieved in part by a 16K on-chip {cache}
        (double that of the other 486s).  The DX4 has an integrated
        {floating point unit}.

        Like the other 486s, the DX4 achieves performance through a
        {RISC} integer core that executes frequently used instructions
        in a single {clock cycle} (the {Pentium}'s can execute
        multiple instructions in a single clock cycle).

        Low power consumption has been achieved with {SL} Technology
        and a 0.6 micron manufacturing process, giving 1.6 million
        {transistor}s on a single chip operating at only 3.3 Volts.

        "IntelDX4" is the entire name, the "486" has been dropped and
        I am assured that there is no space in the same.

        (1995-04-28)

Intel i960

        <processor> A {superscalar} 32-bit {RISC} {microprocessor}
        from {Intel} intended for {embedded} applications.

        The i960 CA variant can reach 66 native MIPS peak performance
        with a sustained execution of two instructions per clock
        cycle.  The i960 CF has an on-chip, four kilobyte two-way
        {set-associative} {instruction cache} and a one kilobyte {data
        cache}.  Both the CA and CF processors have on-chip {RAM}; a
        four-channel {DMA} unit; and integrated peripherals.

        (1996-05-23)

INTELLECT

        <language> A {query language} written by Larry Harris in 1977,
        close to natural English.

        (1995-04-14)

intellectual property

        <legal> (IP) The ownership of ideas and control over the
        tangible or virtual representation of those ideas.  Use of
        another person's intellectual property may or may not involve
        royalty payments or permission, but should always include
        proper credit to the source.

        (1997-03-27)

intelligent backtracking

        <algorithm> An improved {backtracking} {algorithm} for
        {Prolog} {interpreters}, which records the point at which each
        {logic variable} becomes bound and, when a given set of
        bindings leads to failure, ignores any {choice point} which
        does not bind any of those variables.  No choice from such a
        choice point can succeed since it does not change the bindings
        which caused the failure.

        (1996-04-06)

intelligent database

        <database> A {database management system} which performs data
        validation and processing traditionally done by {application
        programs}.  Most DBMSs provide some data validation,
        e.g. rejecting invalid dates or alphabetic data entered into
        money fields, but often most processing is done by application
        programs.  There is however no limit to the amount of
        processing that can be done by an intelligent database as long
        as the process is a standard function for that data.

        Examples of techniques used to implement intelligent databases
        are {constraints}, {triggers} and {stored procedures}.

        Moving processing to the database aids {data integrity}
        because it is guaranteed to be consistent across all uses of
        the data.  {Mainframe} databases have increasingly become more
        intelligent and personal computer database systems are rapidly
        following.

        (1998-10-07)

Intelligent Input/Output

        <architecture> /i:-too-oh/ (I2O) A specification which aims to
        provide an {I/O} {device driver} architecture that is
        independent of both the specific device being controlled and
        the host {operating system}.  The Hardware Device Module (HDM)
        manages the device and the OS Services Module (OSM) interfaces
        to the host operating system.  The HDM is portable across
        multiple operating systems, processors and busses.  The HDM
        and OSM communicate via a two layer {message passing}
        {protocol}.  A Message Layer sets up a communications session
        and runs on top of a Transport Layer which defines how the two
        parties share information.

        I2O is also designed to facilitate intelligent I/O subsystems,
        with support for {message passing} between multiple
        independent processors.  By relieving the host of {interrupt}
        intensive I/O tasks required by the various layers of a driver
        architecture, the I2O intelligent I/O architecture greatly
        improves I/O performance.  I2O systems will be able to more
        efficiently deliver the I/O throughput required by a wide
        range of high bandwidth applications, such as networked
        {video}, {groupware} and {client-server} processing.  I2O does
        not restrict where the layered modules execute, providing
        support for single processor, {multiprocessor}, and
        {clustered} systems.

        I2O is not intended to replace the driver architectures
        currently in existence.  Rather, the objective is to provide
        an open, standards-based approach, which is complementary to
        existing drivers, and provides a framework for the rapid
        development of a new generation of portable, intelligent I/O.

        {Home (http://www.i2osig.org/)}.

        (1997-11-04)

Intelligent I/O

        {Intelligent Input/Output}

intelligent terminal

        <hardware> (or "smart terminal", "programmable terminal") A
        terminal that often contains not only a keyboard and screen,
        but also comes with a disk drive and printer, so it can
        perform limited processing tasks when not communicating
        directly with the central computer.  Some can be programmed by
        the user to perform many basic tasks, including both
        arithmetic and logic operations.  In some cases, when the user
        enters data, the {data} will be checked for errors and some
        type of report will be produced.  In addition, the valid data
        that is entered may be stored on the disk, it will be
        transmitted over communication lines to the central computer.

        An intelligent terminal may have enough computing capability
        to draw graphics or to offload some kind of front-end
        processing from the computer it talks to.

        The development of {workstation}s and {personal computer}s has
        made this term and the product it describes semi-obsolescent,
        but one may still hear variants of the phrase "act like a
        smart terminal" used to describe the behaviour of workstations
        or PCs with respect to programs that execute almost entirely
        out of a remote {server}'s storage, using said devices as
        displays.

        The term once meant any terminal with an {addressable cursor};
        the opposite of a {glass tty}.  Today, a terminal with merely
        an addressable cursor, but with none of the more-powerful
        features mentioned above, is called a {dumb terminal}.

        There is a classic quote from Rob Pike (inventor of the {blit}
        terminal): "A smart terminal is not a smart*ass* terminal, but
        rather a terminal you can educate".  This illustrates a common
        design problem: The attempt to make peripherals (or anything
        else) intelligent sometimes results in finicky, rigid "special
        features" that become just so much dead weight if you try to
        use the device in any way the designer didn't anticipate.
        Flexibility and programmability, on the other hand, are
        *really* smart.

        Compare {hook}.

        (1995-04-14)

IntelliMouse

        {Microsoft IntelliMouse Explorer}

Intel Literature Sales

        Address: PO Box 58130, Santa Clara, CA 95052, USA.

        Telephone: +1 800 548 4725.

        (1995-01-12)

Intelsat

        {International Satellite Agency}

intensional

        <philosophy> Intensional properties, e.g. intensional
        equality, relate to how an object is implemented as opposed to
        extensional properties which concern only how its output
        depends on its input.

        (1995-01-12)

INTERACTIVE

        A network simulation language.

        ["Design and Implementation of a Pascal Based Interactive
        Network Simulation Language", R. Lakshmanan, PhD Thesis,
        Oakland U, Rochester MI 1983].

        (1995-01-12)

interactive

        <programming> A term describing a program whose input and
        output are interleaved, like a conversation, allowing the
        user's input to depend on earlier output from the same run.

        The interaction with the user is usually conducted through
        either a text-based interface or a {graphical user interface}.
        Other kinds of interface, e.g. using {speech recognition}
        and/or {speech synthesis}, are also possible.

        This is in contrast to {batch} processing where all the input
        is prepared before the program runs and so cannot depend on
        the program's output.

        (1996-06-21)

Interactive CourseWare

        (ICW) A training program controlled by a computer that relies
        on trainee input to determine the order and pace of
        instruction delivery.  The trainee advances through the
        sequence of instructional events by making decisions and
        selections.  The instruction branches according to the
        trainee's responses.

        ICW is a US military term which includes1 {computer-aided
        instruction} and {computer-based training}.

        (1995-11-08)

Interactive Data Entry/Access

        <language> (IDEA) A language from {Data General} in which you
        designed the screen first, and then wrote the program around
        the predefined fields.  IDEA was a precursor to the {DG COBOL}
        {Screen Section}.

        (1996-02-16)

Interactive Data Language

        (IDL) A commercial {array}-oriented language with numerical
        analysis and display features, first released in 1977.  It
        supports interactive {reduction}, analysis, and
        {visualisation} of scientific data.  It is sold by {Research
        Systems, Inc.}

        Version: 3.6.1 runs under {Unix}, {MS-DOS}, {MS Windows},
        {VAX}/{VMS} and {Macintosh}.

        Not to be confused with any of the other {IDL}s.

        {(ftp://gateway.rs.inc.com/pub/idl)}.

        E-mail: <info@rsinc.com>.

        (1994-10-07)

interactive development environment

        <programming, tool> (IDE) A system for supporting the process
        of writing software.  Such a system may include a
        {syntax-directed editor}, graphical tools for program entry,
        and integrated support for compiling and running the program
        and relating compilation errors back to the {source}.

        Examples include {Visual C++} and {Visual Basic}.

        (1996-03-04)

Interactive Development Environments

        <company> (IDE) A US {software engineering} company.

        (1996-03-04)

Interactive Software Engineering

        <company> (ISE) The company set up by {Bertrand Meyer}, now
        its president, to develope and distribute {Eiffel}, the
        language which he created.  The latest version is ISE Eiffel
        version 3.3.  ISE also organises the {TOOLS} conference
        (Technology of Object-Oriented Languages and Systems).

        {Home (http://www.eiffel.com/)}

        E-mail: info@eiffel.com.

        Telephone: +1 (805) 685 1006.

        Address: Santa Barbara, Goleta CA, USA.

        (1995-12-28)

Interactive System Productivity Facility

        <operating system> (ISPF) Something to do with {IBM}'s
        {OS/390}.

        {(http://www.s390.ibm.com/bookmgr-cgi/bookmgr.cmd/BOOKS/ISPDGD02/COVER?
SHELF=ISP5BK01)}.

        [Summary?]

        (1999-07-14)

Interactive Voice Response

        <communications> (IVR) <communications> A {telecommunications}
        system, prevelant with {PBX} and {voice mail} systems, that
        uses a prerecorded database of voice messages to present
        options to a user, typically over telephone lines.  User input
        is retrieved via {DTMF} tone key presses.

        When used in conjunction with {voice mail}, for example, these
        systems typically allow users to store, retrieve, and route
        messages, as well as interact with an underlying {database}
        server which may allow for automated transactions and {data
        processing}.

        (15 Sept 1997)

        (1997-09-21)

Interagency Interim National Research and Education Network

        (IINREN) An evolving operating network system.  Near term
        (1992-1996) research and development activities will provide
        for the smooth evolution of this networking infrastructure
        into the future gigabit {NREN}.

        (1994-12-06)

InterBase

        A commercial {active DBMS}.

INTERCAL

        <language, humour> /in't*r-kal/ (Said by the authors to stand
        for "Compiler Language With No Pronounceable Acronym").

        Possibly the most elaborate and long-lived joke in the history
        of programming languages.  It was designed on 1972-05-26 by
        Don Woods and Jim Lyons at Princeton University.

        INTERCAL is purposely different from all other computer
        languages in all ways but one; it is purely a written
        language, being totally unspeakable.  The INTERCAL Reference
        Manual, describing features of horrifying uniqueness, became
        an underground classic.  An excerpt will make the style of the
        language clear:

        It is a well-known and oft-demonstrated fact that a person
        whose work is incomprehensible is held in high esteem.  For
        example, if one were to state that the simplest way to store a
        value of 65536 in a 32-bit INTERCAL variable is:

            DO :1 <- #0$#256

        any sensible programmer would say that that was absurd.  Since
        this is indeed the simplest method, the programmer would be
        made to look foolish in front of his boss, who would of course
        have happened to turn up, as bosses are wont to do.  The
        effect would be no less devastating for the programmer having
        been correct.

        INTERCAL has many other peculiar features designed to make it
        even more unspeakable.  The Woods-Lyons implementation was
        actually used by many (well, at least several) people at
        {Princeton}.

        Eric S. Raymond <esr@snark.thyrsus.com> wrote C-INTERCAL in
        1990 as a break from editing _The_New_Hacker's_Dictionary_,
        adding to it the first implementation of {COME FROM} under its
        own name.  The compiler has since been maintained and extended
        by an international community of technomasochists and is
        consequently enjoying an unprecedented level of unpopularity.

        The version 0.9 distribution includes the compiler, extensive
        documentation and a program library.  C-INTERCAL is actually
        an INTERCAL-to-C source translator which then calls the local
        {C} compiler to generate a binary.  The code is thus quite
        portable.

        {Intercal Resource Page
        (http://locke.ccil.org/~esr/intercal/)}.

        {Usenet} newsgroup: {news:alt.lang.intercal}.

        ["The INTERCAL Programming Language Reference Manual", Donald
        R. Woods & James M. Lyon].

        (1997-04-09)

Interchange File Format

        <file format> (IFF, full name "EA IFF 1985") A generic file
        format published by {Electronic Arts} as an open standard.
        IFF is {chunk}-based and hierarchical so files can include
        other files.  It is easily extensible and an all round Good
        Idea.

        An IFF file starts with one of the following "group IDs":
        'FORM', 'LIST' or 'CAT '.  This is followed by an unsigned
        32-bit number of bytes in the remainder of the file.  Then
        comes an ID that indicates which type of IFF file this is.
        The main image type is {ILBM}, {audio} is either {AIFF} or
        {8SVX}, animations are {ANIM} etc.  An IFF file will probably
        have a {filename extension} related to this file type stored
        in the file.  The rest of the file is divided into {chunks}
        each of which also has a four-byte header and byte count.

        {Microsoft} {WAV} and {AVI} are all based around an almost
        identical scheme to IFF called {RIFF}.  The main difference is
        that, in RIFF files, numbers are little-endian as on {Intel}
        processors, whereas in IFF files they are big-endian, as on
        the {Motorola 68000} processors in the {Amiga} where IFF files
        were first used.

        (1997-07-23)

INTERCOM

        <language> The {assembly language} for the {G-15}.

        Versions: INTERCOM 101, INTERCOM 1000.

        [Listed in CACM 2(5):16, May 1959].

        (1997-07-23)

Interest Group in Pure and Applied Logics

        (IGPL) A body of 700 researchers in various aspects of {logic}
        (symbolic, mathematical, computational, philosophical, etc.)
        from all over the world.  The group's main rle is as a
        research and information clearing house.  The group also:
        supports exchange of information about research problems,
        references and common interest among group members; helps to
        obtain photocopies of papers; supplies review copies of books
        through the Journals on which some members are editors;
        organises exchange visits and workshops; advises on papers for
        publication; edits and distributes a Newsletter and an
        electronic Bulletin; keeps an {FTP archive} of papers,
        abstracts; obtains reductions on group purchases of logic
        books from publishers.

        {Home (http://theory.doc.ic.ac.uk/tfm/igpl.html)}

        E-mail: <igpl-request@doc.ic.ac.uk>.

        (1995-02-10)

interesting

        In hacker parlance, this word has strong connotations of
        "annoying", or "difficult", or both.  Hackers relish a
        challenge, and enjoy wringing all the irony possible out of
        the ancient Chinese curse "May you live in interesting times".

interface

        <jargon> A boundary across which two systems communicate.  An
        interface might be a hardware connector used to link to other
        devices, or it might be a convention used to allow
        communication between two software systems.  Often there is
        some intermediate component between the two systems which
        connects their interfaces together.  For example, two {RS-232}
        interfaces connected via a serial cable.

        See also {graphical user interface}, {Application Program
        Interface}.

        (1996-05-22)

interface analysis

        <testing> A software test which checks the interfaces between
        program elements for consistency and adherence to predefined
        rules or {axioms}.

        (1996-07-09)

Interface Architect

        An interface builder for Motif distributed by Hewlett-Packard
        (see UIMX).

Interface Definition Language

        (IDL) 1. An {OSF} standard for defining {RPC} stubs.

        [Details?]

        2. Part of an effort by {Project DOE} at {SunSoft, Inc.}  to
        integrate distributed {object} technology into the {Solaris}
        {operating system}.  IDL provides the standard interface
        between objects, and is the base mechanism for object
        interaction.

        The {Object Management Group}'s {CORBA} 1.1 (Common Object
        Request Broker Architecture) specifies the interface between
        objects.  IDL (Interface Definition Language) is the base
        mechanism for object interaction.

        The SunSoft OMG IDL CFE (Compiler Front End) version 1.2
        provides a complete framework for building CORBA 1.1-compliant
        preprocessors for OMG IDL.  To use it you write a back-end.  A
        complete compiler of IDL would translate IDL into {client}
        side and {server} side routines for remote communication in
        the same manner as {Sun}'s current {RPCL} compiler.  The IDL
        compiler front end allows integration of new back ends which
        can translate IDL to various programming languages.

        Several companies including Sunsoft are building back ends to
        the CFE which translate IDL into target languages,
        e.g. {Pascal} or {C++}, in the context of planned
        CORBA-compliant products.  IDL requires C++ 2.1.

        Not to be confused with any of the other {IDL}s.

        E-mail: <idl-cfe@sun.com>.

        {(ftp://omg.org/pub/omg_idl_cfe.tar.Z)},
        {(ftp://omg.org/pub/OMG_IDL_CFE_1.2/)}.

        Telephone: Mache Creeger, SunSoft, Inc. +1 (415) 336 5884.

        (1993-05-04)

Interface Description Language

        (IDL) A language designed by Nestor, Lamb and Wulf of {CMU} in
        1981 for describing the data structures passed between parts
        of an application, to provide a language-independent
        intermediate representation.

        It forms part of Richard Snodgrass <rts@cs.arizona.edu>'s
        {Scorpion} environment development system.

        Not to be confused with any of the other {IDL}s.

        Mailing list: info-idl@sei.cmu.edu.

        ["The Interface Description Language: Definition and Use," by
        Richard Snodgrass, Computer Science Press, 1989, ISBN
        0-7167-8198-0].

        [SIGPLAN Notices 22(11) (Nov 1987) special issue].

        (1994-11-11)

Interface Message Processor

        <networking> (IMP) The original {message switching node} on
        the {ARPANET}.

        [More details?]

        (1996-04-07)

Interior Gateway Protocol

        (IGP) An {Internet} {protocol} which distributes {routing}
        information to the {router}s within an {autonomous system}.
        The term "{gateway}" is historical, "router" is currently the
        preferred term.

        See also {Exterior Gateway Protocol}, {Open Shortest Path
        First}, {Routing Information Protocol}.

        (1994-11-09)

interlace

        {interlacing}

interlaced

        {interlacing}

interlaced image

        <graphics, file format> An aspect of a graphics storage format
        or transmission algorithm that treats {bitmap} image data
        non-sequentially in such a way that later data adds
        progressively greater {resolution} to an already full-size
        image.  This contrasts with sequential order where the
        resoluton is constant and later data adds only more area.

        Interlacing is useful when an image is being sent across a
        slow network, such as the {Internet}, in which case it can be
        shown initially as a whole low-resolution image that increases
        in resolution as more of the file is received.

        In an interlaced {GIF89} image, the {pixels} in a row are
        stored sequentially but the rows are stored in interlaced
        order, e.g. 0, 8, 4, 12, 2, 6, 8, 10, 14, 1, 3, 5, 7, 9, 11,
        13, 15.  Each vertical scan adds rows in the middle of the
        gaps left by the previous one.

        {PNG} interlaces both horizontally and vertically using the
        "{Adam7}" method, a seven pass process named after Adam
        M. Costello.

        Interlacing is also supported by other formats.  {JPEG}
        supports a functionally similar concept in the form of
        {Progressive JPEG}.

        (1998-02-17)

interlacing

        1. <hardware> A {video} display system which builds an {image}
        on the {VDU} in two phases, known as "fields", consisting of
        even and odd horizontal lines.

        The complete image (a "frame") is created by scanning an
        electron beam horizontally across the screen, starting at the
        top and moving down after each horizontal scan until the
        bottom of the screen is reached, at which point the scan
        starts again at the top.  On an interlaced display, even
        numbered {scan lines} are displayed in the first field and
        then odd numbered lines in the second field.

        For a given screen {resolution}, {refresh rate} (frames per
        second) and {phosphor} {persistence}, interlacing reduces
        flicker because the top and bottom of the screen are redrawn
        twice as often as if the scan simply proceded from top to
        bottom in a single vertical sweep.

        2. <graphics> {interlaced image}.

        (1998-02-25)

Interlan

        A brand of {Ethernet} card.

        (1994-11-09)

Interleaf

        A document preparation system for {Sun}, {VAX}, {Apollo} and
        other {workstations}.

        (1994-11-09)

interleave

        {interleaving}

interleaving

        See {sector interleave}.

        [Other uses?]

INTERLINK

        A commercial product comprising hardware and software for file
        transfer between IBM and VAX computers.

Interlisp

        A dialect of Lisp developed in 1967 by Bolt, Beranek and
        Newman (Cambridge, MA) as a descendant of {BBN-Lisp}.  It
        emphasises user interfaces.  It is currently supported by
        {Xerox PARC}.

        Interlisp was once one of two main branches of LISP (the other
        being {MACLISP}).  In 1981 {Common LISP} was begun in an
        effort to combine the best features of both.  Interlisp
        includes a Lisp programming environment.  It is {dynamically
        scoped}.  NLAMBDA functions do not evaluate their arguments.
        Any function could be called with optional arguments.

        See also {CLISP}, {Interlisp-10}, {Interlisp-D}.

        ["Interlisp Programming Manual", W. Teitelman, TR, Xerox Rec
        Ctr 1975].

Interlisp-10

        An {Interlisp} with {shallow binding}.

Interlisp-D

        {Xerox}'s {Interlisp} with {deep binding}.

Intermedia

        A hypertext system developed by a research group at IRIS
        (Brown University).

Intermedia Interchange Format

        A Standard {Hypertext} Interchange format from IRIS.

Intermediate Distribution Frame

        <networking> (IDF) A {network closet} containing a secondary
        {hub}, fed from the main hub.

        (1995-05-05)

Intermediate Programming Language

        <language> A very early attempt by Arthur W. Burks to express
        machine language at a higher level of abstraction.  Like
        {Plankalkl}, it used a right-handed style of {assignment}, in
        which the location appears on the right.

        (1995-05-09)

Intermediate System

        (IS) An {Open Systems Interconnection} system which performs
        {network layer} forwarding.  It is analogous to an {IP}
        {router}.

        (1994-11-29)

Intermediate System-Intermediate System

        (IS-IS) The {OSI} {Interior Gateway Protocol}.

Intermetrics, Inc.

        A US software engineering company.  Current and past products
        include {CS-4}, {Red}, {Mwave Developers Toolkit}
        ({multimedia} for {IBM PC}), {cross-compiler}s for {C} and
        {C++}; {Ada '83}, {Ada 95}, and {SAMeDL}.  They also supply
        {client/server} systems; custom software applications and
        {turnkey} systems; independent verification and validation;
        {CAE} integration technology; languages and compilers: {Ada},
        {C}, {C++}, {HDL}s ({MHDL}), {Modula}, {HAL/S}, {SPL/1}, and
        others.

        Address: Intermetrics, Inc., 733 Concord Avenue, Cambridge, MA
        02138, USA.  Telephone: +1 (617) 661 1840.  Fax: +1 (617) 868
        2843.

        Address: 7918 Jones Branch Drive, McLean, Va 22102, USA.
        Telephone: +1 (703) 827-2606.  Fax: +1 (703) 827-5560.

        Also Houston, TX, Huntington Beach, CA, Warminster, PA, and
        others.

        {Home (http://www.inmet.com/)}

        E-mail: <ps@wash.inmet.com>.

        (1994-10-11)

internal field separators

        <operating system> ($IFS) A predefined {environment variable}
        in the {Unix} {Bourne shell} whose default value is the
        three-character string containing {space}, {tab} and {line
        feed}.  Any string of one or more of these characters
        separates the command and each of its arguments in a command
        line.

        $IFS also tells the shell's built-in read command where to
        split an input line when reading into multiple variables.
        E.g. setting IFS=: would be appropriate for reading a file
        with ':'-separated fields, such as /etc/passwd.

        (1999-04-07)

Internal Translator

        <language, mathematics> (IT) An early {compiler} for
        mathematics developed by A.J. {Perlis} et al at Carnegie Tech
        ca 1957.  IT was originally written for the {Burroughs 205},
        then the {IBM 650}.

        IT was the forerunner of RUNCIBLE, GATE, CORRELATE and GAT.
        IT source code was converted to PIT, thence to SPIT.

        IT-2 produced machine language directly, IT-3 developed at
        Carnegie added double-precision {floating-point}.

        [Sammet 1969, pp. 139-141].

        [CACM 1(5):22 1958].

        (1994-11-30)

International Algebraic Language

        {ALGOL 58}

International Business Machines

        <company> (IBM) The best known American computer manufacturer,
        founded by Thomas J. Watson (born 1874-02-17), known as "Big
        Blue" after the colour of its logo.  IBM makes everything from
        {mainframes} to {personal computers} (PCs) and has been
        immensely successful in selling them, cheifly to business.  It
        has often been said that "Nobody has ever been sacked for
        buying IBM".

        The {IBM PC} in its various versions has been so successful
        that unqualified reference to a "PC" almost certainly means a
        PC from IBM, or one of the many brands of {clone} produced by
        other manufacturers to cash in on IBM's original success.

        Alternative expansions of "IBM" such as Inferior But
        Marketable; It's Better Manually; Insidious Black Magic; It's
        Been Malfunctioning; Incontinent Bowel Movement, illustrate
        the considerable antipathy most hackers have long felt toward
        the "industry leader" (see {fear and loathing}).

        Quarterly sales $15351M, profits $689M (Aug 1994).

        {Home (http://www.ibm.com/)}.

        (1999-04-07)

International Computers Limited plc

        <company> (ICL) A UK hardware and software manufacturer
        specialising in systems integration in selected markets,
        supported by its service and technology businesses.  ICL
        operates in over 80 countries worldwide, with 24000 employees
        and revenues of 2.6 billion in 1993.

        ICL produced {George 2}, {George 3}, {VME}, {OpenVME}, {Series
        39}, {DME}, {CME}, the {ICL 1900} and {ICL 2900} series.

        {Home (http://www.icl.co.uk/)}

        {Usenet} newsgroup: {news:alt.sys.icl}.

        (1995-04-19)

International Core War Society

        <games, standard, body> (ICWS) The official standards body for
        {Core War}.

        (1996-02-16)

International Data Encryption Algorithm

        <algorithm, cryptography> (IDEA) A conventional {encryption}
        {algorithm}, written by Xuejia Lai and James Massey, in 1992.

        It is a {block cipher}, considered to be the best and most
        secure available, and operates on 64-bit blocks with a 128 bit
        {key}.

        It is used by {Pretty Good Privacy}.

        (1996-03-07)

International Electrotechnical Commission

        <standard, body> (IEC) A {standard}isation body at the same
        level as {ISO}.

        [Relationship?  Why separate?]

        (1995-04-21)

International Federation for Information Processing

        <body> A multinational federation of professional and technical
        organisations (or national groupings of such organisations)
        concerned with information processing.  From any one country,
        only one such organisation - which must be representative of
        the national activities in the field of information processing
        - can be admitted as a Full Member.  In addition, a regional
        group of developing countries can be admitted as a Full
        Member.  On 1 October 1993, 46 organisations were Full Members
        of the Federation, representing 66 countries.

        IFIP was founded under the auspices of UNESCO and advises them
        and the {ITU-T}.

        {(http://www.dit.upm.es/~cdk/ifip.html)}

        (1995-03-10)

International Function Point Users Group

        <body, programming> (IFPUG) A forum for the exchange of ideas
        about {Function Point Analysis}.  IFPUG's membership now
        includes over 500 companies on four continents.

        Telephone: +1 (614) 8957130.

        (1995-03-10)

internationalisation

        <programming> (i18n, globalisation, enabling, software
        enabling) The process and philosophy of making software
        portable to other {locales}.

        For successful {localisation}, products must be technically
        and culturally neutral.  Effective internationalisation
        reduces the time and resources required for localisation,
        improving time-to-market abroad and allowing {simultaneous
        shipment}.  In orther words, internationalisation abstracts
        out local details, localisation specifies those details for a
        particular locale.

        Technically this may include allowing {double-byte character
        sets} such as {unicode} or Japanese, local numbering, date and
        currency formats, and other local format conventions.

        It also includes the separation of {user interface} text
        e.g. in {dialog boxes} and {menus}.  All the text used by an
        application may be kept in a separate file or directory, so
        that it can be translated all at once.  User interfaces may
        require more screen space for text in other languages.

        The simplest form of internationalisation may be to make use
        of {operating system} calls that format time, date and
        currency values according to the operating system's
        configuration.

        The abbreviation i18n means "I - eighteen letters - N".

        (1999-06-28)

internationalization

        {internationalisation}

International Multimedia Teleconferencing Consortium

        <body> (IMTC) A non-profit corporation formed in September
        1994 comprising more than 150 companies from around the world.
        The IMTC encourages the development and implementation of
        interoperable {multimedia} {teleconferencing} systems based on
        international {open standards}.

        {Home (http://www.imtc.org/)}.

        (1999-03-17)

International Olympiad in Informatics

        <event> (IOI) An annual competition in computing science for
        senior pupils at secondary schools all over the world.

        {Home (http://www.win.tue.nl/win/ioi/)}.

        (1996-12-07)

International Organisation for Standardisation

        {International Organization for Standardization}

International Organization for Standardization

        <standard, body> (ISO) A voluntary, nontreaty organisation
        founded in 1946, responsible for creating international
        {standards} in many areas, including computers and
        communications.  Its members are the national standards
        organisations of 89 countries, including the {American
        National Standards Institute}.

        ISO produced the {OSI} seven layer model for network
        architecture.

        The term "ISO" is not actually an acronym for anything.  It is
        a pun on the Greek prefix "iso-", meaning "same".  Some ISO
        documents say ISO is not an acronym even though it is an
        anagram of the initials of the organisation's name.

        {Home (http://www.iso.ch/)}.

        (1999-06-22)

International Phonetic Alphabet

        <text, human language> (IPA) A system of symbols for
        representing pronunciation.  There is no commonly agreed way
        to represent IPA in {ASCII} characters though it can be
        represented in {Unicode}.

        [Reference?]

        (1998-12-30)

International Programmable Airline Reservation System

        <application> (IPARS) The international version of {PARS},
        designated by {IBM} for use in all IBM World trade countries
        (i.e. outside domestic USA).

        (1999-01-18)

International Smalltalk Association

        <body> (ISA) A user group which published newsletters on
        {Smalltalk}-related issues, technical and general information.
        Its goal was to champion Smalltalk and its uses.  It was
        disbanded around 1991.

        (1995-02-16)

International Standard

        <standard> The series of {standards} from {ISO} and its
        subcommitees.

        [List?  Text?]

        (1995-04-21)

International Telecommunications Union

        <body, standard> (ITU) ITU-T, the telecommunication
        standardisation sector of ITU, is responsible for making
        technical recommendations about telephone and data (including
        fax) communications systems for {PTT}s and suppliers.  Before
        1993-03-01 ITU-T was known as CCITT.  Every four years they
        hold plenary sessions where they adopt new standards; there
        was one in 1992.

        ITU works closely with all {standards} organisations to form
        an international uniform standards system for communication.
        Study Group XVII is responsible for recommending standards for
        data communications over telephone networks.  They publish the
        V.XX standards and X.n {protocols}.  {V.21} is the same as
        {EIA}'s {RS-232}.  {V.24} is the same as EIA's {RS-232C}.
        {V.28} is the same as EIA's {RS-232D}.

        Address: International Telecommunication Union, Information
        Services Department, Place des Nations, 1211 Geneva 20,
        Switzerland.

        Telephone: +41 (22) 730 5554.  Fax: +41 (22) 730 5337.

        E-mail: <helpdesk@itu.ch>, <teledoc@itu.arcom.ch> (Mail body:
        HELP).

        {Home (http://www.itu.ch/)}.

        ITU-T standards can be obtained by {FTP} from {Korea
        (ftp://kum.kaist.ac.kr/doc/STANDARDS/ccitt)}; UK - {Imperial
        (ftp://src.doc.ic.ac.uk/pub/computing/ccitt/ccitt-standards/)},
        {HENSA
        (ftp://unix.hensa.ac.uk/pub/uunet/doc/literary/obi/Standards/CCITT)};
        France - {INRIA (ftp://croton.inria.fr/ITU/ccitt)}, {IMAG
        (ftp://imag.imag.fr/doc/ccitt)}; {Israel
        (ftp://cs.huji.ac.il/pub/doc/standards/ccitt)}; FTP USA:
        {UUNET (ftp://ftp.uu.net/pub/lietrary/obi/Standards/CCITT)},
        {gatekeeper
        (ftp://gatekeeper.dec.com/pub/net/info/bruno.cs.colorado.edu/pub/standa
rds/ccitt)},
        {world.std.com (ftp://world.std.com/obi/Standards/CCITT)};
        {Australia (ftp://metro.ucc.su.oz.au/pub/ccitt)}; {Germany
        (ftp://quepasa.cs.tu-berlin.de/pub/doc/CCITT)}; {Japan
        (ftp://sh.wide.ad.jp/CCITT)};

        (1995-01-16)

International Traffic in Arms Regulation

        <legal> (ITAR) Now called the {Defense Trade Regulations}.

Internet

        <networking> (Note: capital "I").  The Internet is the largest
        {internet} in the world.  It is a three level {hierarchy}
        composed of {backbone} networks (e.g. {ARPAnet}, {NSFNet},
        {MILNET}), {mid-level network}s, and {stub network}s.  These
        include commercial (.com or .co), university (.ac or .edu) and
        other research networks (.org, .net) and military (.mil)
        networks and span many different physical networks around the
        world with various {protocol}s including the {Internet
        Protocol}.

        There were 20,242 unique commercial domains registered with
        {InterNIC} in September 1994, 10% more than in August 1994.
        There are over 100 Internet access providers in the US and a
        few in the UK (e.g. the {BBC Networking Club}, {Demon},
        {PIPEX}).

        There are several bodies associated with the running of the
        Internet, including the {Internet Architecture Board}, the
        {Internet Assigned Numbers Authority}, the {Internet
        Engineering and Planning Group}, {Internet Engineering
        Steering Group} and the {Internet Society}.

        See also {NYsernet}, {EUNet}.

        {The Internet Index (http://www.openmarket.com/intindex)} -
        statistics about the Internet.

        (1996-09-12)

internet

        <networking> (Note: not capitalised) Any set of networks
        interconnected with {routers}.  The {Internet} is the biggest
        example of an internet.

        (1996-09-17)

Internet Access Provider

        <networking, company> (IAP) A company or other origanisation
        which provides access to the {Internet} to businesses and/or
        consumers.  An IAP purchases an Internet link from another
        company that has a direct link to the Internet and resells
        portions of that {bandwidth} to the general public.

        For example, an IAP may purchase a {T1} link (1.544Mb/s) and
        resell that bandwidth in chunks consisting of {ISDN} (64Kb/s,
        128Kb/s) and analog {modems} (14.4Kb/s, 28.8Kb/s).  The IAP's
        customer base is likely to include both businesses and
        individuals.  Individual customers usually connect to the IAP
        via a modem and telephone line to a (preferably local) {point
        of presence}.

        An IAP may also be an {Internet Service Provider}.

        (1996-06-25)

Internet Adapter

        <networking, product> The Internet Adapter (TIA).  A program
        from {Cyberspace Development} which runs on a {Unix} shell
        account and acts as a {SLIP} {emulator}.  A TIA emulated SLIP
        account is not quite the same as a real SLIP account but TIA's
        SLIP emulation is completely standard in terms of working with
        {MacTCP}-based software on the {Macintosh} (or {WinSock} on a
        {Microsoft Windows} machine).

        You do not get your own {Internet Address} as you do with a
        real SLIP account, instead, TIA uses the IP number of the
        machine it runs on and "redirects" traffic back to you.  You
        cannot set up your machine as an {FTP} {server}, for instance,
        since there's no IP number for an {FTP} {client} elsewhere to
        connect to.

        TIA's performance is reportedly good, faster than normal SLIP
        in fact, and about as fast as {Compressed SLIP}.  Future
        releases will support {CSLIP} and even {PPP}.

        {Cyberspace Development} has ported TIA to several versions of
        {Unix} and more are on the way.

        {TERM} is a free program which performs a similar function
        between two machines both running {Unix}.

        {Home (http://marketplace.com/)}

        {Setting up TIA
        (http://www.webcom.com/~llarrow/tiarefg.html)}.

        {Telnet (telnet://marketplace.com)}

        {Gopher (gopher://marketplace.com/)}

        {FTP (ftp://marketplace.com/tia/)}

        E-mail: <tia-info@marketplace.com>.

        (1995-04-12)

Internet address

        <networking> (IP address, {TCP/IP} address) The 32-bit host
        address defined by the {Internet Protocol} in {STD} 5, {RFC}
        791.  It is usually represented in dotted decimal notation.

        A hosts's Internet address is sometimes related to its
        {Ethernet address}.  The Internet address is usually expressed
        in {dot notation}, e.g. 128.121.4.5.  The address can be split
        into a {network number} (or network address) and a {host
        number} unique to each host on the network and sometimes also
        a {subnet address}.  The way the address is split depends on
        its "class", A, B or C as determined by the high address bits:

        Class A - high bit 0, 7-bit network number, 24-bit host
        number.  n1.a.a.a 0 <= n1 <= 127

        Class B - high 2 bits 10, 14-bit network number, 16-bit host
        number.  n1.n2.a.a 128 <= n1 <= 191

        Class C - high 3 bits 110, 21-bit network number, 8-bit host
        number.  n1.n2.n3.a 192 <= n1 <= 223

        The Internet address must be translated into an {Ethernet
        address} by either {ARP} or {constant mapping}.

        The term is sometimes used incorrectly to refer to a host's
        {fully qualified domain name}.

        (1994-12-06)

internet address

        <networking> (Note lower case "i").  An {IP} address that
        uniquely identifies a node on an {internet}.

        (1995-04-12)

Internet Architecture Board

        (IAB) The technical body that oversees the development of the
        {Internet} suite of {protocol}s.  It has two task forces: the
        {Internet Engineering Task Force} and the {Internet Research
        Task Force}.

        "IAB" previously stood for Internet Activities Board.

        (1994-12-06)

Internet Assigned Numbers Authority

        (IANA) The central registry for various "{assigned number}s":
        {Internet} protocol parameters, such as {port}, {protocol} and
        {enterprise} numbers, and options, codes and types.  The
        currently assigned values are listed in the "Assigned Numbers"
        document {STD 2}.  To request a number assignment, e-mail
        <iana@isi.edu>.

        (1994-12-06)

Internet backbone

        <communications, networking> High-speed networks that carry
        {Internet} traffic.

        These {communications} {networks} are provided by companies
        such as {AT&T}, {GTE}, {IBM}, {MCI}, {Netcom}, {Sprint},
        {UUNET} and consist of high-speed links in the {T1}, {T3},
        {OC1} and {OC3} ranges.  The {backbones} carry {Internet}
        traffic around the world and meet at {Network Access Points}
        (NAPs).

        {Internet Service Providers} (ISPs) connect either directly to
        a backbone, or they connect to a larger ISP with a connection
        to a backbone.

        The {topology} of the "backbone" and its interconnections may
        once have resembled a spine with ribs connected along its
        length but is now almost certainly more like a fishing net
        wrapped around the world with many circular paths.

        [Map?]

        (1998-07-02)

Internet Chess Server

        <networking, games> An interactive meeting-place on the
        {Internet} where people can play {chess} against each other.

        {Usenet} newsgroup: {news:alt.chess.ics}.

        [Server address?]

        (1995-03-25)

Internet Control Message Protocol

        <protocol> (ICMP) An extension to the {Internet Protocol} (IP)
        that allows for the generation of error messages, test
        packets, and informational messages related to IP.  It is
        defined in STD 5, {RFC 792}.

        (1999-09-18)

Internet-Draft

        (I-D) A draft working document of the {Internet Engineering
        Task Force}, its Areas, and its Working Groups.  As the name
        implies, Internet-Drafts are purely discussion documents with
        no formal status.  They are valid for a maximum of six months
        and may be updated, replaced, or obsoleted by other documents
        at any time.  Very often, an I-D is a precursor to a {Request
        For Comments}.

        (1994-12-08)

Internet Engineering and Planning Group

        (IEPG) {(http://iepg.org/)}.

Internet Engineering Steering Group

        (IESG) A body composed of the {Internet Engineering Task
        Force} Area Directors and the IETF Chair.  It provides the
        first technical review of {Internet} standards and is
        responsible for day-to-day "management" of the IETF.

        (1994-12-08)

Internet Engineering Task Force

        <networking, standard, body> (IETF) The IETF is a large, open
        international community of network designers, operators,
        vendors and researchers whose purpose is to coordinate the
        operation, management and evolution of the {Internet} and to
        resolve short- and mid-range {protocol} and architectural
        issues.  It is a major source of proposals for {protocol}
        {standards} which are submitted to the {Internet Architecture
        Board} (IAB) for final approval.  The IETF meets three times a
        year and extensive minutes are included in the IETF
        Proceedings.

        The IETF Secretariat, run by The {Corporation for National
        Research Initiatives} with funding from the US government,
        maintains an index of {Internet-Drafts} whereas {RFC}s are
        maintained by The {Internet Architecture Board}.

        {Home (http://www.ietf.org)}.

        (1999-01-27)

Internet Experiment Note

        (IEN) A series of reports pertinent to the {Internet}.  IENs
        were published in parallel to RFCs and are no longer active.

        See also {Internet-Draft}, {Request For Comments}.

        (1994-12-08)

Internet Explorer

        <World-Wide Web> (IE, MSIE) {Microsoft}'s free {World-Wide
        Web} {browser} for {Microsoft Windows}, {Windows 95}, {Windows
        NT}, and {Macintosh}.  Internet Explorer is the main rival to
        {Netscape Navigator} (which runs on many more {platforms}).
        Both support the same core features and offer incompatible
        extensions.

        Microsoft combined later versions of IE with their {file
        system} browser, "Explorer" and bundled it with {Windows 95}
        in an attempt to use their dominance of the {desktop}
        {operating system} market to force users to abandon Netscape's
        browser, which they perceived as a potential threat.  This,
        and other dubious business moves, became the subject of a US
        Department of Justice antitrust trial in late 1998/early 1999.

        {Home (http://www.microsoft.com/ie/)}.

        (1999-01-31)

Internet Express

        An {Internet provider} in Colorado Springs, USA.  Formerly
        called the Community News Service.  They provide {SLIP}
        accounts at no extra charge.

        (1994-12-08)

Internet Go Server

        <games, networking> (IGS) A place for {Go} players to meet and
        play via the {Internet}.

        {(telnet://igs.nuri.net:6969/)}

        (1995-03-17)

Internet Information Server

        <World-Wide Web> (IIS) {Microsoft's} {web server} and {FTP
        server} for {Windows NT}.

        IIS is intended to meet the needs of a range of users: from
        workgroups and departments on a corporate {intranet} to {ISPs}
        hosting {web sites} that receive millions of {hits} per day.

        Features include innovative web publishing, customisable
        tools, {wizards}, customisable management tools, flexible
        administration options, and analysis tools.

        IIS makes it easy to share documents and information across a 
        company intranet or the {Internet}, and is completely
        integrated with {Windows NT Directory Services}. 

        IIS 1.0 was released for {Windows NT 3.51} and had a limited
        feature set.

        IIS 2.0 was released with {Windows NT 4.0} with a similar
        feature set to IIS 1.0.

        IIS 3.0 quickly followed with many additions including
        {Active Server Pages} (ASP), {ISAPI} and {ADO} 1.0. 

        IIS 4.0 is built into {Windows NT Server 4.0}.  It includes
        ASP 2.0, ISAPI and ADO 1.5.

        {Home (http://www.microsoft.com/iis)}.

        Rival servers include {Apache} and {Netscape Enterprise
        Server}.

        (1999-08-04)

Internet Inter-ORB Protocol

        <protocol, standard> (IIOP) A protocol which will be mandatory
        for all {CORBA} 2.0 compliant {platforms}.  The initial phase
        of the project is to build an infrastructure consisting of: an
        IIOP to {HTTP} {gateway} which allows CORBA {clients} to
        access {WWW} resources; an HTTP to IIOP gateway to let WWW
        clients access CORBA resources; a {web server} which makes
        resources available by both IIOP and HTTP; web browsers which
        can use IIOP as their {native} protocol.

        {Home (http://www.ansa.co.uk/ANSA/ISF/wwwCorba_1.html)}

        (1996-04-01)

Internet Message Access Protocol

        <protocol, messaging> (IMAP) A {protocol} allowing a {client}
        to access and manipulate {electronic mail} messages on a
        {server}.  It permits manipulation of remote message folders
        ({mailboxes}), in a way that is functionally equivalent to
        local mailboxes.

        IMAP includes operations for creating, deleting, and renaming
        mailboxes; checking for new messages; permanently removing
        messages; searching; and selective fetching of message
        attributes, texts, and portions thereof.  It does not specify
        a means of posting mail; this function is handled by a mail
        transfer protocol such as {SMTP}.

        The Current version of the protocol is 4 which is described in
        {RFC 2060}, {RFC 2061}, and several others.

        Compare: {POP}.

        (1999-03-14)

Internet Monthly Report

        (IMR) Publication designed to communicate to the {Internet
        Research Group} the accomplishments, milestones reached, or
        problems discovered by the participating organisations.

        (1994-12-08)

Internet Network Information Center

        <networking> (InterNIC) In cooperation with the Internet
        community, the {National Science Foundation} developed and
        released in the Spring of 1992 a solicitation for one or more
        {Network Information Service} (NIS) Managers to provide and/or
        coordinate services for the {NSFNet} community.  Three
        organisations were selected to receive cooperative agreements
        in the areas of Information Services, Directory and Database
        Services, and Registration Services.  Together these three
        awards constitute the InterNIC.  General Atomics provides
        information services, AT&T provides directory and database
        services, and {Network Solutions, Inc.} (NSI) provides
        registration services.

        {Home (http://www.internic.net/)}.

        (1999-07-09)

internet number

        {internet address}

Internet Protocol

        (IP) The {network layer} for the {TCP/IP} {protocol} suite
        widely used on {Ethernet} networks, defined in {STD} 5, {RFC}
        791.  IP is a {connectionless}, {best-effort} {packet
        switching} protocol.  It provides {packet} {routing},
        {fragmentation} and re-assembly through the {data link layer}.

        (1994-12-08)

Internet Protocol Control Protocol

        <networking> (IPCP) The {Control Protocol} for {Internet
        Protocol}.

        (1995-09-27)

Internet Protocol Version 6

        <networking, protocol> (IPv6, IPng, IP next generation) The
        most viable candidate to replace the current {Internet
        Protocol}.  The primary purpose of IPv6 is to solve the
        problem of the shortage of {IP addresses}.

        The following features have been purposed: 16-byte addresses
        instead of the current four bytes; embedded {encryption} - a
        32-bit {Security Association ID} (SAID) plus a variable length
        initialisation vector in {packet} headers; user
        {authentication} (a 32-bit SAID plus variable length
        {authentication} data in headers); autoconfiguration
        (currently partly handled by {Dynamic Host Configuration
        Protocol}); support for {delay-sensitive traffic} - a 24 bit
        flow ID field in headers to denote voice or video, etc.

        One possible solution is based on the {TUBA} protocol (RFC
        1347, 1526, 1561) which is itself based on the {OSI}
        {Connectionless Network Protocol} (CNLP).  Another is {TP/IX}
        (RFC 1475) which changes {TCP} and {UDP} headers to give a
        64-bit {IP address}, a 32-bit {port} number, and a 64 bit
        sequence number.

        {RFC 1550} is a white paper on IPng.

        ["Doubts About IPng could create TCP/IP chaos", Johna Till
        Johnson, Data Communications, Nov 1994].

        (1995-04-03)

Internet Public Library

        (IPL) A project at the {University of Michigan} School of
        Information and Library Studies to provide an on-line, 24 hour
        public library, chaired by an assemblage of librarians and
        information industry professionals.  The library aims to
        provide library services to a target audience estimated to
        number 1/4 of the entire American population by the end of the
        century.

        The Internet Public Library is scheduled to go on-line in
        March 1995.  Among the first services will be on-line
        reference; youth services; user education; and professional
        services for librarians.

        {Home (http://ipl.sils.umich.edu/)}

        {(telnet://ipl.sils.umich.edu/)}

        Mailing list: majordomo@sils.umich.edu.

        (1995-07-20)

Internet Registry

        (IR) The {Internet Assigned Numbers Authority} has the
        discretionary authority to delegate portions of its
        responsibility and, with respect to {network address} and
        {Autonomous System} identifiers, has lodged this
        responsibility with the {IR}.  The IR function is performed by
        the {Defense Data Network} {Network Information Center}.

Internet Relay Chat

        <chat, messaging> (IRC) /I-R-C/, occasionally /*rk/ A
        {client-server} {chat} system of large (often worldwide)
        networks.  IRC is structured as networks of {Internet}
        {servers}, each accepting connections from {client} programs,
        one per user.

        The IRC community and the {Usenet} and {MUD} communities
        overlap to some extent, including both {hackers} and regular
        folks who have discovered the wonders of computer networks.
        Some {Usenet} jargon has been adopted on IRC, as have some
        conventions such as {emoticons}.  There is also a vigorous
        native jargon (see the entry for "{chat}").

        The largest and first IRC network is {EFNet}, with a smaller
        breakaway network called the {Undernet} having existed since
        1992, and dozens of other networks having appeared (and
        sometimes disappeared) since.

        See also {nick}, {bot}, {op}.

        {Yahoo's IRC index
        (http://www.yahoo.com/Computers_and_Internet/Internet/Chat/IRC/)}

        (1998-01-25)

Internet Research Steering Group

        <body, standard> (IRSG) The "governing body" of the {Internet
        Research Task Force}.

        (1994-12-08)

Internet Research Task Force

        (IRTF) The IRTF is chartered by the {Internet Architecture
        Board} to consider long-term {Internet} issues from a
        theoretical point of view.  It has Research Groups, similar to
        {Internet Engineering Task Force} Working Groups, which are
        each tasked to discuss different research topics.  Multi-cast
        audio/video conferencing and {privacy enhanced mail} are
        samples of IRTF output.

        (1994-12-08)

Internet Security Association and Key Management Protocol

        <networking, protocol> (ISAKMP) The definitions and procedures
        for {authenticating} communication between 2 {peers}.  This
        includes the creation and management of {Security
        Associations}, {key} generation techniques and {threat
        mitigation}.

        {Draft RFC
        (http://www.alternic.net/rfcs/draft-ietf-ipsec-isakmp-05.txt.html)}.

        (1997-07-09)

Internet Server Application Programming Interface

        <World-Wide Web> (ISAPI) {Microsoft}'s programming interface
        between applications and their {Internet Server}.  Active
        Servers created with ISAPI extensions can be complete
        in-process applications themselves, or can "connect" to other
        services.  ISAPI is used for the same sort of functions as
        {CGI} but uses {Microsoft Windows} {dynamic link libraries}
        (DLL) for greater efficiency.  The server loads the DLL the
        first time a request is received and the DLL then stays in
        memory, ready to service other requests until the server
        decides it is no longer needed.  This minimises the overhead
        associated with executing such applications many times.

        An HTTP server can unload ISAPI application DLLs to free
        memory or preload them to speed up the first access.
        Applications can also be enhanced by {ISAPI filter}s

        (1997-01-06)

Internet Service Provider

        <company, networking> (ISP) A company which provides other
        companies or individuals with access to, or presence on, the
        {Internet}.  Most ISPs are also {Internet Access Providers};
        extra services include help with design, creation and
        administration of {World-Wide Web} sites, training, and
        administration of {intranets}.

        (1996-06-24)

Internet Society

        <body> (ISOC) A non-profit, professional membership
        organisation which facilitates and supports the technical
        evolution of the {Internet}, stimulates interest in and
        educates the scientific and academic communities, industry and
        the public about the technology, uses and applications of the
        Internet, and promotes the development of new applications for
        the system.  The Society provides a forum for discussion and
        collaboration in the operation and use of the global Internet
        infrastructure.

        The Internet Society publishes a quarterly newsletter, the
        Internet Society News, and holds an annual conference, INET.
        The development of Internet technical standards takes place
        under the auspices of the Internet Society with substantial
        support from the {Corporation for National Research
        Initiatives} under a cooperative agreement with the US Federal
        Government.

        {Home (http://info.isoc.org/)}.

        (1994-10-27)

Internet Telephony

        {IP Telephony}

Internet Telephony Service Providers

        <communications> (ITSP) Companies providing {IP Telephony}.

        (1999-04-26)

internetworking

        The interconnection of two or more {network}s, usually {local
        area network}s so that data can pass between {host}s on the
        different networks as though they were one network.  This
        requires some kind of {router} or {gateway}.

        (1994-11-30)

Internetwork Packet eXchange

        <networking> (IPX) A {network layer} {protocol} initially
        developed at {XEROX Corporation} and made popular by {Novell,
        Inc.} as the basic protocol in its {Novell NetWare} {file
        server} {operating system}.

        A {router} with IPX routing can interconnect {Local Area
        Networks} so that Netware {clients} and {servers} can
        communicate.

        The {SPX} {transport layer} protocol runs on top of IPX.

        (1997-03-04)

Internet Worm

        <networking, security> The November 1988 {worm} perpetrated by
        {Robert T. Morris}.  The worm was a program which took
        advantage of bugs in the {Sun} {Unix} {sendmail} program,
        {Vax} programs, and other security loopholes to distribute
        itself to over 6000 computers on the {Internet}.  The worm
        itself had a bug which made it create many copies of itself on
        machines it infected, which quickly used up all available
        processor time on those systems.

        Some call it "The Great Worm" in a play on Tolkien (compare
        {elvish}, {elder days}).  In the fantasy history of his Middle
        Earth books, there were dragons powerful enough to lay waste
        to entire regions; two of these (Scatha and Glaurung) were
        known as "the Great Worms".  This usage expresses the
        connotation that the RTM hack was a sort of devastating
        watershed event in hackish history; certainly it did more to
        make non-hackers nervous about the Internet than anything
        before or since.

        (1995-01-12)

Internex On-Line

        A rather cheap {Internet} service provider in Toronto, Canada.

        {(http://www.io.org/)}

        (1994-11-30)

InterNIC

        {Internet Network Information Center}

interoperability

        The ability of software and hardware on multiple machines from
        multiple vendors to communicate.

interoperable database

        A {database} {front-end} which communicates with multiple
        heterogenous databases and makes them appear as a single
        homogenous entity with {semantic call}s.

        See {ODBC}.

        (1995-02-06)

inter-packet gap

        <networking> A time delay between successive data {packets}
        mandated by the network standard for {protocol} reasons.

        In {Ethernet}, the medium has to be "silent" (i.e., no data
        transfer) for a few microseconds before a {node} can consider
        the network idle and start to transmit.  This is necessary for
        fairness reasons.  The delay time, which approximately equals
        the signal propagation time on the cable, allows the "silence"
        to reach the far end so that all nodes consider the net idle.

        (1995-11-11)

interpolation

        <mathematics, algorithm> A mathematical procedure which
        estimates values of a {function} at positions between listed
        or given values.  Interpolation works by fitting a "curve"
        (i.e. a function) to two or more given points and then
        applying this function to the required input.  Example uses
        are calculating {trigonometric functions} from tables and
        audio waveform sythesis.

        The simplest form of interpolation is where a function, f(x),
        is estimated by drawing a straight line ("linear
        interpolation") between the nearest given points on either
        side of the required input value:

                f(x) ~ f(x1) + (f(x2) - f(x1))(x-x1)/(x2 - x1)

        There are many variations using more than two points or higher
        degree {polynomial} functions.  The technique can also be
        extended to functions of more than one input.

        (1997-07-14)

Interpress

        Interpreted {FORTH}-like graphics language, possibly the first
        {page description language}, predating {PostScript}.  Both are
        descendants of {JaM}.  Used on {Xerox} printers.

        ["Interpress, The Source Book", Steven Harrington et al, P-H
        1988.]

interpreted

        {interpreter}

interpreter

        <programming> A program which executes other programs.  This
        is in contrast to a {compiler} which does not execute its
        input program (the "{source code}") but translates it into
        executable "{machine code}" (also called "{object code}")
        which is output to a file for later execution.  It may be
        possible to execute the same source code either directly by an
        interpreter or by compiling it and then executing the {machine
        code} produced.

        It takes longer to run a program under an interpreter than to
        run the compiled code but it can take less time to interpret
        it than the total required to compile and run it.  This is
        especially important when prototyping and testing code when an
        edit-interpret-debug cycle can often be much shorter than an
        edit-compile-run-debug cycle.

        Interpreting code is slower than running the compiled code
        because the interpreter must analyse each statement in the
        program each time it is executed and then perform the desired
        action whereas the compiled code just performs the action.
        This run-time analysis is known as "interpretive overhead".
        Access to variables is also slower in an interpreter because
        the mapping of identifiers to storage locations must be done
        repeatedly at run-time rather than at compile time.

        There are various compromises between the development speed
        when using an interpreter and the execution speed when using a
        compiler.  Some systems (e.g. some {Lisp}s) allow interpreted
        and compiled code to call each other and to share variables.
        This means that once a routine has been tested and debugged
        under the interpreter it can be compiled and thus benefit from
        faster execution while other routines are being developed.
        Many interpreters do not execute the source code as it stands
        but convert it into some more compact internal form.  For
        example, some {BASIC} interpreters replace {keywords} with
        single byte tokens which can be used to {index} into a {jump
        table}.  An interpreter might well use the same {lexical
        analyser} and {parser} as the compiler and then interpret the
        resulting {abstract syntax tree}.

        There is thus a spectrum of possibilities between interpreting
        and compiling, depending on the amount of analysis performed
        before the program is executed.  For example {Emacs Lisp} is
        compiled to "{byte-code}" which is a highly compressed and
        optimised representation of the Lisp source but is not machine
        code (and therefore not tied to any particular hardware).
        This "compiled" code is then executed (interpreted) by a {byte
        code interpreter} (itself written in {C}).  The compiled code
        in this case is {machine code} for a {virtual machine} which
        is implemented not in hardware but in the byte-code
        interpreter.

        See also {partial evaluation}.

        (1995-01-30)

Interpretive Menu Processor

        <language> (IMP) The language used to implement much of the
        {user interface} of the {Alis} {office automation} package
        from {Applix, Inc}.

        (1996-04-07)

Inter-process Communication

        <programming, operating system> (IPC) Exchange of data between
        one {process} and another, either within the same computer or
        over a {network}.  It implies a {protocol} that guarantees a
        response to a request.  Examples are {Unix} {sockets}, {RISC
        OS}'s messages, {OS/2}'s {Named Pipes}, {Microsoft Windows}'
        {DDE}, {Novell}'s {SPX} and {Macintosh}'s IAC.

        Although IPC is performed automatically by programs, an
        analogous function can be performed interactively when users
        cut and paste data from one process to another using a
        {clipboard}.

        (1995-12-14)

interrupt

        <programming> 1. An {asynchronous} event that suspends normal
        processing and temporarily diverts the {flow of control}
        through an "{interrupt handler}" routine.

        Interrupts may be caused by both {hardware} (I/O, timer,
        machine check) and {software} (supervisor, {system call} or
        {trap} instruction).

        In general the computer responds to an interrupt by storing
        the information about the current state of the running
        program; storing information to identify the source of the
        interrupt; and invoking a first-level {interrupt handler}.
        This is usually a {kernel} level privileged process that can
        discover the precise cause of the interrupt (e.g. if several
        devices share one interrupt) and what must be done to keep
        operating system tables (such as the process table) updated.
        This first-level handler may then call another handler,
        e.g. one associated with the particular device which generated
        the interrupt.

        2. Under {MS-DOS}, nearly synonymous with "{system call}"
        because the {OS} and {BIOS} routines are both called using the
        INT instruction (see {interrupt list}) and because programmers
        so often have to bypass the operating system (going directly
        to a BIOS interrupt) to get reasonable performance.

        (1995-02-07)

interrupt handler

        A routine which is executed when an {interrupt} occurs.
        Interrupt handlers typically deal with low-level events in the
        hardware of a computer system such as a character arriving at
        a {serial port} or a tick of a {real-time clock}.  Special
        case is required when writing an interrupt handler to ensure
        that either the interrupt which triggered the handler's
        execution is masked out (inhibitted) until the handler is
        done, or the handler is written in a {re-entrant} fashion so
        that multiple concurrent invocations will not interfere with
        each other.

        If interrupts are masked then the handler must execute as
        quickly as possible so that important events are not missed.
        This is often arranged by splitting the processing associated
        with the event into "upper" and "lower" halves.  The lower
        part is the interrupt handler which masks out further
        interrupts as required, checks that the appropriate event has
        occurred (this may be necessary if several events share the
        same interrupt), services the interrupt, e.g. by reading a
        character from a {UART} and writing it to a {queue}, and
        re-enabling interrupts.

        The upper half executes as part of a user process.  It waits
        until the interrupt handler has run.  Normally the {operating
        system} is responsible for reactivating a process which is
        waiting for some low-level event.  It detects this by a shared
        {flag} or by inspecting a shared queue or by some other
        synchronisation mechanism.  It is important that the upper and
        lower halves do not interfere if an interrupt occurs during
        the execution of upper half code.  This is usually ensured by
        disabling interrupts during {critical section}s of code such
        as removing a character from a queue.

        (1994-10-27)

interrupt list

        [{MS-DOS}] The list of all known {software interrupt} calls
        (both documented and undocumented) for {IBM PC}s and
        compatibles, maintained and made available for free
        redistribution by Ralf Brown <ralf@cs.cmu.edu>.  As of late
        1992, it had grown to approximately two megabytes in length.

interrupt priority level

        The {Motorola 68000} family of processors can be at an
        interrupt priority level from 0 (no interrupt in progress) up
        to 7.  While the processor is handling an interrupt at one
        level, it will ignore other interrupts at that level or lower.

        (1994-11-23)

interrupt request

        (IRQ) The name of an input found on many processors which
        causes the processor to suspend normal instruction execution
        temporarily and to start executing an {interrupt handler}
        routine.  Such an input may be either "{level sensitive}" -
        the {interrupt} condition will persist as long as the input is
        active or "{edge triggered}" - an interrupt is signalled by a
        low-to-high or high-to-low transition on the input.  Some
        processors have several interrupt request inputs allowing
        different priority interrupts.

        (1994-12-08)

interrupts

        {interrupt}

Intersil 6100

        (IMS 6100) A single chip design of the {DEC} {PDP-8}
        {minicomputer}.  The old PDP-8 design was very strange, and if
        it hadn't been popular, an awkward {CPU} like the 6100 would
        never been designed.

        The 6100 was a 12-bit processor, which had exactly three
        {register}s - the {PC}, AC (an accumulator) and MQ.  All 2
        operand instructions read AC and MQ and wrote back to AC.  It
        had a 12-bit {address bus}, limiting {RAM} to only 4K.  Memory
        references were 7-bit (128 word) offset either from address 0,
        or the PC.

        It had no {stack}.  Subroutines stored the {PC} in the first
        word of the subroutine code itself, so {recursion} required
        fancy programming.

        4K RAM was pretty much hopeless for general purpose use.  The
        6102 support chip (included in the 6120) added 3 address
        lines, expanding memory to 32K the same way that the PDP-8/E
        expanded the PDP-8.  Two registers, IFR and DFR, held the page
        for instructions and data respectively (IFR was always used
        until a data address was detected).  At the top of the 4K
        page, the PC wrapped back to 0, so the last instruction on a
        page had to load a new value into the IFR if execution was to
        continue.

        (1994-11-23)

Intersil 6120

        (IMS 6120) An improved version of the {Intersil 6100}, used in
        the {DECmate}.

        (1994-11-23)

interupt

        <spelling> It's spelled "{interrupt}".

        (1996-12-13)

InterViews

        An object-oriented toolkit developed at Stanford University
        for building graphical user interfaces.  It is implemented in
        C++ and provides a library of objects and a set of protocols
        for composing them.

interworking

        <standard> Systems or components, possibly from different
        origins, working together to perform some task.  Interworking
        depends crucially on {standards} to define the {interfaces}
        between the components.  The term implies that there is some
        difference between the components which, in the absence of
        common standards, would make it unlikely that they could be
        used together.  For example, {software} from different
        companies, running on different {hardware} and {operating
        systems} can interwork via standard network {protocols}.

        (1998-11-22)

intranet

        <networking> Any {network} which provides similar services
        within an organisation to those provided by the {Internet}
        outside it but which is not necessarily connected to the
        Internet.  The commonest example is the use by a company of
        one or more {World-Wide Web} servers on an internal {TCP/IP}
        network for distribution of information within the company.

        Since about 1995, intranets have become a major growth area in
        corporate computing due to the availability of cheap or free
        commercial {browser} and {web server} software which allows
        them to provide a simple, uniform {hypertext} interface to
        many kinds of information and {application programs}.

        Some companies give limited access to their intranets to other
        companies or the general public.  This is known as an
        "{extranet}".

        (1997-07-14)

Intrinsics

        <operating system, graphics> A library package on top of
        {Xlib}, extending the basic functions of the {X Window
        System}.  It provides mechanisms for building {widget sets}
        and application environments.

        (1996-08-26)

Intrusion Countermeasure Electronics

        (ICE) A contrived acronym coined by {Usenet}ter Tom Maddox and
        popularised by William Gibson's {cyberpunk} SF novels.
        Security software (in Gibson's novels, software that responds
        to intrusion by attempting to literally kill the intruder).
        Also, "icebreaker": a program designed for cracking security
        on a system.

        Neither term is in serious use yet as of mid-1993, but many
        hackers find the metaphor attractive, and each may develop a
        denotation in the future.

        (1995-02-08)

Intrusive Testing

        <testing> Testing that collects timing and processing
        information during program execution that may change the
        behaviour of the software from its behavior in a real
        environment.  Intrusive testing usually involves additional
        code embedded in the software being tested or additional
        processes running concurrently with software being tested on
        the same processor.

        (1996-12-01)

Intuition

        <operating system> The {Amiga} {windowing system} (a
        shared-code library).

        (1997-08-01)

intuitionism

        {intuitionist logic}

intuitionist logic

        <logic, mathematics> Brouwer's foundational theory of
        mathematics which says that you should not count a proof of
        (There exists x such that P(x)) valid unless the proof
        actually gives a method of constructing such an x.  Similarly,
        a proof of (A or B) is valid only if it actually exhibits
        either a proof of A or a proof of B.

        In intuitionism, you cannot in general assert the statement (A
        or not-A) (the principle of the {excluded middle}); (A or
        not-A) is not proven unless you have a proof of A or a proof
        of not-A.  If A happens to be {undecidable} in your system
        (some things certainly will be), then there will be no proof
        of (A or not-A).  This is pretty annoying; some kinds of
        perfectly healthy-looking proofs by contradiction just stop
        working.  Of course, excluded middle is a theorem of
        {classical logic} (i.e. non-intuitionist logic).

        (1995-04-13)

invariant

        <programming> A rule, such as the {ordering} of an ordered
        list or {heap}, that applies throughout the life of a data
        structure or procedure.  Each change to the data structure
        must maintain the correctness of the invariant.

        (1996-03-12)

inverse

        <mathematics> Given a {function}, f : D -> C, a function g : C
        -> D is called a left inverse for f if for all d in D, g (f d)
        = d and a right inverse if, for all c in C, f (g c) = c and an
        inverse if both conditions hold.  Only an {injection} has a
        left inverse, only a {surjection} has a right inverse and only
        a {bijection} has inverses.  The inverse of f is often written
        as f with a -1 superscript.

        (1996-03-12)

inverted index

        <database, information science> A sequence of ({key}, pointer)
        pairs where each pointer points to a {record} in a {database}
        which contains the key value in some particular field.  The
        index is sorted on the key values to allow rapid searching for
        a particular key value, using e.g. {binary search}.  The index
        is "inverted" in the sense that the key value is used to find
        the record rather than the other way round.  For databases in
        which the records may be searched based on more than one
        field, multiple indices may be created that are sorted on
        those keys.

        An index may contain gaps to allow for new entries to be added
        in the correct sort order without always requiring the
        following entries to be shifted out of the way.

        (1995-02-08)

InWorld VR

        <company, virtual reality> Manufacturers of the {CyberWand}.

        (1995-04-04)

io

        <networking> The {country code} for British Indian Ocean
        territory.

        (1999-01-27)

I/O

        {Input/Output}

IOI

        {International Olympiad in Informatics}

Iomega Corporation

        <company, storage> A storage device manufacturer whose major
        products are the {Zip} and {Jaz} removable {disk drives} and
        {Ditto} {tape drives}.  They became popular with an early
        product called the {Bernoulli Box}.

        These products fall in line with their focus set in 1994 "to
        help people manage their stuff".  The company's stated aim is
        to create portable, fast, large and cheap storage solutions.
        Iomega's major competitor in the growing market for removable
        disks is {SyQuest}, who seem to always be a few weeks behind
        them.

        In general, Iomega target the {Small Office/Home Office}.
        They are also investigating the growing {digital photography}
        market which also needs large removable storage devices.

        Iomega's president and CEO is Kim Edwards.  They have nearly
        2000 employees in offices world-wide.  Revenue for the quarter
        ending Dec 1996 was $371 million and net income was $20
        million.

        Headquarters: Roy, Utah, USA.

        {Home (http://www.iomega.com/index.html)}.

        (1997-04-15)

I-OOA

        A tool, developed and sold by the Kennedy-Carter company, that
        supports the {Schlaer Mellor} design method, and that
        generates code in {C} and {C++}.  This tool can be modified to
        generate code of different styles, and also, to generate code
        in different programming languages.

        (1995-01-31)

I/O redirection

        {input/output redirection}

IOS

        {Internetworking Operating System}

Iota

        <language, specification> A specification language.

        ["The Iota Programming System", R. Nakajima er al, Springer
        1983].

        (1994-12-08)

IOT&E

        {Initial Operational Test and Evaluation}

IOW

        <chat> in other words.

        (1997-05-26)

IP

        {Internet Protocol}

IPA

        {International Phonetic Alphabet}

IP address

        {Internet address}

IPARS

        {International Programmable Airline Reservation System}

I-Pay

        <protocol> A Dutch only payment system for the {Internet}.

        [Reference?]

        (1998-04-28)

IPC

        {Inter-Process Communication}

IPCP

        {Internet Protocol Control Protocol}

IPE

        {Integrated Programming Environment}

IPL

        1. {Information Processing Language}.

        2. {Internet Public Library}.

        3. {Initial Program Load}.

        4. {Initial Program Loader}.

        (1997-08-31)

IP next generation

        {Internet Protocol Version 6}

IPng

        {Internet Protocol Version 6}

IP number

        {Internet address}

IPS

        A {thread}ed language.

        ["IPS, An Unorthodox High Level Language", K. Meinzer, BYTE
        pp. 146-159 (Jan 1979)].

        (1994-11-04)

IPSE

        {Integrated Project Support Environment}

IPSec

        <networking, protocol> ("{IP} Secure"?) A {protocol} that
        provides {security} for transmission of sensitive information
        over unprotected networks such as the {Internet}.  IPSec acts
        at the {network layer}, protecting and authenticating {IP}
        {packets} between participating IPSec devices ("peers"), such
        as {Cisco} {routers}.

        [Reference?]

        (1999-08-26)

IPT

        {IP Telephony}

IP Telephony

        <communications> (IPT, Internet Telephony) Use of {IP} data
        connections to exchange {voice} and {fax} data that have
        traditionally been carried over the {public switched telephone
        network}.

        During the late 1990s, an increasing number of telephone calls
        have been routed over the {Internet}.  Calls made in this way
        avoid PSTN charges.  Unlike traditional telephony, IP
        telephony is relatively unregulated.

        Companies providing these services are known as {Internet
        Telephony Service Providers} (ITSPs).  They include telephone
        companies, cable TV companies and {Internet Service Providers}
        (ISPs).

        There are still many problems with voice quality, {latency},
        {compression} {algorithms}, and {quality of service}.

        {Voice over IP} is an organised effort to standardise IP
        telephony.

        See also {Computer Telephone Integration}.

        {Internet Telephony Overview
        (http://www.fokus.gmd.de/research/cc/glone/projects/ipt/)}.

        (1999-03-17)

IPv6

        {Internet Protocol version 6}

IPX

        {Internetwork Packet eXchange}

IPXCP

        <networking> {Internetwork Packet eXchange} {Control
        Protocol}.

        (1995-09-27)

IQ

        Pictorial query language, implemented in Ratfor.

        ["Structured Implementation of an Image Query Language",
        Y.E. Lien et al, in Database Techniques for Pictorial
        Applications, A. Blaser ed, pp.416-430].

iq

        <networking> The {country code} for Iraq.

        (1999-01-27)

IQL

        An object-oriented deductive language/database system.

IR

        1. <networking> {Internet Registry}.

        2. <electronics> {infrared}.

        (1997-01-30)

ir

        <networking> The {country code} for Iran.

        (1999-01-27)

IRC

        {Internet Relay Chat}

ircop

        <messaging> /*r'-kop/ ("{IRC}" + "{op}", but with the,
        presumably intentional, alternate analysis "IRC" + "cop")
        Someone who is endowed with privileges on {IRC}, not limited
        to a particular {channel}.  These privileges include {channel
        op} privileges in any channel, but also notably include the
        ability to disconnect a user from the IRC network.

        Ircops are generally people who are in charge of the IRC
        {server} at their particular {site}.  Compare {op}.

        (1997-12-12)

IRC penis war

        {penis war}

IRDATA

        <robotics> Industrial Robot DATA.  A standardised robot
        control code.  "IRDATA, Industrial Robot Data", DIN 66313,
        Beuth-Verlag 1991.

IRDP

        {ICMP Router Discovery Protocol}

IRDS

        Information Resource Dictionary System.  A set of ISO
        standards for CASE repositories.  It governs the definition of
        data dictionaries to be implemented on top of relational
        databases (see repository, data dictionary).

IRET

        {Return from interrupt}

IRIS

        Institute for Research in Information and Scholarship of Brown
        University (Providence RI).

        (1994-11-04)

Iris

        An {object-oriented} {DBMS}.

        (1994-11-04)

IRIX

        <operating system> /ir'iks/ The main {operating system} used
        by {Silicon Graphics} {workstations} and {servers}.  IRIX is
        {multiprocessor} and {multi-threaded}.  It incorporates
        substantial functionality from {UNIX} {System V}, Release 4.1
        and 4.2.

        (1997-06-17)

IRL

        1. <jargon, chat> In real life.  Generally synonymous with
        {f2f}.

        2. <language, robotics> {Industrial Robot Language}.

        (1997-01-31)

IRM

        {Information Resource Management}

iron

        Hardware, especially older and larger hardware of {mainframe}
        class with big metal cabinets housing relatively low-density
        electronics (but the term is also used of modern
        {supercomputer}s).  Often in the phrase {big iron}.  Oppose
        {silicon}.

        See also {dinosaur}.

        (1994-11-04)

Iron Age

        <history> In the history of computing, 1961-1971 - the
        formative era of commercial {mainframe} technology, when
        {ferrite core memory} {dinosaurs} ruled the earth.  The Iron
        Age began, ironically enough, with the delivery of the first
        {minicomputer} (the PDP-1) and ended with the introduction of
        the first commercial microprocessor (the Intel 4004) in 1971.

        See also {Stone Age}; compare {elder days}.

        (1997-02-19)

iron box

        [Unix/Internet] A special environment set up to trap a
        {cracker} logging in over remote connections long enough to be
        traced.  May include a modified {shell} restricting the
        cracker's movements in unobvious ways, and "bait" files
        designed to keep him interested and logged on.  See also {back
        door}, {firewall machine}, {Venus flytrap}, and Clifford
        Stoll's account in "{The Cuckoo's Egg}" of how he made and
        used one.  Compare {padded cell}.

Ironman

        HOLWG, DoD, Jan 1977, revised Jul 1977.  Fourth of the series
        of DoD requirements that led to Ada.  "Department of Defense
        Requirements for High Order Computer Programming Languages",
        SIGPLAN Notices 12(12):39-54 (Dec 1977).  "Revised Ironman
        Requirements for High Order Computer Programming Languages",
        US Dept of Defense, Jul 1977.  (See Strawman, Woodenman,
        Tinman, Steelman).

ironmonger

        [IBM]  A hardware specialist (derogatory).  Compare
        {sandbender}, {polygon pusher}.

IRQ

        {interrupt request}

irrational number

        <mathematics> A {real number} which is not a {rational
        number}, i.e. it is not the ratio of two {integer}s.

        The decimal expansion of an irrational is infinite but does
        not end in an infinite repeating sequence of digits.

        Examples of irrational numbers are {pi}, {e} and the square
        root of two.

        (1995-04-12)

irrefutable

        The opposite of {refutable}.

IRSG

        {Internet Research Steering Group}

IRTF

        {Internet Research Task Force}

IRUS

        {Irvine Research Unit in Software}

Irvine Dataflow

        <language> (Always called "Id") A non-{strict}, {single
        assignment} language and {incremental compiler} developed by
        Arvind and Gostelow and used on {MIT}'s {Tagged-Token Dataflow
        Architecture} and planned to be used on {Motorola}'s
        {Monsoon}.

        See also {Id Nouveau}.

        ["An Asynchronous Programming Language for a Large
        Multiprocessor Machine", Arvind et al, TR114a, Dept ISC, UC
        Irvine, Dec 1978].

        ["The U-Interpreter", Arvind et al, Computer 15(2):42-50,
        1982].

        (1998-02-14)

Irvine Research Unit in Software

        <body> (IRUS) The {University of California, Irvine}.

        [Details?]

        (1995-04-18)

IS

        1. <standard> {International Standard}.

        2. {Intermediate System}.

is

        <networking> The {country code} for Iceland.

        (1999-01-27)

IS-11172

        <standard> The {International Standard} for {MPEG-1}
        {compression}.

        (1999-01-06)

IS-13818

        <standard> The {International Standard} for {MPEG-2}
        {compression}.

        (1999-01-06)

ISA

        1. <architecture> {Integrated Systems Architecture}.

        2. <body> {International Smalltalk Association}.

        3. <architecture> {instruction set architecture}.

        4. <architecture> {Industry Standard Architecture}.

        (1997-02-13)

Isabelle

        <theory, tool> A generic {theorem prover} with support for
        several {object-logics}, developed by Lawrence C. Paulson
        <Larry.Paulson@cl.cam.ac.uk> in collaboration with {Tobias
        Nipkow (http://www.in.tum.de/~nipkow/)} at the {Technical
        University of Munich}.

        A system of {type classes} allows {polymorphic} object-logics
        with {overloading} and automatic {type inference}.

        Isabelle supports {first-order logic} - {constructive} and
        classical versions; {higher-order logic}, similar to Gordon's
        {HOL}; {Zermelo Frnkel set theory}; an {extensional} version
        of {Martin Lf}'s {type theory}, the classical first-order
        {sequent calculus}, {LK}; the {modal logics} {T}, {S4}, and
        {S43}; and {Logic for Computable Functions}.

        An object logic's {syntax} and {inference rules} are specified
        {declaratively} allowing single-step proof construction.
        {Proof procedures} can be expressed using "tactics" and
        "tacticals".  Isabelle provides control structures for
        expressing search procedures and generic tools such as
        simplifiers and classical theorem provers which can be applied
        to object-logics.  Isabelle is built on top of {Standard ML}
        and uses its user interface.

        {Home (http://www.cl.cam.ac.uk/Research/HVG/Isabelle/)}.

        Mailing list: isabelle-users@cl.cam.ac.uk.

        ["tactics"?  "tacticals"?]

        (1999-07-26)

Isabelle-92

        {Isabelle}

Isabelle-93

        {Isabelle}

ISA bus

        {Industry Standard Architecture}

ISAKMP

        {Internet Security Association Key Management Protocol}

ISAM

        {Indexed Sequential Access Method}

ISAPI

        {Internet Server Application Programming Interface}

ISAPI filter

        <World-Wide Web> A replaceable {DLL} which the {server} calls
        whenever there is an {HTTP} request.  When the filter is first
        loaded, it communicates to the server what sort of
        notifications will be accepted.  After that, whenever a
        selected event occurs, the filter is called to process the
        event.

        Example applications of ISAPI filters include custom
        {authentication} schemes, {compression}, {encryption},
        logging, traffic analysis or other request analyses.

        (1997-01-06)

ISBL

        <language> A mathematical {query language}.

        [Stands for?  Details?]

        (1997-01-06)

ISDE

        Integrated Software Development Environment: equivalent to an
        IPSE.

ISDN

        {Integrated Services Digital Network}

ISE

        {Interactive Software Engineering}

ISEE

        Integrated {Software Engineering Environment} - equivalent to
        {SEE}.

I see no X here.

        <games> Hackers (and the interactive computer games they
        write) traditionally favour this slightly marked usage over
        other possible equivalents such as "There's no X here!" or "X
        is missing."  or "Where's the X?".  This goes back to the
        original PDP-10 {ADVENT}, which would respond in this wise if
        you asked it to do something involving an object not present
        at your location in the game.

ISETL

        Interactive {SETL} by Gary Levin <gary@clutx.clarkson.edu>.
        Current version: 3.0.

        {Binaries (ftp://sun.soe.clarkson.edu/)} and source for
        {MS-DOS}, {Macintosh}, {Unix}, {VAX}/{VMS}.

        [Clarkson U.  "An Introduction to ISETL Version 1.9",
        G.M. Levin, Dept MCS, Clarkson U].

        ["Learning discrete mathematics with ISETL", Nancy Baxter.
        Ed. Gary Levin Dubinsky.  Springer-Verlag, c.1989.]

        (Apr 1994)

ISF

        {Information Systems Factory}

ISINDEX

        <World-Wide Web> An {HTML} tag which tells the {browser} to
        display a text entry box on the current page.  Any text
        entered in the box by the user is appended as a URL-encoded
        query string to the current {URL} and sent to the {server}
        using a GET method.

        This is a simple way of making a {web site} searchable or
        allowing other kinds of simple user input.  It relies on the
        server mapping the query URL to an appropriate process,
        probably depending on the page in which the ISINDEX appeared.
        More complex input can be catered for using the {FORM} tag, or
        {Java}.

        (1996-12-22)

ISINDEX=

        Your World-Wide Web browser has generated a query containing
        the string "ISINDEX=".  Unless you got to this entry from a
        random query or by following a "next" link, please mail me,
        Denis Howe <dbh@doc.ic.ac.uk> and tell me which browser
        (e.g. XMosaic, Lynx, w3, Cello) you are using and the URL you
        used to access the dictionary
        (e.g. http://foldoc.doc.ic.ac.uk/).  Thanks for your help.

        (1996-04-10)

ISIS

        1. A toolkit for implementing fault-tolerant distributed
        systems, developed at Cornell and now available commercially

        2. A dialect of {JOSS}.

        [Sammet 1969, p. 217].

IS-IS

        {Intermediate System-Intermediate System}

ISL

        Interface Specification Language.  Xerox PARC.  Interface
        description language used by the ILU (Inter-Language
        Unification) system.  Includes descriptions of multiple
        inheritance, exceptions and garbage collection.

        E-mail: Bill Janssen <janssen@parc.xerox.com>.

ISLisp

        International Standard Lisp.

        An {object-oriented} Lisp intended as an international
        replacement for {Common Lisp}, {EuLisp}, {Le-Lisp} and
        {Scheme}.  The standard's goals are object orientation,
        extensibility, efficiency, and suitability for non-academic
        use.

        The standard is defined in {ISO} WG 16, draft Dec 1992.

        {(ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/islisp/)}

        (1995-02-14)

ISMAP

        (World-Wide Web) An attribute of the {HTML} tag <IMG> (inline
        image) which specifies that if the image is selected, the
        {browser} will generate a request indicating the coordinates
        of the point which was clicked.  This request is then
        interpreted by the server by mapping certain regions of the
        image to certain actions.

        {Documentation
        (http://www.utirc.utoronto.ca/HTMLdocs/NewHTML/image.html)}.

        (1995-02-14)

ISO

        {International Organization for Standardization}

        Not an acronym, a prefix.

ISO 10646

        {Universal Character Set}

ISO 8072

        {transport layer}

ISO 8073

        {transport layer}

ISO 8208

        {X.25}

ISO 8326

        {session layer}

ISO 8327

        {session layer}

ISO 8613

        {Open Document Architecture}

ISO 8649

        {Association Control Service Element}

ISO 8650

        {Association Control Service Element}

ISO 8805

        {GKS-3D}

ISO 8807

        {LOTOS}

ISO 8822

        {presentation layer}

ISO 8823

        {presentation layer}

ISO 8825

        {Basic Encoding Rules}

ISO 8859

        <standard, character> ("ISO Latin 1") One of {ISO}'s 8-bit
        single-byte coded graphic {character sets} for European
        languages.

        Part 1 (full name: "ISO 8859-1:1987 Information processing --
        8-bit single-byte coded graphic character sets -- Part 1:
        Latin alphabet No. 1") is a common extension of, and
        replacement for, {ASCII}.

        {(http://www.iso.ch/cate/d16338.html)}

        {ISO 8879:1986//ENTITIES Added Latin 1//EN"
        (http://www.w3.org/hypertext/WWW/MarkUp/ISOlat1.html)}
        defines some extra(?) characters used in {SGML}.

        (1995-05-03)

ISO 8859-1

        {ISO 8859}

ISO 8879

        <standard, character> The {ISO} standard defining {SGML}.

        (1995-05-03)

ISO 9000

        A set of international {standard}s for both quality management
        and quality assurance that has been adopted by over 90
        countries worldwide.  The ISO 9000 standards apply to all
        types of organisations, large and small, and in many
        industries.

        The standards require: standard language for documenting
        quality processes; system to manage evidence that these
        practices are instituted throughout an organisation; and
        third-party auditing to review, certify, and maintain
        certification of organisations.  The ISO 9000 series
        classifies products into generic product categories: hardware,
        software, processed materials, and services.

        Documentation is at the core of ISO 9000 conformance. In fact,
        the standards have been paraphrased as:

        "Say what you do.  Do what you say.  Write it down."

        In Britain it is associated with BS5750 which may become
        obsolete.

        ["The ISO 9000 Guide," c. 1993 Interleaf, Inc].

        (1995-01-30)

ISO 9072

        {Remote Operations Service Element}

ISO 9660

        <standard> The {ISO} {standard} defining a {file system} for
        {CD-ROMs}.

        [Details?  Reference?]

        (1995-03-28)

ISO 9735

        <standard, protocol> (Or "EDIFACT") {ISO}'s 1988 {standard}
        for Electronic data interchange for administration, commerce
        and transport.  It defines {application layer} {syntax}.  It
        was amended and reprinted in 1990.

        {(http://www.iso.ch/cate/d17592.html)}

        (1995-03-10)

ISOC

        {Internet Society}

ISO C

        {ANSI C}

isochronous

        <communications> /i:-sok'rn-*s/ A form of data transmission
        that guarantees to provide a certain minimum {data rate}, as
        required for time-dependent data such as {video} or {audio}.

        Isochronous transmission transmits asynchronous data over a
        synchronous data link so that individual characters are only
        separated by a whole number of bit-length intervals.  This is
        in contrast to {asynchronous} transmission, in which the
        characters may be separated by arbitrary intervals, and with
        {synchronous} transmission [which does what?].

        {Asynchronous Transfer Mode} and {High Performance Serial Bus}
        can provide isochronous service.

        Compare: {plesiochronous}.

        [ANIXTER, LAN Magazine 7.93]

        [Better explanation?]

        (1999-03-12)

isochronous transfer

        {isochronous}

ISODE

        {ISO Development Environment}

ISO Development Environment

        (ISODE) /eye-so-dee-eee/ Software that implements a set of
        {OSI} upper-layer services.  It supports OSI applications on
        top of OSI and {TCP/IP} networks.

        (1994-12-15)

ISO/IEC 10646-1

        {Universal Character Set}

isolated

        {compact}

ISO Latin 1

        {ISO 8859}

isometry

        <mathematics> A {mapping} of a {metric space} onto another or
        onto itself so that the distance between any two points in the
        original space is the same as the distance between their
        images in the second space.  For example, any combination of
        rotation and translation is an isometry of the plane.

        (1997-12-13)

isomorphic

        <mathematics> Two mathematical objects are isomorphic if they
        have the same structure, i.e. if there is an {isomorphism}
        between them.  For every component of one there is a
        corresponding component of the other.

        (1995-03-25)

isomorphism

        <mathematics> A {bijective} {map} between two objects which
        preserves, in both directions, any structure under
        consideration.  Thus a `group isomorphism' preserves group
        structure; an order isomorphism (between {poset}s) preserves
        the order relation, and so on.  Usually it is clear from
        context what sort of isomorphism is intended.

        (1995-03-25)

isomorphism class

        <mathematics> A collection of all the objects {isomorphic} to
        a given object.  Talking about the isomorphism class (of a
        {poset}, say) ensures that we will only consider its
        properties as a poset, and will not consider other incidental
        properties it happens to have.

        (1995-03-25)

ISO Pascal

        A {Lex} {scanner} and {Yacc} {parser} are in the
        comp.sources.unix volume 13 archive.

        [More detail?]

ISO seven layer model

        {Open Systems Interconnect}

ISP

        1. {Internet Service Provider}.

        2. {Instruction Set Processor}.

ISPBX

        {Integrated Services Digital Network} {PBX}.

ISPF

        {Interactive System Productivity Facility}

ISPL

        Instruction Set Processor Language.  The original {ISP}
        language, written in {BLISS} ca 1971.

        ["Computer Structures: Readings and Examples", D.P. Siewiorek
        et al, McGraw-Hill 1982].

ISPS

        Instruction Set Processor Specifications.  Operational
        hardware specification language.  Successor to ISPL.

        ["Instruction Set Processor Specifications", M.R. Barbacci et
        al, IEEE Trans Computers, C-30(1):24-80 (Jan 1981)].

        [Bell, Newell, Siewiorek, Barbacci 1982?]

IST

        <company> {Imperial Software Technology}.

        (1995-10-12)

ISTAR

        <programming, tool> An experimental {IPSE} from {Imperial
        Software Technology}.

        (1995-10-12)

ISV

        Independent Software Vendor (not a hardware manufacturer).

ISWIM

        If You See What I Mean.  Landin 1966.  ISWIM is {purely
        functional}, a sugaring of {lambda-calculus}, and the ancestor
        of most modern {applicative} languages.  An ISWIM program is a
        single expression qualified by 'where' clauses (auxiliary
        definitions including equations among variables), conditional
        expressions and function definitions.  ISWIM was the first
        language to use {lazy evaluation} and introduced the {offside
        rule} for indentation.

        ["The Next 700 Programming Languages", P.J. Landin, CACM
        9(3):157-166 (Mar 1966)].

IT

        1. {Information Technology}.

        2. {Internal Translator}.

it

        <networking> The {country code} for Italy.

        (1999-01-27)

ITAR

        {International Traffic in Arms Regulation}

Iterated Function System

        <graphics> (IFS) A class of {fractals} that yield
        natural-looking forms like ferns or snowflakes.  Iterated
        Function Systems use a very easy transformation that is done
        recursively.

        (1998-04-04)

iteration

        <programming> Repetition of a sequence of instructions.  A
        fundamental part of many {algorithms}.  Iteration is
        characterised by a set of initial conditions, an iterative
        step and a termination condition.

        A well known example of iteration in mathematics is
        Newton-Raphson iteration.  Iteration in programs is expressed
        using {loops}, e.g. in {C}:

                new_x = n/2;
                do
                {
                  x = new_x;
                  new_x = 0.5 * (x + n/x);
                } while (abs(new_x-x) > epsilon);

        Iteration can be expressed in functional languages using
        recursion:

                solve x n = if abs(new_x-x) > epsilon
                            then solve new_x n
                            else new_x
                            where new_x = 0.5 * (x + n/x)

                solve n/2 n

        (1998-04-04)

iterative deepening

        A graph search algorithm.  When searching for a path through a
        graph from a given initial node to a solution node with some
        desired property, a {depth-first search} may never find a
        solution if it enters a cycle in the graph.  We can either add
        an explicit check for cycles so that we never extend a path
        with a node it already contains or we can use iterative
        deepening where we explore all paths up to length (or "depth")
        N, starting from N=0 and increasing N until a solution is
        found.

        (1995-02-14)

Iternet

        <spelling> It's spelled "{Internet}".

        (1997-04-07)

ITHACA

        An Esprit project to put a "4th generation" object-oriented
        system to practical use in an industrial environment.  The
        ITHACA environment offers an application support system
        incorporating advanced technologies in the fields of
        object-oriented programming, programming languages, database
        technologies, user interface systems and software development
        tools.

ITIL

        {Information Technology Infrastructure Library}

ITS

        1. Incompatible {time-sharing} System

        An influential but highly idiosyncratic {operating system}
        written for the {PDP-6} and {PDP-10} at {MIT} and long used at
        the {MIT AI Lab}.  Much AI-hacker jargon derives from ITS
        folklore, and to have been "an ITS hacker" qualifies one
        instantly as an old-timer of the most venerable sort.  ITS
        pioneered many important innovations, including transparent
        file sharing between machines and terminal-independent I/O.
        After about 1982, most actual work was shifted to newer
        machines, with the remaining ITS boxes run essentially as a
        hobby and service to the hacker community.  The shutdown of
        the lab's last ITS machine in May 1990 marked the end of an
        era and sent old-time hackers into mourning nationwide (see
        {high moby}).  The Royal Institute of Technology in Sweden is
        maintaining one "live" ITS site at its computer museum (right
        next to the only {TOPS-10} system still on the {Internet}), so
        ITS is still alleged to hold the record for OS in longest
        continuous use (however, {WAITS} is a credible rival for this
        palm).

        2. A mythical image of {operating system} perfection worshiped
        by a bizarre, fervent retro-cult of old-time hackers and
        ex-users (see {troglodyte}).  ITS worshipers manage somehow to
        continue believing that an OS maintained by {assembly
        language} hand-hacking that supported only monocase
        6-character filenames in one directory per account remains
        superior to today's state of commercial art (their venom
        against {Unix} is particularly intense).

        See also {holy wars}, {Weenix}.

        (1994-12-15)

it's a feature

        <jargon> From the adage "It's not a bug, it's a feature."
        Used sarcastically to describe an unpleasant experience that
        you wish to gloss over.

        (1997-04-29)

ITSP

        {Internet Telephony Service Providers}

ITU

        {International Telecommunications Union}

ITU-T

        {International Telecommunications Union}

ITU X.209

        {Basic Encoding Rules}

Ivan

        A {Diana}-like language making up part of {VHDL}.

        ["VHDL - The Designer Environment", A. Gilman, IEEE Design &
        Test 3, (Apr 1986)].

Ivan Sutherland

        Ivan E. Sutherland is widely known for his pioneering
        contributions.  His 1963 MIT PhD thesis, {Sketchpad}, opened
        the field of computer graphics.  His 1966 work, with Sproull,
        on a head-mounted display anticipated today's {virtual
        reality} by 25 years.  He co-founded {Evans and Sutherland},
        which manufactures the most advanced computer image generators
        now in use.  As head of Computer Science Department of
        {Caltech} he helped make {integrated circuit} design an
        acceptable field of academic study.  Dr. Sutherland is on the
        boards of several small companies and is a member of the
        National Academy of Engineering and the National Academy of
        Sciences, the {ACM} and {IEEE}.  He received the {ACM}'s
        {Turing Award} in 1988.  He is now Vice President and Fellow
        of {Sun Microsystems} Laboratories in Mountain View, CA, USA.

        (1994-11-16)

Iverson's Language

        {APL}, which went unnamed for many years.

        [Sammet 1969, p.770].

        (1994-11-16)

IVR

        {Interactive Voice Response}

ivs

        {INRIA} Videoconferencing System.

        A {video-conferencing} tool for the {Internet} based on the
        {H.261} {video compression} {standard}.

        {(http://zenon.inria.fr:8003/rodeo/personnel/Thierry.Turletti/ivs.html)
}

        (1994-11-16)

IVTRAN

        Parallel {FORTRAN} for the {Illiac IV}.  1966.

IV&V

        {Independent Verification and Validation}

IVY

        A language with a more pleasant syntax than {Perl}, {tcl} or
        {Lisp}.  It has nice features like low punctuation count,
        blocks indicated by indentation, and similarity to normal
        procedural languages.  This language started out as an idea
        for an extension language for the editor {JOE}.

        An experimental {interpreter} by Joseph H Allen
        <jhallen@world.std.com> was posted to {alt.sources} on 28 Sep
        1993.

IWay

        {Information Superhighway}

IWBNI

        It Would Be Nice If.

        Compare {WIBNI}.

        (1994-11-24)

IXC

        {IntereXchange Carrier}

IXI Limited

        <company> A Cambridge, England company who were the leading
        supplier of {Unix} System windowing software when they were
        acquired by {SCO} in February 1993.

        (1994-12-12)

IXO

        {Telocator Alphanumeric Protocol}

IYFEG

        ({Usenet}) Insert Your Favourite Ethnic Group.

        Used as a meta-name when telling ethnic jokes on the net to
        avoid offending anyone.

        See also {JEDR}.

        (1994-11-24)

J

        A derivative and redesign of {APL} with added features and
        control structures.  J is {purely functional} with {lexical
        scope} and more conventional control structures, plus several
        new concepts such as {function rank} and {function array}s.  J
        was designed and developed by Kennneth E. Iverson and Roger
        Hui <hui@yrloc.ipsa.reuter.com>.  J uses only the {ASCII}
        character set but has a spelling scheme that retains the
        advantages of {APL}'s special alphabet.  J is a conventional
        procedural programming language but can be used as a {purely
        functional} language.

        Version 4.1 for {MS-DOS}, Sun, Mac, Archimedes.  Source
        available in C from {Iverson Software}, +1 (416) 925 6096.

        Version 6 package from ISI includes an interpreter and
        tutorial.  Ported to {DEC}, {NeXT}, {SGI}, {Sun-3}, {Sun-4},
        {Vax}, {RS/6000}, {MIPS}, {Macintosh}, {Acorn Archimedes},
        {IBM PC}, {Atari}, {3b1}, {Amiga}.

        {(ftp://watserv1.waterloo.edu/languages/apl/j)}

        J-mode {GNU Emacs} macros available by
        {(ftp://think.com/pub/j/gmacs/j-interaction-mode.el)}.

        ["APL\?", Roger K.W. Hui et al, APL90 Conf Proc, Quote Quad
        20(4):192-200].

        (1992-10-31)

J3

        A dialect of {JOVIAL}.

        ["Military Standard JOVIAL (J3)", MIL-STD-1588 (USAF), June
        1976].

        (1994-12-07)

J73

        A dialect of {JOVIAL}.

        ["Military Standard JOVIAL (J73)", MIL-STD-1589 (USAF), Feb
        1977].

        (1994-12-07)

jabber

        <networking> An event that occurs when a device on a network
        using the {LAT} {protocol} continues to broadcast its
        availability even though its availability status is known by
        the network.

        (1996-05-10)

JACAL

        {JAffer's Canonical ALgebra}

jaccl

        <tool> An {LR1 grammar} {parser generator} by Dave Jones
        <djones@megatest.uucp>.

        (1989-09-08)

jack in

        To log on to a machine or connect to a network or {BBS},
        especially for purposes of entering a {virtual reality}
        simulation such as a {MUD} or {IRC} (leaving is "jacking
        out").  This term derives from {cyberpunk} SF, in which it was
        used for the act of plugging an electrode set into neural
        sockets in order to interface the brain directly to a virtual
        reality.  It is primarily used by MUD and IRC fans and younger
        hackers on BBS systems.

Jack Kilby

        <person> The {Texas Instruments} engineer who invented the
        {integrated circuit} in 1958.  The {JK flip-flop} was named
        after him.

        (1997-07-03)

Jackson method

        A proprietary structured method for software analysis, design
        and programming.

Jacquard, Joseph-Marie

        {Joseph-Marie Jacquard}

Jacquard loom

        <history> /zhah-kar'/ A mechanical loom, invented by
        {Joseph-Marie Jacquard} in 1801, which used the holes punched
        in pasteboard {punch cards} (which see) to control the weaving
        of patterns in fabric.  It was the first machine to use punch
        cards, although it did no computation based on them.

        {(http://www.history.rochester.edu/steam/hollerith/loom.htm)}.

        (1998-10-19)

JAD

        {Joint Application Design}

        Or "Joint Application Development".

        [What is it?]

        (1995-11-15)

JADE

        {James' DSSSL Engine}

Jade

        1. U Washington, late 80's.  A strongly-typed language,
        object-oriented but without classes.  For type research.  The
        compiler output is Smalltalk.  [Submitter claimed that Jade
        has exactly one user!]

        2. Implicit coarse-grained concurrency.  The constructs
        'with', 'withonly' and 'without' create tasks with specified
        side effects to shared data objects.  Implemented as a C
        preprocessor.  "Coarse-Grain Parallel Programming in Jade",
        M.S. Lam et al, SIGPLAN Notices 26(7):94-105 (Jul 1991).

jadeTeX

        <text, tool> A program which uses {TeX} as a back-end for
        producing {DVI} (or {PDF}) printable output from {James' DSSSL
        Engine}.

        {(ftp://ftp.tug.org/tex-archive/macros/jadetex/)}.

        (1997-11-20)

JAffer's Canonical ALgebra

        <mathematics, tool> (JACAL) A {symbolic mathematics} program,
        most of which was written in {Scheme} by Aubrey Jaffer.

        {Home (http://swissnet.ai.mit.edu/~jaffer/JACAL.html)}.

        (1999-06-27)

jaggies

        <graphics> /jag'eez/ (Or "staircase") The "staircase" effect
        observable when an edge (especially a linear edge of very
        shallow or steep slope) is rendered on a {bitmap display} (as
        opposed to a {vector display}).  The effect is even more
        pronounced when a bitmap image or text in a bitmap font is
        enlarged.  {Outline fonts} and {anti-aliasing} are two
        techniques used to solve this problem with text.

        (1997-12-01)

JaM

        John and Martin.  An interpreted {FORTH}-like graphics
        language by John Warnock and Martin Newell, {Xerox PARC},
        1978.  JaM was the forerunner of both {Interpress} and
        {PostScript}.  It is mentioned in PostScript Language
        reference Manual, Adobe Systems, A-W 1985.

jam

        A condition on a network where two nodes transmitting
        simultaneously detect the collision and continue to transmit
        for a certain time (4 to 6 bytes on Ethernet) to ensure that
        the collision has been detected by all nodes involved.

        (1994-12-12)

James Clark

        {Dr. James H. Clark}

James' DSSSL Engine

        <text, tool> (JADE) A {DSSSL} tool by {James J. Clark}.  Jade
        is an implementation of the DSSSL style language for {Unix}
        and {Microsoft Windows}.  It can turn the {SGML} source of the
        DSSSL standard into an {RTF} file of about 200 pages using a
        fairly complex DSSSL specification.

        {Home (http://www.jclark.com/)}.

        (1996-10-13)

James Gosling

        <person> The software engineer who wrote {GOSMACS}, and served
        as {Sun Microsystems, Inc.} project leader for both {NeWS},
        and {Java}.  He is currently (1997) a Vice President and
        "Distinguished Engineer" at Sun

        {Home (http://java.sun.com:80/people/jag/)}.

        {Biography
        (http://www.sun.com/sunergy/Bios/gosling_bio.html)}.

        (1997-03-12)

James H. Clark

        {Dr. James H. Clark}

JANET

        {Joint Academic NETwork}

JANET IP Service

        <networking> (JIPS) {Joint Academic NETwork} {Internet
        Protocol}.

        E-mail: <jips-nosc@nic.ja.net>.

        [Details?]

        (1994-12-12)

Janus

        1. Distributed language with an ask/tell constraint system.

        {qdjanus} is a Janus-to-{Prolog} compiler for {Sicstus Prolog}
        and {jc} is compiles to {C}.

        ["Janus: A Step Towards Distributed Constraint Programming",
        V. Saraswat <saraswat@parc.xerox.com> et al in Logic
        Programming: Proc 1990 North Am Conf, S. Debray et al eds, MIT
        Press 1990].

        ["Programming in Janus", Saraswat, Kahn, and Levy].

        2. W.M. Waite, U Colorado.  Intermediate language, claimed as
        an implementation of {UNCOL}.  Used on {CDC 6600}.

        ["Experience with the Universal Intermediate Language Janus",
        B.K. Haddon et al, Soft Prac & Exp 8(5):601- 616 (Sep 1978)].

japh

        <programming> A {Perl} program which prints "Just another Perl
        hacker" using extremely obfuscated methods, typically ones
        based on obscure behaviours of sometimes rarely-used functions,
        in the spirit of the {Obfuscated C Contest}.

        The obfuscation can result from the code being total
        gibberish, e.g.:

         $_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;

        or from having "Just another Perl hacker" embedded in opaque
        code:

         $_='987;s/^(\d+)/$1-1/e;$1?eval:print"Just another Perl hacker,"';eval

        or from looking like it does something simple and completely
        unrelated to printing "Just another Perl hacker":

         $_ = "wftedskaebjgdpjgidbsmnjgc";
         tr/a-z/oh, turtleneck Phrase Jar!/; print;

        {Examples (http://www.perl.com/CPAN/misc/japh)}.

        (1997-09-14)

Jargon File

        <jargon, publication, humour> The on-line hacker Jargon File.
        A large collection of (often amusing) definitions of computing
        terms.

        Many definitions in {this dictionary} are from v3.0.0, 27 Jul
        1993.  As of 1998-02-22, the current version is 4.0.0 (25 Jul
        1996) which corresponds to the third paper edition entitled
        "The New Hacker's Dictionary", due out in September 1996.

        The file is available through ftp at any of the {GNU archives}
        as jarg400.txt.

        {Home (http://www.tuxedo.org/jargon/)}.

        See also {Yellow Book, Jargon}.

        (1998-12-09)

Java

        <World-Wide Web, language> (After the Indonesian island, a
        source of {programming fluid}) A simple, {object-oriented},
        {distributed}, {interpreted}, robust, secure,
        {architecture-neutral}, {portable}, {multithreaded}, dynamic,
        buzzword-compliant, general-purpose programming language
        developed by {Sun Microsystems} in 1995(?).  Java supports
        programming for the {Internet} in the form of
        {platform}-independent Java "applets".

        Java is similar to {C++} without {operator overloading}
        (though it does have {method} overloading), without {multiple
        inheritance}, and extensive automatic {coercions}.  It has
        automatic {garbage collection}.

        Java programs can run stand-alone on small computers.  The
        {interpreter} and {class} support take about 40 kilobytes;
        adding the standard libraries and {thread} support
        (essentially a self-contained {microkernel}) adds an
        additional 175Kb.

        Java extends {C++}'s {object-oriented} facilities with those
        of {Objective C} for {dynamic method resolution}.

        Java has an extensive library of routines for {TCP/IP}
        {protocols} like {HTTP} and {FTP}.  Java applications can
        access objects across the {Internet} via {URL}s as easily as
        on the local {file system}.

        The Java compiler and {linker} both enforce {strong type
        checking} - procedures must be explicitly typed.  Java
        supports the creation of {virus}-free, tamper-free systems
        with {authentication} based on {public-key encryption}.

        The Java compiler generates an {architecture-neutral} {object
        file} executable on any processor supporting the Java {runtime
        system}.  The object code consists of {bytecode} instructions
        designed to be both easy to interpret on any machine and
        easily translated into {native} {machine code} at load time.

        The Java libraries provide portable interfaces.  For example,
        there is an abstract Window class and implementations of it
        for {Unix}, {Microsoft Windows} and the {Macintosh}.  The
        runtime system is written in {POSIX}-compliant {ANSI C}.  Java
        applets can be executed as attachments in {World-Wide Web}
        documents using either Sun's {HotJava} browser or {Netscape
        Navigator} version 2.0.

        {Home (http://java.sun.com/)}

        {Usenet} newsgroup: {news:comp.lang.java}.

        E-mail: <java@java.sun.com>.

        (1995-12-06)

JavaBeans

        <programming> A {component architecture} for the {Java}
        programming language, developed initially by {Sun}, but now
        available from several other vendors.  JavaBeans components
        are called "{beans}".

        JavaBeans allows developers to create reusable software
        components that can then be assembled together using visual
        application builder tools including {Sybase}'s {PowerJ},
        {Borland}'s {JBuilder}, {IBM}'s {Visual Age for Java},
        {SunSoft}'s {Java Workshop} and {Symantec}'s {Visual Cafe}.

        JavaBeans support Introspection (a builder tool can analyze
        how a Bean works), Customisation (developers can customise the
        appearance and behaviour of a Bean), Events (Beans can
        communicate), Properties (developers can customise and program
        with Beans(?)) and Persistence (customised Beans can be stored
        and reused).

        {Home (http://www.javasoft.com/beans/)}.

        (1997-11-20)

Java Database Connectivity

        <database, programming> (JDBC) Part of the {Java Development
        Kit} which defines an {application programming interface} for
        {Java} for standard {SQL} access to {databases} from Java
        {programs}.

        {Home
        (http://java.sun.com/products/jdk/1.1/docs/guide/jdbc/index.html)}.

        {FAQ (http://www.yoyoweb.com/Javanese/JDBC/FAQ.html)}.

        See also {Open Database Connectivity}.

        (1997-09-04)

Java Development Kit

        <language, compiler> (JDK) A free {Sun Microsystems} product
        which provides the {environment} required for programming in
        {Java}.  The JDK is available for a variety of {platforms},
        but most notably {Sun Solaris} and {Microsoft Windows}.

        {Home (http://java.sun.com/products/jdk/1.1/index.html)}.

        [Version?]

        (1997-09-04)

Java Native Interface

        <programming> (JNI) A {native} programming interface for
        {Java} that allows Java code running inside a {Java Virtual
        Machine} to interoperate with {applications} and {libraries}
        written in other programming languages such as {C}, {C++} and
        {assembly language}.

        (1997-12-07)

Java Open Language Toolkit

        <project> (JOLT) A project aimed at providing a freely
        available and redistributale implementation of {Sun
        Microsystems}'s {Java} language and tools.

        {Home (http://www.redhat.com/linux-info/jolt/)}.

        (1996-12-17)

Java Runtime Environment

        <language> (JRE) The part of the {Java Development Kit}
        required to run Java programs.  The JRE consists of the {Java
        Virtual Machine}, the {Java} platform core {classes} and
        supporting files.  It does not include the compiler, debugger
        or other tools present in the JDK.  The JRE is the smallest
        set of executables and files that constitute the standard Java
        platform.

        (1998-11-30)

JavaScript

        <language> (Formerly LiveScript) {Netscape}'s simple,
        cross-{platform}, {World-Wide Web} {scripting language}, only
        very vaguely related to {Java}.  JavaScript is intimately tied
        to the {World-Wide Web}, and currently runs in only three
        environments - as a {server}-side {scripting} language, as an
        embedded language in {server-parsed HTML}, and as an embedded
        language run in {browsers}.

        JavaScript may end up being more popular and entrenched than
        {Java}, due to the current (May 1997) prevalence of its
        primary {platform} (see below), and its ease of learning.  It
        has a simplified {C}-like {syntax}.  Its functionality is
        currently limited, being aimed primarily at enhanced {forms},
        simple web {database} {front-ends} and navigation
        enhancements.

        JavaScript originated from {Netscape}, and for a time, only
        {Netscape} products supported it.  {Microsoft} now supports
        it, but as a "work-a-like" called JScript.  The resulting
        inconsistencies make it difficult to write JavaScript that
        behaves the same in both {Netscape Navigator} and {Microsoft}
        Internet Explorer.  This could be attributed to the slow
        progress of JavaScript through the standards bodies.

        JavaScript runs "100x" slower than {C}, as it is purely
        interpreted ({Java} runs "10x" slower than C code).
        {Netscape} and allies say JavaScript is an "open standard" in
        an effort to keep {Microsoft} from monopolising web software
        as they have desktop software.  {Netscape} and {Sun} have
        co-operated to enable {Java} and JavaScript to exchange
        messages and data.

        JavaScript should not be confused with {Java}, and is a
        {Netscape}, not {Sun} trademark.

        See also {VBScript}.

        {Home
        (http://excite.netscape.com/directory/computing_and_internet/programmin
g/javascript)}.

        {Yahoo
        (http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Java
Script/)}.

        {Usenet} newsgroup: {news:comp.lang.javascript}.

        Mailing List: <majordomo@obscure.org> ("subscribe javascript"
        in body).

        (1999-01-07)

Java servelet

        {Java servlet}

Java Serverlet

        <World-Wide Web> Bradley Schatz <brad@plpk.uq.edu.au>'s term
        for the form of {Java servlet} supported by his free
        {portable} {GUI} {application framework}, {Hive}.

        (1999-09-21)

Java servlet

        <World-Wide Web> (By analogy with "{applet}") A {Java} program
        that runs as part of a {network} service, typically an {HTTP
        server} and responds to requests from {clients}.

        The most common use for a servlet is to extend a web server by
        generating web content dynamically.  For example, a {client}
        may need {information} from a {database}; a servlet can be
        written that receives the request, gets and processes the data
        as needed by the {client} and then returns the result to the
        {client}.

        {Applets} are also written in {Java} but run inside the {JVM}
        of a {HTML} {browser} on the {client}.  Servlets and applets
        allow the server and client to be extended in a modular way by
        dynamically loading code which communicates with the main
        program via a standard programming interface.

        Servlets are more flexible than {CGI scripts} and, being
        written in {Java}, more portable.

        The spelling "servelet" is occasionally seen but {JavaSoft}
        spell it "servlet"

        {(http://jeeves.javasoft.com/products/java-server/servlets/index.html)}
.

        (1999-09-21)

Java Servlet Development Kit

        <World-Wide Web> (JSDK) A suite of software for easing the
        development of {Java servlets}.

        {JavaSoft Servlet Development Kit
        (http://www.javasoft.com/products/jdk/1.2/docs/ext/servlet/)}.

        (1998-05-26)

Java Virtual Machine

        <language, architecture> (JVM) A specification for software
        which interprets {Java} programs which have been compiled into
        {byte-codes}.  The JVM {instruction set} is {stack}-oriented,
        with variable instruction length.  Unlike some other
        instruction sets, the JVM's supports {object-oriented}
        programming directly by including instructions for object
        {method} invocation (similar to {subroutine} call in other
        instruction sets).

        The JVM itself is written in {C} and so can be {ported} to run
        on most {platforms}.  It needs {thread} support and {I/O} (for
        {dynamic class loading}).  The Java byte-code is independent
        of the platform.

        There are also some hardware implementations of the JVM.

        {Specification
        (http://www.javasoft.com/docs/books/vmspec/html/VMSpecTOC.doc.html)}.

        {Sun's Java chip
        (http://news.com/News/Item/0,4,9328,00.html)}.

        [Documentation?  Versions?]

        (1997-12-12)

Java VM

        {Java Virtual Machine}

JAZ

        <language> An early system on the {LGP-30}.

        [CACM 2(5):16, May 1959].

        (1997-05-16)

Jaz

        {Jaz Drive}

Jaz Drive

        <hardware, storage> {Iomega Corporation}'s drive which takes
        removable one or two {gigabyte} disk cartridges which contain
        conventional {hard disks}.

        Internal and external drives are available claiming an average
        transfer rate of 330 {megabytes} per minute - though that is
        dependant on the {SCSI} adapter, the parallel port adapter is
        unlikely to reach anything like this speed.  The Jaz drive was
        the successor to the company's more establistablished {Zip
        Drive}.

        (1998-08-28)

JAZELLE

        <database> A data management system for High Energy Physics
        from Stanford Linear Accelerator.

        (1995-02-22)

JBIG

        {Joint Bi-level Image Experts Group}

JBOD

        {Just a Bunch Of Disks}

JBOPS

        <business, jargon> A nickname for the major {ERP} and
        enterprise software application companies: {JD Edwards},
        {Baan}, {Oracle}, {PeopleSoft}, and {SAP}.

        (1999-07-27)

jc

        Version 1.50 alpha

        compiler(->C)

        David Gudeman <gudeman@cs.arizona.edu>

        {(ftp://cs.arizona.edu/janus/jc/)}

        A janus-to-C compiler (considerably faster than qdjanus).  jc
        is a _sequential_ implementation of a _concurrent_ language.

        bugs:           <jc-bugs@cs.arizona.edu>

        ports:          sun-4, sun-3, Sequent Symmetry

        jc is an experimental system, undergoing rapid development.
        It is in alpha release currently.

        Mailing list:   janusinterest-request@parc.xerox.com

        (1992/06/09)

JCL

        {Job Control Language}

JCS-13

        <language> An early system on the {IBM 701}.

        [Listed in CACM 2(5):16, May 1959].

        (1997-06-16)

JDBC

        {Java Database Connectivity}

JDK

        {Java Development Kit}

JEAN

        <language> A dialect of {JOSS}.

        [Details?]

        (1997-09-14)

Jean E. Sammet

        <person> Author of several surveys of early programming
        languages, refererred to in many entries in this dictionary.

        E-mail: sammet@vtvm1.cc.vt.edu

        Relevant publications include:

        [Sammet, Jean E., "Programming Languages: History and
        Fundamentals", P-H 1969.  QA76.5 .S213].  The definitive work
        on early computer language development.

        [Sammet, Jean E., "Programming Languages: History and Future",
        CACM 15(7):601-610, Jul 1972].

        [Sammet, Jean E., "Roster of Programming Languages"
        Computers & Automation 16(6):80-82, June 1967;
        Computers & Automation 17(6):120-123, June 1968;
        Computers & Automation 18(7):153-158, June 1969;
        Computers & Automation 19(6B):6-11, 30 Nov 1970;
        Computers & Automation 20(6B):6-13, 30 Jun, 1971;
        Computers & Automation 21(6B), 30 Aug 1972;
        Computing Reviews 15(4): 147-160, April 1974;
        CACM 19(12):655-669, Dec 1976;
        SIGPLAN Notices 13(11):56, Nov 1978].

        (1998-10-03)

JEDR

        <person, abuse, humour> Synonymous with {IYFEG}.  At one time,
        people in the {Usenet} {newsgroup} {news:rec.humor.funny}
        tended to use "JEDR" instead of {IYFEG} or "<ethnic>"; this
        stemmed from a public attempt to suppress the group once made
        by a loser with initials JEDR after he was offended by an
        ethnic joke posted there.  (The practice was {retcon}ned by
        expanding these initials as "Joke Ethnic/Denomination/Race".)
        After much sound and fury JEDR faded away; this term appears
        to be doing likewise.  JEDR's only permanent effect on the
        net.culture was to discredit "sensitivity" arguments for
        censorship so thoroughly that more recent attempts to raise
        them have met with immediate and near-universal rejection.

        (1994-11-22)

Jef Raskin

        <person> The person who started the {Macintosh} project at
        {Apple Computer, Inc.} but left the company before the product
        was launched.

        (1999-08-24)

Jerry Sussman

        {Gerald Sussman}

JES

        {job entry system}

JES2

        <operating system> One of {IBM}'s {job entry system}s for
        {MVS}.

        (1995-08-16)

JES3

        <operating system> One of {IBM}'s {job entry system}s for
        {MVS}.

        (1995-08-16)

JFCL

        /jif'kl/, /jaf'kl/, /j*-fi'kl/ (obsolete) To cancel or annul
        something.  "Why don't you jfcl that out?"  The fastest
        do-nothing instruction on older models of the {PDP-10}
        happened to be JFCL, which stands for "Jump if Flag set and
        then CLear the flag"; this does something useful, but is a
        very fast no-operation if no flag is specified.  Geoff
        Goodfellow, one of the jargon-1 co-authors, had JFCL on the
        licence plate of his BMW for years.  Usage: rare except among
        old-time PDP-10 hackers.

        (1994-11-22)

JFET

        {Junction Field Effect Transistor}

JFIF

        {JPEG File Interchange Format}

jiffy

        1. The duration of one {tick} of the computer's {system
        clock}.  Often one AC cycle time (1/60 second in the US and
        Canada, 1/50 most other places), but more recently 1/100 sec
        has become common.

        2. Confusingly, the term is sometimes also used for a
        1-millisecond {wall time} interval.  Even more confusingly,
        physicists semi-jokingly use "jiffy" to mean the time required
        for light to travel one foot in a vacuum, which turns out to
        be close to one *nanosecond*.

Jim Clark

        {Dr. James H. Clark}

Jini

        <networking> /jee'nee/ {Sun}'s {Java}-based system for
        networking home appliances, {desktop computers} and other
        kinds of consumer electronics.

        {Home (http://java.sun.com/products/jini/)}.

        [Details?]

        (1998-11-14)

JIPS

        {JANET IP Service}

jitter

        Random variation in the timing of a signal, especially a
        clock.

        (1995-01-16)

JK flip-flop

        <hardware> An {edge triggered} {SR flip-flop} with extra logic
        such that only one of the R and S inputs is enabled at any
        time.  This prevents a {race condition} which can occur when
        both inputs of an RS flip-flop are active at the same time.
        In a JK flip-flop the R and S inputs are renamed J and K
        (after {Jack Kilby}).  The set input (J) is only enabled when
        the flip-flop is reset and K when it is set.

        If both J and K inputs are held active then the outputs will
        change ("togle") on each falling edge of the clock.  JK
        flip-flops can be used to build a {binary counter} with a
        reset input.

        {(http://www.play-hookey.com/digital/logic7.html)}.

        (1997-07-03)

jm

        <networking> The {country code} for Jamaica.

        (1999-01-27)

JMHO

        <chat> Just My Humble Opinion.

        (1999-02-18)

JNI

        {Java Native Interface}

jo

        <networking> The {country code} for Jordan.

        (1999-01-27)

job

        <operating system> All the activities involved in completing
        any project on a computer from start to finish.  A job may
        involve several processes and several programs.

        This term is rather old fashioned and harks back to the days
        of {batch} processing where a user would submit his job as a
        deck of {punched card}s which would typically include {source
        code} interspersed with {job control language} instructions to
        guide the various phases of the job such as compilation,
        linking, execution and printing.

        (1995-05-07)

Job Control Language

        <language, operating system> (JCL) {IBM}'s supremely {rude}
        {script} language, used to control the execution of programs
        in IBM {OS/360}'s {batch} systems.  JCL has a very {fascist}
        {syntax}, and some versions will, for example, {barf} if two
        spaces appear where it expects one.

        Most programmers confronted with JCL simply copy a working
        file (or {card deck}), changing the file names.  Someone who
        actually understands and generates unique JCL is regarded with
        the mixed respect one gives to someone who memorises the phone
        book.  It is reported that hackers at IBM itself sometimes
        sing "Who's the breeder of the crud that mangles you and me?
        I-B-M, J-C-L, M-o-u-s-e" to the tune of the "Mickey Mouse
        Club" theme to express their opinion of the beast.

        As with {COBOL}, JCL is often used as an archetype of ugliness
        even by those who haven't experienced it.  However, no
        self-respecting {mainframe} {MVS} programmer would admit
        ignorance of JCL.

        See also {fear and loathing}.

        (1999-03-03)

Job Entry System

        <operating system> (JES) An {IBM} {mainframe} term.  There are
        really two JESs.  JES2 is smaller and simpler, and can handle
        99.99% of most jobs that run on IBM's {MVS} {operating
        system}.  JES3 is much bigger and requires really {big iron}
        to run.

        (1996-03-23)

Jobs

        {Stephen Jobs}

job security

        <jargon> When some piece of code is written in a particularly
        obscure fashion, and no good reason (such as time or space
        optimisation) can be discovered, it is often said that the
        programmer was attempting to increase his job security (i.e.
        by making himself indispensable for maintenance).  This sour
        joke seldom has to be said in full; if two hackers are looking
        over some code together and one points at a section and says
        "job security", the other one may just nod.

        (1996-09-17)

jock

        1. A programmer who is characterised by large and somewhat
        {brute-force} programs.

        2. When modified by another noun, describes a specialist in
        some particular computing area.  The compounds "compiler jock"
        and "systems jock" seem to be the best-established examples.

        (1995-01-19)

joe

        <jargon, security> A computer account whose user name and
        password are the same.  Joes are {considered harmful}, as are
        any passwords which are easy to guess.

        (1995-06-21)

joe code

        /joh' kohd"/ 1. Code that is overly {tense} and
        unmaintainable.  "{Perl} may be a handy program, but if you
        look at the source, it's complete joe code."

        2. Badly written, possibly buggy code.

        Correspondents wishing to remain anonymous have fingered a
        particular Joe at the Lawrence Berkeley Laboratory and
        observed that usage has drifted slightly; the original
        sobriquet "Joe code" was intended in sense 1.

John Gilmore

        <person> A noted {Unix} {hacker} who cofounder of {Usenet}'s
        anarchic alt.* {newsgroup} {hierarchy} with {Brian Reid}.

        E-mail: John Gilmore <gnu@toad.com>.

        (1995-04-18)

John McCarthy

        A pioneer of {artificial intelligence}.  He invented {Lisp} at
        {MIT} in the late 1950s and later worked at {SAIL}.

        {(ftp://www-formal.stanford.edu/jmc)}

        E-mail: <jmc@cs.stanford.edu>.

        (1994-11-22)

John Ousterhout

        <person> John K. Ousterhout, the designer of {Tcl} and {Tk},
        and founder of {Scriptics}.

        See also: {Ousterhout's dichotomy}.

        E-mail: john.ousterhout@scriptics.com.
        old).

        (1999-02-21)

join

        1. <database> {inner join} (common) or {outer join} (less
        common).

        2. <theory> {least upper bound}.

        (1998-11-23)

Joint Academic NETwork

        (JANET) The {wide area network} which links UK academic and
        research institutes.  JANET is controlled by the {Joint
        Network Team} (JNT) and Network Executive (NE).  It is an
        {internet} (a large number of interconnected sub-networks)
        that provides connectivity within the community as well as
        access to external services and other communities.  The {hub}
        is the JANET subnetwork, a private {X.25} {packet-switched}
        network that interconnects over 100 sites.  At the majority of
        sites, {local area network}s (LANs) are connected to JANET
        allowing off-site access for the computers and terminals
        connected to these networks.  The {Coloured Book} {protocol}
        architecture is used to support interactive terminal access to
        computers (for both character terminals and screen terminals),
        inter-host file transfers, {electronic mail} and remote
        {batch} job submission.

        {Home (http://nic.ja.net/)}

        See also {JIPS}, {SuperJanet}.

        (1995-02-07)

Joint Bi-level Image Experts Group

        <algorithm> (JBIG) An experts group of {ISO}, {IEC} and
        {ITU-T} (JTC1/SC2/WG9 and SGVIII) working to define a
        {compression} {standard} for {lossless} {image} coding.  Their
        proposed {algorithm} features compatible {progressive coding}
        and {sequential coding} and is lossless - the image is
        unaltered after compression and decompression.

        JBIG can handle images with from one to 255 bits per {pixel}.
        Better compression algorithms exist for more than about eight
        bits per pixel.  With multiple bits per pixel, {Gray code} can
        be used to reduce the number of bit changes between adjacent
        decimal values (e.g. 127 and 128), and thus improve the
        compression which JBIG does on each {bitplane}.

        JBIG uses discrete steps of detail by successively doubling
        the {resolution}.  The sender computes a number of resolution
        layers and transmits these starting at the lowest resolution.
        Resolution reduction uses pixels in the high resolution layer
        and some already computed low resolution pixels as an index
        into a lookup table. The contents of this table can be
        specified by the user.

        Compatibility between progressive and sequential coding is
        achieved by dividing an image into stripes.  Each stripe is a
        horizontal bar with a user definable height.  Each stripe is
        separately coded and transmitted, and the user can define in
        which order stripes, resolutions and bitplanes are intermixed
        in the coded data.  A progressively coded image can be decoded
        sequentially by decoding each stripe, beginning by the one at
        the top of the image, to its full resolution, and then
        proceeding to the next stripe.  Progressive decoding can be
        done by decoding only a specific resolution layer from all
        stripes.

        After dividing an image into {bitplanes}, {resolution layers}
        and stripes, eventually a number of small bi-level {bitmaps}
        are left to compress.  Compression is done using a {Q-coder}.

        The Q-coder codes bi-level pixels as symbols using the
        probability of occurrence of these symbols in a certain
        context.  JBIG defines two kinds of context, one for the
        lowest resolution layer (the base layer), and one for all
        other layers (differential layers).  Differential layer
        contexts contain pixels in the layer to be coded, and in the
        corresponding lower resolution layer.

        For each combination of pixel values in a context, the
        probability distribution of black and white pixels can be
        different.  In an all white context, the probability of coding
        a white pixel will be much greater than that of coding a black
        pixel.  The Q-coder, like {Huffman coding}, achieves
        {compression} by assigning more bits to less probable symbols.
        The Q-coder can, unlike a Huffman coder, assign one output
        code bit to more than one input symbol, and thus is able to
        compress bi-level pixels without explicit {clustering}, as
        would be necessary using a Huffman coder.

        [What is "clustering"?]

        Maximum compression will be achieved when all probabilities
        (one set for each combination of pixel values in the context)
        follow the probabilities of the pixels.  The Q-coder therefore
        continuously adapts these probabilities to the symbols it
        sees.

        JBIG can be regarded as two combined algorithms:

        (1) Sending or storing multiple representations of images at
        different resolutions with no extra storage cost.
        Differential layer contexts contain pixels in two resolution
        layers, and so enable the Q-coder to effectively code the
        difference in information between the two layers, instead of
        the information contained in every layer.  This means that,
        within a margin of approximately 5%, the number of resolution
        layers doesn't effect the compression ratio.

        (2) A very efficient compression algorithm, mainly for use
        with bi-level images.  Compared to {CCITT Group 4}, JBIG is
        approximately 10% to 50% better on text and line art, and even
        better on {halftones}.  JBIG, just like Group 4, gives worse
        compression in the presence of noise in images.

        An example application would be browsing through an image
        database.

        ["An overview of the basic principles of the Q-coder adaptive
        binary arithmetic coder", W.B. Pennebaker, J.L. Mitchell,
        G.G. Langdon, R.B. Arps, IBM Journal of research and
        development, Vol.32, No.6, November 1988, pp. 771-726].

        {(http://www.crs4.it/~luigi/MPEG/jbig.html)}

        (1998-03-29)

Joint Photographic Experts Group

        <file format> (JPEG) The original name of the committee that
        designed the standard image compression {algorithm}.  JPEG is
        designed for compressing either full-colour or {grey-scale}
        digital images of "natural", real-world scenes.  It does not
        work so well on non-realistic images, such as cartoons or line
        drawings.  JPEG does not handle compression of black-and-white
        (1 bit-per-pixel) images or moving pictures.  Standards for
        compressing those types of images are being worked on by other
        committees, named {JBIG} and {MPEG}.

        {Filename extension}: .jpg, .jpeg.

        (1996-09-17)

Joint Technical Committee

        <standard, body> (JTC) A {standard}s body straddling {ISO} and
        {IEC}.

        (1995-04-21)

jolix

        /joh'liks/ 386BSD, the {freeware} port of the {BSD} {Net/2}
        release to the {Intel} {i386} architecture by Bill Jolitz and
        friends.  Used to differentiate from BSDI's port based on the
        same source tape, which is called {BSD/386}.

JOLT

        {Java Open Language Toolkit}

Jon Postel

        <person> (Jonathan Bruce Postel, 1943 - 1998-10-16) /p*-stel'/
        One of the {Internet}'s founding fathers.  Jon's name is
        prominent on many of the fundamental {standards} on which the
        Internet is built, such as {UDP}.  He ran {IANA} for as long
        as anybody could remember, in fact for most of the time he
        *was* IANA.

        He wrote {STD 1}, {STD 2} and several dozen other {RFC}s.  His
        friend {Vinton Cerf} noted his passing in {RFC 2468}.

        (1998-10-21)

JOOP

        {Journal of Object-Oriented Programming}

Joseph-Marie Jacquard

        <person> /zhoh-zef' mah-ree' zhah-kar'/ (1752-07-07 to
        1834-08-07) The inventor of the {Jacquard loom}.

        (1998-10-19)

JOSS

        JOHNNIAC Open Shop System.  Charles L. Baker, RAND 1964.  An
        early simple interactive calculator language.  "JOSS Users'
        Reference Manual", R.L. Clark, Report F-1535/9, RAND Corp (Jan
        1975) Sammet 1969, pp.217-226.  Versions: JOSS I and JOSS II.

Jossle

        Type checked language with separate compilation using a
        program library.  Mentioned in "Rationale for the Design of
        Ada", J.  Ichbiah, Cambridge U Press, 1986, p.192.

journalling

        <operating system> Keeping an on-going record of transactions,
        such as procedure calls, or message transmissions.

        (1996-09-22)

jove

        Jonathan's Own Version Of Emacs.  A version of the {GNU}
        {Emacs} editor.  Similar to {MicroGnuEmacs}.

JOVIAL

        <language> (Jule's Own Version of IAL) A version of {IAL}
        produced by Jules I. Schwartz in 1959-1960.  JOVIAL was based
        on {ALGOL 58}, with extensions for large scale {real-time}
        programming.  It saw extensive use by the US Air Force.  The
        data elements were items, entries ({record}s) and tables.

        Versions include JOVIAL I ({IBM 709}, 1960), JOVIAL II ({IBM
        7090}, 1961) and JOVIAL 3 (1965).  Dialects: {J3}, {JOVIAL
        J73}, {JS}, {JTS}.

        Ada/Jovial Newsletter, Dale Lange +1 (513) 255-4472.

        [CACM 6(12):721, Dec 1960].

        (1996-07-19)

Joyce

        A distributed language based on {Pascal} and {CSP}, by Per
        Brinch Hansen.

        ["Joyce - A Programming Language for Distributed Systems", Per
        Brinch Hansen, Soft Prac & Exp 17(1):29-50 (Jan 1987)].

        (1994-12-06)

joystick

        <hardware, games> A device consisting of a hand held stick that
        pivots about one end and transmits its angle in two dimensions
        to a computer.  Joysticks are often used to control games, and
        usually have one or more push-buttons whose state can also be
        read by the computer.  Most I/O interface cards for {IBM PC}s
        have a joystick (game control) port.

        (1995-03-08)

Joy, William

        {William Joy}

jp

        <networking> The {country code} for Japan.

        (1999-01-27)

JPEG

        {Joint Photographic Experts Group}

JPEG File Interchange Format

        <graphics, file format> (JFIF) The technical name for the file
        format better known as {JPEG}.  This term is used only when
        the difference between the JPEG file format and the JPEG image
        {compression} {algorithm} is crucial.

        (1998-02-10)

jpg

        {JPEG}

JPL

        JAM Programming Language.  Imperative string-based language,
        part of the JAM tool for developing screen (non-window)
        applications.  JYACC Corporation

JPLDIS

        {Jet Propulsion Laboratory} Display Information System.  Query
        system for {UNIVAC 1108} [or PDP's?] written in {FORTRAN},
        based on {Tymshare}'s "Retrieve".  Indirectly led to {Vulcan}
        which led to {dBASE II}.  Jack Hatfield, George Masters,
        W. Van Snyder, Jeb Long et al, JPL.

J. Presper Eckert

        <person> One of the developers of {ENIAC}.

        {Biography
        (http://www-groups.dcs.st-and.ac.uk/~history/ShortBiogs/E.html)}.

        [Summary?]

        (1995-11-14)

J. Random

        <jargon> /J rand'm/ (Generalised from {J. Random Hacker})
        Arbitrary; ordinary; any one; any old.  "J. Random" is often
        prefixed to a noun to make a name out of it.  It means roughly
        "some particular" or "any specific one".  "Would you let
        J. Random Loser marry your daughter?"  The most common uses
        are "J. Random Hacker", "J. Random Loser", and "J. Random
        Nerd" ("Should J. Random Loser be allowed to {gun} down other
        people?"), but it can be used simply as an elaborate version
        of {random} in any sense.

J. Random Hacker

        <jargon> /J rand'm hak'r/ {MIT} jargon for a mythical figure;
        the archetypal {hacker} nerd.

        This may originally have been inspired by "J. Fred Muggs", a
        show-biz chimpanzee whose name was a household word back in
        the early days of {TMRC}, and was probably influenced by
        {J. Presper Eckert} (one of the co-inventors of the electronic
        computer).

        See {random}, {Suzie COBOL}.

        (1996-10-16)

JRE

        {Java Runtime Environment}

JRL

        {J. Random} Loser.  The names JRL and JRN were sometimes used
        as example names when discussing a kind of user ID used under
        {TOPS-10} and {WAITS}.  They were understood to be the
        initials of (fictitious) programmers named "J. Random Loser"
        and "J. Random Nerd".  For example, if one said "To log in,
        type log one comma jay are en" (that is, "log 1,JRN"), the
        listener would have understood that he should use his own
        computer ID in place of "JRN".

JRN

        {J. Random} Nerd.  See {JRL}.

JRST

        /jerst/ [based on the {PDP-10} jump instruction, obsolete] To
        suddenly change subjects, with no intention of returning to
        the previous topic.  Usage: rather rare except among PDP-10
        diehards, and considered silly.  See also {AOS}.

JS

        Dialect of {JOVIAL}.  [Sammet 1969, p.639].

JSA

        Japanese Standards Association.

JSDK

        {Java Servlet Development Kit}

JTAG

        {Joint Test Action Group}

        Testing of {digial logic} circuit boards.

        (1995-04-14)

JTB

        {jump trace buffer}

JTC

        <standard, body> {Joint Technical Committee}.

JTC1/SC24

        The {ISO}/{IEC} group which has worked on {standard}s like
        {GKS}, {PHIGS}, {CGM}, and is now also involved in the area of
        standardisation in {Multimedia Presentation}.

        {(http://www.cwi.nl/JTC1SC24/)}

        (1995-01-04)

JTS

        A simple dialect of {JOVIAL}.

        [Sammet 1969, p. 528].

        (1995-01-04)

juggling eggs

        Keeping a lot of {state} in your head while modifying a
        program.  "Don't bother me now, I'm juggling eggs", means that
        an interrupt is likely to result in the program's being
        scrambled.  In the classic first-contact SF novel "The Mote in
        God's Eye", by Larry Niven and Jerry Pournelle, an alien
        describes a very difficult task by saying "We juggle priceless
        eggs in variable gravity."  See also {hack mode}.

Jughead

        Jughead is a tool for Gopher administrators to get menu
        information from various gopher servers, and is an acronym
        for: Jonzy's Universal Gopher Hierarchy Excavation And
        Display.  Jughead was written in ANSI C.  Gopher:
        gopher.cc.utah.edu, About U of U Gopher/Gopher Tools/jughead.

        {(ftp://ftp.cc.utah.edu/pub/gopher/GopherTools)}.  Mailing
        list: jughead-news@lists.utah.edu.

jukebox

        <hardware, storage> A hardware mechanism for allowing access
        to one of a group of discs, especially CD-ROMs or other
        optical media.

        [Or magnetic tapes?]

        (1996-12-10)

jump

        <programming> (Or "branch") The term for a {goto} instruction,
        usually in a context of {machine languages}.  "Branch" may be
        synonymous with "jump", or may refer to jumps that depend on a
        condition.

        (1998-11-14)

jumper

        <hardware> A removable wire or small plug whose presence or
        absence is used to determine some aspect of hardware
        configuration.

        (1995-03-14)

jump off into never-never land

        [J. M. Barrie's "Peter Pan"] Same as {branch to Fishkill}, but
        more common in technical cultures associated with non-{IBM}
        computers that use the term "jump" rather than "branch".

        Compare {hyperspace}.

        (1994-12-15)

jump trace buffer

        (JTB) A feature of some {pipelined} processors (e.g. {Amulet},
        {Pentium}?) which stores the source and destination addresses
        of the last few branch instuctions executed.  When a branch
        instruction is fetched, its source is looked for in the JTB.
        If found, the next instuction fetch will be from the previous
        destination of that branch.  If it turns out that the branch
        shouldn't have been taken this time, then the {pipeline} is
        flushed.  This means that in a {tight loop} it is not
        necessary to flush the {pipeline} every time you jump back to
        the start.

        (1994-12-15)

Junction FET

        {Junction Field Effect Transistor}

Junction Field Effect Transistor

        <electronics> (JFET, Junction FET) A {Field Effect Transistor}
        in which the conducting channel lies between pn junctions in
        the silicon material.  A pn junction acts as a {diode}, so it
        becomes conductive if the gate voltage gets reversed.

        (1997-02-24)

Juno

        A numerical {constraint}-oriented language for graphics
        applications.  It solves its constraints using
        {Newton-Raphson} {relaxation}.  It was inspired partly by
        {Metafont}.

        ["Juno, a Constraint-Based Graphics System", G. Nelson in
        SIGGRAPH '85 Conf Readings, B.A. Barsky ed, Jul 1985,
        pp. 235-243].

        (1994-11-23)

jupiter

        To kill an {IRC} {robot} or user and then take its place by
        adopting its {nick} so that it cannot reconnect.  Named after
        a particular IRC user who did this to {NickServ}, the robot in
        charge of preventing people from inadvertently using a nick
        claimed by another user.

        (1994-11-23)

Just a Bunch Of Disks

        <jargon, storage> (JBOD, or "Just a Bunch of Drives") A
        storage subsystems using multiple independant {disk drives},
        as opposed to one form of {RAID} or another.

        For example, {Unisys} open storage provides JBOD in both
        {SCSI} and {fibre channel} interfaces.

        {Unisys JBOD
        (http://www.marketplace.unisys.com/storage/jbod.html)}.

        (1998-12-21)

JVM

        {Java Virtual Machine}

Jym

        A predecessor to {Graal} by Patrick Bellot, France.

K

        <unit> {kilo-}, a {kilobyte}.  Used both as a spoken word and
        a written suffix, like {meg} and {gig} for {megabyte} and
        {gigabyte}.

        See {prefix}.

        (1995-09-29)

K5

        An early system on the {Larc} computer.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-23)

K56flex

        <protocol> A modem standard developed by {Rockwell} for 56
        {kbps} communications.  K56flex Became more popular than the
        rival {X2} but will be superseded by the official {V.90}
        standard.

        [Already superseded?]

        (1998-09-08)

K6

        <processor> A {Pentium II} class {microprocessor},
        manufactured by {AMD}.

        [100% Compatible?  Speed?]

        (1998-02-27)

K7

        {Athlon}

KA9Q

        <networking> A popular implementation of {TCP/IP} and
        associated {protocol}s for amateur {packet radio} systems and
        {personal computer}s connected via {serial lines}.  It was
        named after the call-sign of Phil Karn - the radio ham who
        first wrote it for {MS-DOS} on the {IBM PC}.

        KA9Q is currently maintained by Anthony Frost
        <vulch@kernow.demon.co.uk> (call-sign G8UDV) and Adam
        Goodfellow <tcpip2@comptech.demon.co.uk>.  It has been ported
        to the {Archimedes} by Jonathan Naylor (G4KLX).

        [FTP?]

        (1994-11-08)

KADS

        {Knowledge Analysis and Design System}

kahuna

        <person> /k*-hoo'n*/ (From the Hawaiian title for a shaman) An
        {IBM} synonym for {wizard} or {guru}.

        (1994-11-09)

Kaleidoscope

        An {object-oriented} language which mixes imperative and
        constraint-oriented features.  Written by Freeman-Benson
        <bnfb@cs.uvic.ca> of the {University of Washington},
        {Universite de Nantes}, 1989; {University of Victoria}, 1992.

        Kaleidoscope is similar to {Siri} and vaguely related to
        {Prose}.  Versions: Kaleidoscope '90 and Kaleidoscope '91.

        ["Kaleidoscope: Mixing Objects, Constraints and Imperative
        Programming", B.N. Freeman-Benson, SIGPLAN Notices
        25(10):77-88 (OOPSLA/ECOOP '90) (Oct 1990)].

        ["Constraint Imperative Programming", B.N. Freeman-Benson,
        Ph.D. Thesis, TR 91-07-02, U Wash (1991)].

        ["Constraint Imperative Programming", Freeman-Benson et al,
        IEEE Conf on Comp Lang, Apr 1992].

        (1994-11-09)

Kali

        A {data parallel} language.

        ["Supporting Shared Data Structures on Distributed Memory
        Architectures", C. Koelbel et al in Second ACM SIGPLAN Symp on
        Princ and Prac of Parallel Programming, pp.177-186, Mar 1990].

        (1994-11-09)

kamikaze packet

        More commonly called a {Christmas tree packet}.  {RFC} 1025,
        "TCP and IP Bake Off" says:

        10 points for correctly being able to process a "Kamikaze"
        packet (AKA {nastygram}, {Christmas tree packet}, lamp test
        segment, et al.).  That is, correctly handle a segment with
        the maximum combination of features at once (e.g. a SYN URG
        PUSH FIN segment with options and data).

        See also {Chernobyl packet}.

        (1994-11-09)

Kamin's interpreters

        A set of {interpreter}s for {Pascal}, {Lisp}, {APL}, {Scheme},
        {SASL}, {CLU}, {Smalltalk} and {Prolog}.  They have been
        implemented as {subclass}es in {C++} by Tim Budd
        <budd@cs.orst.edu>.

        {(ftp://cs.orst.edu/pub/budd/kamin/)}

        ["Programming Languages, An Interpreter-Based Approach",
        Samuel Kamin].

        (1991-09-12)

kangaroo code

        {spaghetti code}

kanji

        <human language, character> /kahn'jee/ (From the Japanese
        "kan" - the Chinese Han dynasty, and "ji" - glyph or letter of
        the alphabet.  Not capitalised.)  The Japanese word for a {Han
        character} used in Japanese.  Kanji constitute a part of the
        {writing system} used to represent the Japanese language in
        written, printed and displayed form.

        Kanji characters are not included in {US-ASCII}, but are
        present in some character encodings, including {Unicode}.

        The Japanese writing system also uses hiragana, furigana,
        katakana and sometimes romaji (Roman-alphabet letters).  These
        characters are distinct from, though commonly used in
        combination with, kanji.

        (1998-10-18)

KAOS

        {Kent Applicative Operating System}

KAP

        Kernel Andorra Prolog.  The predecessor of {AKL}.

        ["Kernel Andorra Prolog and its Computation Model", S. Haridi
        <seif@sics.se> et al, in Logic Programming: Proc 7th Intl
        Conf, MIT Press 1990].

        (1994-11-02)

Karel

        Language featured in Karel the Robot: A Gentle Introduction to
        Computer Programming, Richard E. Pattis, Wiley 1981.

        {(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/pascal/karel.tar-z)}

Kb

        {kilobyte}

KBMS

        An {expert system}.

kbps

        <unit> {kilobits} per second.  A data transfer rate.

        (1996-10-16)

KBS

        {Knowledge-Based System}

KCL

        {Kyoto Common Lisp}

ke

        <networking> The {country code} for Kenya.

        (1999-01-27)

KEE

        Knowledge Engineering Environment.  Frame-based expert system.
        Supports dynamic inheritance, {multiple inheritance},
        polymorphism.  Classes, meta-classes and objects are all
        treated alike.  A class is an instance of a meta-class.  Can
        control rules for merging of each field when multiple
        inheritance takes place.  Methods are written in LISP.
        Actions may be triggered when fields are accessed or modified.
        Extensive GUI integrates with objects.  Can easily make object
        updates to be reflected on display or display selections to
        update fields.  This can in turn trigger other methods or
        inference rules which may then update other parts of the
        display.  Intellicorp, for TI Explorer.  "The Role of
        Frame-Based Representation in Reasoning", R. Fikes et al, CACM
        28(9):904- 920 (Sept 1985).

Keldysh Institute of Applied Mathematics

        Address: Russian Academy of Sciences Miusskaya Pl. 4, 125047
        Moscow, Russia.

        (1994-12-12)

ken

        /ken/ 1. {Ken Thompson}

        2. A flaming user.  This was originated by the Software
        Support group at {Symbolics} because the two greatest flamers
        in the user community were both named Ken.

Ken Thompson

        <person> The principal inventor of the {Unix} {operating
        system} and author of the {B} language, the predecessor of
        {C}.

        In the early days Ken used to hand-cut {Unix} distribution
        tapes, often with a note that read "Love, ken".  Old-timers
        still use his first name (sometimes uncapitalised, because
        it's a login name and mail address) in third-person reference;
        it is widely understood (on {Usenet} in particular) that
        without a last name "Ken" refers only to Ken Thompson.
        Similarly, Dennis without last name means {Dennis Ritchie}
        (and he is often known as dmr).

        Ken was first hired to work on the {Multics} project, which
        was a huge production with many people working on it.  Multics
        was supposed to support hundreds of on-line logins but could
        barely handle three.

        In 1969, when Bell Labs withdrew from the project, Ken got fed
        up with Multics and went off to write his own operating
        system.  People said "well, if zillions of people wrote
        Multics, then an OS written by one guy must be Unix!".  There
        was some joking about eunichs as well.

        Ken's wife Bonnie and son Corey (then 18 months old) went to
        visit family in San Diego.  Ken spent one week each on the
        {kernel}, {file system}, etc., and finished UNIX in one month
        along with developing {SPACEWAR} (or was it "Space Travel"?).

        See also {back door}, {brute force}, {demigod}, {wumpus}.

        (1999-01-26)

Kerberos

        <security> The {authentication} system of {MIT}'s Project
        {Athena}.  It is based on {symmetric key cryptography}.
        Adopted by {OSF} as the basis of security for {DME}.

        (1997-02-04)

Kermit

        <communications> A popular {packet-oriented} {protocol} from
        {Columbia University} for transferring {text files} and
        {binary files} on both {full-duplex} and {half-duplex} 8 bit
        and 7-bit serial connections in a system- and
        medium-independent fashion, and implemented on hundreds of
        different computer and {operating system} {platforms}.  On
        full-duplex connections a {sliding window} protocol with
        selective retransmission provides excellent performance and
        error recovery characteristics.  On 7-bit connections, locking
        shifts provide efficient transfer of 8-bit data.

        When properly implemented, as in the Columbia University
        Kermit Software collection, performance is equal to or better
        than other protocols such as {ZMODEM}, {YMODEM}, and {XMODEM},
        especially on poor connections.

        Kermit is an open protocol - anybody can base their own
        program on it, but some Kermit software and {source code} is
        {copyright} by Columbia University.

        {Home (http://www.columbia.edu/kermit/)}

        (1996-01-29)

kernal

        {kernel}

kernel

        (Note: NOT "kernal").

        1. <operating system> The essential part of {Unix} or other
        {operating system}s, responsible for resource allocation,
        low-level hardware interfaces, security etc.  See also
        {microkernel}.

        2. <language> An essential subset of a programming language,
        in terms of which other constructs are (or could be) defined.
        Also known as a {core} language.

        (1996-06-07)

Kernel Parlog

        <language> A {modeless} {intermediate language} for {Parlog}
        compilation.

        ["Notes on the Implementation of Parlog", K.L. Clark et al, J
        Logic Prog 2(1):17-42 1985].

        (1996-06-07)

Kernel User Interface Package

        <tool> (KUIP) The human interface to {Physics Analysis
        Workbench} (PAW).

        (1994-11-11)

kerning

        <text> The process of reducing the spacing between certain
        pairs of letters to improve their appearance.  When a {font}
        is created, each {character} is given a width that includes
        some space around it so that the letters don't run into each
        other when displayed or printed.  This can be thought of as an
        invisible box around each character.  Some pairs of characters
        such as A and V, look better if the boxes overlap slightly,
        bringing the characters closer together (but still not
        touching).

        See also {tracking}, {leading}.

        (1996-06-07)

Kevo

        <language> A {prototype}-based {object-oriented} language for
        {Macintosh} by Antero Taivalsaari <antero@cs.uta.fi>,
        <tsaari@cs.uta.fi>.  Kevo is built around a {threaded code}
        {interpreter} and features a unique prototype-based {object}
        model (which is based neither on {class}es nor {Self}-style
        {delegation}), {multitasking} (both {pre-emptive multitasking}
        and {cooperative multitasking}), dynamic memory management,
        and an icon-based {object browser} and editor modelled loosely
        after Mac {Finder}.  Kevo's syntax is close to {Forth} and its
        semantics resembles {Self} and {Omega}.  Current version:
        0.9b6.

        {(ftp://cs.uta.fi/pub/kevo/)}.
        E-mail: <kevo-interest@ursamajor.uvic.ca>.

        [TR DCS-197-19, U Victoria, June 1992].

        (1993-05-18)

key

        1. <database> A value used to identify a {record} in a
        database, derived by applying some fixed function to the
        record.  The key is often simply one of the {fields} (a
        {column} if the database is considered as a table with records
        being rows, see "{key field}").  Alternatively the key may be
        obtained by applying some function, e.g. a {hash function}, to
        one or more of the fields.  The set of keys for all records
        forms an {index}.  Multiple indexes may be built for one
        database depending on how it is to be searched.

        2. <cryptography> A value which must be fed into the
        {algorithm} used to decode an encrypted message in order to
        reproduce the original {plain text}.  Some encryption schemes
        use the same (secret) key to encrypt and decrypt a message,
        but {public key encryption} uses a "private" (secret) key and
        a "public" key which is known by all parties.

        (1997-04-26)

keyboard

        <hardware> A {hardware} device consisting of a number of
        mechanical buttons (keys) which the user presses to input
        characters to a computer.

        Keyboards were originally part of {terminal}s which were
        separate {peripheral} devices that performed both input and
        output and communicated with the computer via a {serial line}.
        Today a keyboard is more likely to be connected directly to
        the processor, allowing the processor to scan it and detect
        which key or keys are currently pressed.  Keyboards vary in
        the keys they have, most have keys to generate the {ASCII}
        {character set} as well as various {function key}s and special
        purpose keys, e.g. reset or volume control.

        (1995-05-02)

Keyboard Commando

        <messaging> A {bulletin board} user who posts authoritatively
        on military or combat topics, but who has never served in
        uniform or heard a shot fired in anger.  A poseur.

        (1997-04-25)

keyboard plaque

        <jargon> The disgusting buildup of dirt and crud found on
        computer keyboards.  "Are there any other terminals I can use?
        This one has a bad case of keyboard plaque."

        (1997-04-30)

Keyboard Send Receive

        <hardware> (KSR) Part of a designation for a hard-copy
        {terminal}, manufactured by {Teletype Corporation}.  The KSR
        range were lower cost versions of the {ASR} models.

        (1995-11-23)

Keyed-Hashing Message Authentication

        <messaging, cryptography> (HMAC) A mechanism for message
        {authentication} using cryptographic {hash functions}.  HMAC
        can be used with any iterative cryptographic hash function,
        e.g., {MD5}, {SHA-1}, in combination with a secret shared key.
        The cryptographic strength of HMAC depends on the properties
        of the underlying hash function.

        [RFC 2104].

        (1997-05-10)

Keyed Sequential Data Set

        <database> (KSDS) One of the access methods used by {VSAM}.
        KSDS has indexes and data split into CI (Control Interval) in
        CA (Control Area) and multi index levelled.  Forward and
        backward compression is applied to key values.

        (1999-01-11)

key field

        <database> A field of a {database} (typically a {relational
        database}) {table} which together form a unique identifier for
        a record (a table entry).  The aggregate of these fields is
        usually referred to simply as "the {key}".

        (1997-08-03)

key frame

        <graphics> A frame in an animated sequence of frames which was
        drawn or otherwise constructed directly by the user rather
        than generated automatically, e.g. by {tweening}.

        (1995-04-06)

KeyNote Software

        A company which offers {software}-based business contact
        directories for people who develop, manufacture, market, or
        distribute {software} or {multimedia} products.

        E-mail: <server@netmail.com> (Subject: SEND INDEX).

keypal

        The {electronic mail} equivalent of a pen pal - someone with
        whom to exchange electronic mail for the simple joy of
        communicating.

        {Request for keypals
        (gopher://wealaka.okgeosurvey1.gov/11/K12/keypals)}

        [Is there some kind of central clearing-house for requests on
        the net?]

KeySpell

        <text, tool, education> A spell checker and teaching aid from
        UK company KeySpell Limited for {Microsoft Windows}.  KeySpell
        offers a selection of phonetically similar words, phrases,
        confusable terms, and examples in context.  Even correctly
        spelt homophones can be checked.

        KeySpell can be run with {Microsoft Word} 97 or stand-alone.
        It includes 225,000 words and phrases and can use subsets of
        these.

        {Home (http://www.keyspell.com)}.

        (1999-05-21)

keyword

        1. One of a fixed set of symbols built into the syntax of a
        language.  Typical keywords would be if, then, else, print,
        goto, while, switch.  There are usually restrictions about
        reusing keywords as names for user-defined objects such as
        variables or procedures.  Languages vary as to what is
        provided as a keyword and what is a library routine, for
        example some languages provide keywords for input/output
        operations whereas in others these are library routines.

        2. A small set of words designed to convey the subject of a
        technical article.  Some publications specify a fixed set of
        keywords from which those for a particular article should be
        chosen.

KFX

        The {kernel} language of {FX-87}.

        ["Polymorphic Effect Systems", J.M. Lucassen et al, Proc 15th
        Ann ACM Conf POPL, ACM 1988, pp.47-57].

        (1995-02-15)

kg

        <networking> The {country code} for Kyrgyzstan.

        (1999-01-27)

kgbvax

        /K-G-B'vaks/ {kremvax}.

kh

        <networking> The {country code} for Cambodia (formerly
        Kampuchea).

        (1999-01-27)

Khornerstone

        A multipurpose {benchmark} from {Workstation Labs} used in
        various periodicals.  The source is not free.  Results are
        published in "UNIX Review".

        (1993-04-15)

ki

        <networking> The {country code} for Kiribati.

        (1999-01-27)

KIBO

        /ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out.  A summary
        of what happens whenever valid data is passed through an
        organisation (or person) that deliberately or accidentally
        disregards or ignores its significance.  Consider, for
        example, what an advertising campaign can do with a product's
        actual specifications.  Compare {GIGO}; see also {SNAFU
        principle}.

        2. James Parry <kibo@world.std.com>, a {Usenet}ter infamous
        for various surrealist net.pranks and an uncanny,
        machine-assisted knack for joining any thread in which his nom
        de guerre is mentioned.

kiboze

        [{Usenet}] To {grep} the {Usenet} news for a string,
        especially with the intention of posting a follow-up.  This
        activity was popularised by {Kibo}.

kick

        [IRC] To cause somebody to be removed from a {IRC} channel, an
        option only available to {CHOP}s.  This is an extreme measure,
        often used to combat extreme {flamage} or {flood}ing, but
        sometimes used at the chop's whim.  Compare {gun}.

Kid

        {Kernel} language for {Id}.  A refinement of {P-TAC}, used as
        an intermediate language for Id.  {Lambda-calculus} with
        first-class {let}-blocks and {I-structure}s.

        ["A Syntactic Approach to Program Transformations", Z. Ariola
        et al, SIGPLAN Notices 26(9):116-129 (Sept 1991)].

        (1996-07-22)

KIDASA Software

        <company> A company which develops project management software
        for {Microsoft Windows}.

        {Home (http://www.kidasa.com)}.

        (1996-07-22)

killer micro

        [Popularised by Eugene Brooks] A {microprocessor}-based
        machine that infringes on mini, mainframe, or supercomputer
        performance turf.  Often heard in "No one will survive the
        attack of the killer micros!", the battle cry of the
        downsizers.  Used especially of {RISC} architectures.

        The popularity of the phrase "attack of the killer micros" is
        doubtless reinforced by the movie title "Attack Of The Killer
        Tomatoes" (one of the {canonical} examples of
        so-bad-it's-wonderful among hackers).  This has even more
        flavour now that killer micros have gone on the offensive not
        just individually (in workstations) but in hordes (within
        {massively parallel computer}s).

killer poke

        A recipe for inducing hardware damage on a machine via
        insertion of invalid values (see {poke}) into a
        {memory-mapped} control {register}; used especially of various
        fairly well-known tricks on {bitty box}es without hardware
        memory management (such as the {IBM PC} and {Commodore} {PET})
        that can overload analog electronics in the monitor.

        See also {HCF}.

        (1994-11-04)

kill file

        [{Usenet}] Per-user file(s) used by some {Usenet} reading
        programs (originally {Larry Wall}'s {rn}) to discard summarily
        (without presenting for reading) articles matching some
        particularly uninteresting (or unwanted) patterns of subject,
        author, or other header lines.  Thus to add a person (or
        subject) to one's kill file is to arrange for that person to
        be ignored by one's newsreader in future.  By extension, it
        may be used for a decision to ignore the person or subject in
        other media.  See also {plonk}.

kilo-

        {prefix}

kilobaud

        <unit> 1000 {baud}.

        (1996-02-12)

kilobit

        <unit> (Kb) 2^10 = 1024 {bit}s.

        (1997-02-13)

kilobyte

        <unit> (KB) 2^10 = 1024 {bytes}.

        See {prefix}.

        (1995-09-29)

kiloflops

        <unit> 1000 {FLOPS}.

        See {prefix}.

        (1998-09-07)

kiosk

        A stall set up in a public place where one can obtain
        information, e.g. tourist information.  The information may be
        provided by a human or by a computer.  In the latter case, the
        data may be stored locally (e.g. on {CD-ROM}) or accessed via
        a network using some kind of distributed information retreival
        system such as {Gopher} or {World-Wide Web}.

        (1998-09-07)

KIPS

        /kips/ [by analogy with {MIPS}] Thousands (*not* 1024s) of
        instructions per second.  Usage: rare.

KIS

        {Knowbot Information Service}

KISS

        Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

KISS Principle

        /kis' prin'si-pl/ Keep It Simple, Stupid.

        A maxim often invoked when discussing design to fend off
        {creeping featurism} and control complexity of development.
        Possibly related to the {marketroid} maxim on sales
        presentations, "Keep It Short and Simple".

        See also {Occam's Razor}.

        (1994-11-18)

kit

        <jargon> ({Usenet}, possibly from {DEC}) Slang for a full
        software distribution, as opposed to a {patch} or upgrade.  A
        source software distribution that has been packaged in such a
        way that it can (theoretically) be unpacked and installed
        according to a series of steps using only standard {Unix}
        tools, and entirely documented by some reasonable chain of
        references from the top-level {README file}.  The more general
        term {distribution} may imply that special tools or more
        stringent conditions on the host environment are required.

        (1994-11-18)

KL0

        Kernel Language 0.

        A sequential {logic language} based on {Prolog}, used in the
        Japanese {ICOT} project.

        (1994-11-18)

KL1

        Kernel Language 1.

        An experimental {AND-parallel} version of {KL0} for the {ICOT}
        project in Japan.  KL1 is an implementation of {FGHC}.

        Not to be confused with {KL-ONE}.

        ["Design of the Kernel Language for the Parallel Inference
        Machine", U. Kazunori et al, Computer J (Dec 1990)].

        (1994-10-24)

Klamath

        <processor> The pre-release "code name" for {Intel}'s {Pentium
        II} {microprocessor}.

        (1998-09-07)

KLB

        {Known Lazy Bastard}

Kleene closure

        {Kleene star}

Kleene star

        <text> (Or "Kleene closure", named after {Stephen Kleene}) The
        {postfix} "*" operator used in {regular expressions},
        {Extended Backus-Naur Form} and similar formalisms which when
        postfixed to an expression, matches any number of occurrences
        of that expression.  For example, the regular expression
        "be*t" could match the string "bet", "beet", "bt", "beeeeet",
        and so on.

        (1997-03-18)

Kleene, Stephen Cole

        {Stephen Kleene}

Klerer-May System

        Early system from {Columbia University} with special
        mathematics symbols.  Its reference manual was two pages long!

        ["Further Advances in Two-Dimensional Input-Output by
        Typewriter Terminals", M. Klerer et al, Proc FJCC 31 (1967)].

        [Sammet 1969, pp. 284-294].

        (1994-10-24)

KLOC

        <unit, programming> Thousand (kilo-) {Lines of code}.

        (1995-03-12)

klone

        /klohn/ {clone}.

KL-ONE

        A {frame language}.

        Not to be confused with {KL1}.

        ["An Overview of the KL-ONE Knowledge Representation System",
        R.J. Brachman and J. Schmolze, Cognitive Sci 9(2), 1985].

        (1994-11-18)

kludge

        <jargon> /kluhj/ (From the old Scots "kludgie" meaning an
        outside toilet) A Scottish engineering term for anything added
        on in an ad hoc (and possibly unhygenic!) manner.  At some
        point during the Second World War Scottish engineers met
        Americans and the meaning, spelling and pronunciation of
        kludge became confused with that of "{kluge}".

        The spelling "kludge" was apparently popularised by the
        "Datamation" cited below which defined it as "An ill-assorted
        collection of poorly matching parts, forming a distressing
        whole."

        The result of this tangled history is a mess; in 1993, many
        (perhaps even most) hackers pronounce the word /klooj/ but
        spell it "kludge" (compare the pronunciation drift of {mung}).
        Some observers consider this appropriate in view of its
        meaning.

        ["How to Design a Kludge", Jackson Granholme, Datamation,
        February 1962, pp. 30-31].

        (1998-12-09)

kluge

        <jargon> /klooj/, /kluhj/ (From German "klug" - clever
        [pronunciaton?] and Scottish "{kludge}") 1. A Rube Goldberg
        (or Heath Robinson) device, whether in {hardware} or
        {software}.

        The spelling "kluge" (as opposed to "kludge") was used in
        connection with computers as far back as the mid-1950s and, at
        that time, was used exclusively of *hardware* kluges.

        2. <programming> A clever programming trick intended to solve
        a particular nasty case in an expedient, if not clear, manner.
        Often used to repair bugs.  Often involves {ad-hockery} and
        verges on being a {crock}.  In fact, the TMRC Dictionary
        defined "kludge" as "a crock that works".

        3. Something that works for the wrong reason.

        4. ({WPI}) A {feature} that is implemented in a {rude} manner.

        In 1947, the "New York Folklore Quarterly" reported a classic
        shaggy-dog story "Murgatroyd the Kluge Maker" then current in
        the Armed Forces, in which a "kluge" was a complex and
        puzzling artifact with a trivial function.  Other sources
        report that "kluge" was common Navy slang in the WWII era for
        any piece of electronics that worked well on shore but
        consistently failed at sea.

        However, there is reason to believe this slang use may be a
        decade older.  Several respondents have connected it to the
        brand name of a device called a "Kluge paper feeder" dating
        back at least to 1935, an adjunct to mechanical printing
        presses.  The Kluge feeder was designed before small, cheap
        electric motors and control electronics; it relied on a
        fiendishly complex assortment of cams, belts, and linkages to
        both power and synchronise all its operations from one motive
        driveshaft.  It was accordingly tempermental, subject to
        frequent breakdowns, and devilishly difficult to repair - but
        oh, so clever!  One traditional folk etymology of "klugen"
        makes it the name of a design engineer; in fact, "Kluge" is a
        surname in German, and the designer of the Kluge feeder may
        well have been the man behind this myth.

        {TMRC} and the MIT hacker culture of the early 1960s seems to
        have developed in a milieu that remembered and still used some
        WWII military slang (see also {foobar}).  It seems likely that
        "kluge" came to MIT via alumni of the many military
        electronics projects that had been located in Cambridge (many
        in MIT's venerable Building 20, in which {TMRC} is also
        located) during the war.

        (1996-12-13)

kluge around

        <jargon> To avoid a bug or difficult condition by inserting a
        {kluge}.

        Compare {workaround}.

        (1995-03-10)

Kluwer Academic Publishers Group

        <company> A Dutch publisher.

        {Home (http://www.wkap.nl/)}

        {(ftp://ftp.wkap.nl)}.

        {Ordering information
        (ftp://ftp.wkap.nl/ordering/orderinf.txt)}.

        E-mail: <services@wkap.nl>, <annie.kuipers@wkap.nl> (orders),
        <kluwer@world.std.com> (USA, Canada, Mexico).

        Address: Distribution Centre, P.O. Box 322, 3300 AH Dordrecht,
        The Netherlands.  Telephone: +31 (78) 524 400.  Fax: +31 (78)
        524 474.

        Kluwer Academic Publishers, P.O. Box 358, Accord Station
        Hingham, MA 02018-0358, USA.  Telephone: +1 (617) 817 6300.
        Fax: +1 (617) 871 6528.

        (1995-03-10)

km

        <networking> The {country code} for Comoros.

        (1999-01-27)

KMODEL

        An ancestor of Model-K.  "Preliminary Results on the BEHAVIOUR
        Specifications Language KMODEL-0", BEHAVIOUR Memo 5-91, 1991,
        GMD, Sankt Augustin, Germany

KMS

        {Knowledge Management System}

kn

        <networking> The {country code} for Saint Kitts and Nevis.

        (1999-01-27)

knapsack problem

        <application, mathematics> Given a set of items, each with a
        cost and a value, determine the number of each item to include
        in a collection so that the total cost is less than some given
        cost and the total value is as large as possible.

        The 0/1 knapsack problem restricts the number of each items to
        zero or one.

        Such {constraint satisfaction} problems are often solved using
        {dynamic programming}.

        The general knapsack problem is {NP-hard}, and this has led to
        attempts to use it as the basis for {public-key encryption}
        systems.  Several such attempts failed because the knapsack
        problems they produced were in fact solvable by
        {polynomial-time algorithm}s.

        [Are there any trusted knapsack-based public-key
        cryptosystems?].

        (1995-04-10)

Knights of the Lambda-Calculus

        A semi-mythical organisation of wizardly LISP and Scheme
        hackers.  The name refers to a mathematical formalism invented
        by Alonzo Church, with which LISP is intimately connected.
        There is no enrollment list and the criteria for induction are
        unclear, but one well-known LISPer has been known to give out
        buttons and, in general, the *members* know who they are.

knowbot

        <World-Wide Web> A kind of {bot} that collects information by
        automatically gathering certain specified information from
        {web sites}.

        (1999-06-19)

Knowbot Information Service

        <networking, information science> (KIS) Also known as
        netaddress.  The Knowbot Information Service (KIS) provides a
        uniform user interface to a variety of {remote directory
        service}s such as {whois}, {finger}, {X.500}, {MCIMail}.  By
        submitting a single query to KIS, a user can search a set of
        remote {white pages} services and see the results of the
        search in a uniform format.

        There are several interfaces to the KIS service including
        {electronic mail} and {telnet}.  Another KIS interface
        imitates the Berkeley {whois} command.

        KIS consists of two distinct types of modules which interact
        with each other (typically across a network) to provide the
        service.  One module is a user agent module that runs on the
        KIS mail host machine.  The second module is a remote server
        module (possibly on a different machine) that interrogates
        various database services across the network and provides the
        results to the user agent module in a uniform fashion.
        Interactions between the two modules can be via messages
        between Knowbots or by actual movement of Knowbots.

        There are electronic mail interfaces for KIS at the hosts
        cnri.reston.va.us and sol.bucknell.edu.  Send a message
        containing just the word "man" to <kis@cnri.reston.va.us> or
        <netaddress@sol.bucknell.edu>.  Telnet: info.cnri.reston.va.us
        port 185.

knowledge

        <artificial intelligence, information science> The objects,
        concepts and relationships that are assumed to exist in some
        area of interest.  A collection of {knowledge}, represented
        using some {knowledge representation} language is known as a
        {knowledge base} and a program for extending and/or querying a
        knowledge base is a {knowledge-based system}.

        Knowledge differs from {data} or {information} in that new
        knowledge may be created from existing knowledge using logical
        {inference}.  If information is data plus meaning then
        knowledge is information plus processing.

        A common form of knowledge, e.g. in a {Prolog} program, is a
        collection of {fact}s and {rule}s about some subject.

        For example, a {knowledge base} about a family might contain
        the facts that John is David's son and Tom is John's son and
        the rule that the son of someone's son is their grandson.
        From this knowledge it could infer the new fact that Tom is
        David's grandson.

        See also {Knowledge Level}.

        (1994-10-19)

Knowledge Analysis and Design System

        <process> (KADS) A structured way of developing
        {knowledge-based systems} ({expert systems}).  KADS was
        developed as an alternative to an evolutionary approach and is
        now accepted as the European standard for knowledge based
        systems.

        {(http://www.cse.unsw.edu.au/~timm/pub/slides/kltut/index.html)}.

        ["Knowledge Based Systems Analysis and Design: A KADS
        Developers Handbook", Tansley and Hayball]

        (1998-03-12)

knowledge base

        <artificial intelligence> A collection of {knowledge}
        expressed using some formal {knowledge representation}
        language.  A knowledge base forms part of a {knowledge-based
        system} (KBS).

        (1994-10-19)

knowledge-based system

        <artificial intelligence> (KBS) A program for extending and/or
        querying a {knowledge base}.

        The {Cyc} project is an example of a large KBS.

        [Difference from "expert system"?]

        (1994-10-19)

knowledge level

        [{artificial intelligence}] A level of description of the
        {knowledge} of an {agent} that is independent of the agent's
        internal symbol-level representation.  Knowledge can be
        attributed to agents by observing their actions.  An agent
        "knows" something if it acts as if it had the information and
        is acting rationally to achieve its goals.  The "actions" of
        agents, including knowledge base servers and {knowledge-based
        systems}, can be seen through a tell and ask functional
        interface, where a client interacts with an agent by making
        {logical assertion}s (tell), and posing queries (ask).

        (1994-10-19)

Knowledge Management System

        (KMS) A distributed {hypermedia} system for managing knowledge
        in organisations.  KMS is a commercial system from {Knowledge
        Systems, Inc.} running on {workstation}s, based on previous
        research with {ZOG} at {Carnegie Mellon University}.

        (1994-10-28)

Knowledge Query and Manipulation Language

        <language, protocol, artificial intelligence> (KQML) A
        language and {protocol}, based on {SGML}, for exchanging
        {information} and {knowledge}, proposed in 1993(?).

        Work on KQML is led(?) by Tim Finin <finin@umbc.edu> of the
        University of Maryland Baltimore County, Lab for Advanced
        Information Technology.  It is part of the {ARPA} {Knowledge
        Sharing Effort}.

        The KQML message format and protocol can be used to interact
        with an intelligent system, either by an {application
        program}, or by another intelligent system.  KQML's
        "performatives" are operations that agents perform on each
        other's knowledge and {goal} stores.  Higher-level
        interactions such as {contract nets} and negotiation are built
        using these.  KQML's "communication facilitators" coordinate
        the interactions of other agents to support knowledge sharing.

        Experimental prototype systems support concurrent engineering,
        intelligent design, intelligent planning, and scheduling.

        {Home (http://www.cs.umbc.edu/kqml/)}.

        (1999-09-28)

knowledge representation

        The subfield of {artificial intelligence} concerned with
        designing and using systems for storing knowledge - {fact}s
        and {rule}s about some subject.

        A body of formally represented knowledge is based on a
        {conceptualisation} - an {abstract} view of the world that we
        wish to represent.  In order to manipulate this knowledge we
        must specify how the abstract conceptualisation is represented
        as a {concrete} data structure.  An {ontology} is an explicit
        specification of a conceptualisation.

        (1994-10-19)

Knowledge Sharing Effort

        <project> An {ARPA} project developing techniques and methods
        for building large-scale {knowledge bases} which are sharable
        and reusable.

        {KQML} is part of it.

        (1999-09-28)

Knowledge Systems Laboratory

        (KSL) An {artificial intelligence} research laboratory within
        the Department of Computer Science at {Stanford University}.
        Current work focuses on {knowledge representation} for
        sharable engineering knowledge bases and systems,
        computational environments for modelling physical devices,
        architectures for adaptive intelligent systems, and {expert
        system}s for science and engineering.

        (1994-12-06)

Known Lazy Bastard

        <abuse> (KLB) A term, used among technical support staff, for
        a user who repeatedly asks for help with problems whose
        solutions are clearly explained in the documentation, and
        persists in doing so after having been told to {RTFM}.

        KLBs are singled out for special treatment (i.e. ridicule),
        especially if they have been heard to say "It's so boring to
        read the manual!  Why don't you just tell me?".  The deepest
        pit in Hell is reserved for KLBs whose questions reveal total
        ignorance of the basic concepts (e.g., "How do I make a font
        in {Excel}?", "Where do I turn on my {RAM}?"), and who refuse
        to accept that their questions are neither simple nor
        well-formed.

        (1998-09-07)

Knuth

        /knooth/ 1. {Donald Knuth}.

        2. ["The Art of Computer Programming", Donald E. Knuth]
        Mythically, the reference that answers all questions about
        data structures or algorithms.  A safe answer when you do not
        know: "I think you can find that in Knuth."

        Contrast {literature}.  See also {bible}.

Kodak

        <company> The photographic company responsible for {Photo CD}.

        {Home (http://www.kodak.com/)}

        (1995-12-13)

Kohonen

        {T. Kohonen}

KOMPILER

        Early system on IBM 701.  Listed in CACM 2(5):16 (May 1959).
        Versions: KOMPILER 2 for IBM 701, KOMPILER 3 for IBM 704.

Konrad Zuse

        <person> The designer of the first programming language,
        {Plankalkl}, and the first fully functional
        program-controlled electromechanical {digital computer} in the
        world, the {Z3}.  He died on 1995-12-18 in Huenfeld, Germany.

        {Biography (http://ei.cs.vt.edu/~history/Zuse.html)}

        ["Konrad Zuse: Mein Leben" (My Life), published 1956].

        ["Konrad Zuse: The Computer my Life, Springer, 1993].

        (1999-02-18)

Korn Shell

        (ksh) A {command interpreter} for {Unix}.

        {SKsh} is an {AmigaDos}-specific version and {pdksh} is a free
        {Unix} version.

        [More details?]

kp

        <networking> The {country code} for North Korea.

        (1999-01-27)

KQML

        {Knowledge Query and Manipulation Language}

KR

        {knowledge representation}

kr

        <networking> The {country code} for South Korea.

        (1999-01-27)

K&R

        Kernighan and Ritchie.  Brian Kernighan and Dennis Ritchie's
        book "The C Programming Language", especially the classic and
        influential first edition (Prentice-Hall 1978; ISBN
        0-113-110163-3).

        Synonym {White Book}, {Old Testament}.  See also {New
        Testament}.

KRC

        Kent Recursive Calculator.

        A {lazy} {functional language} developed by {David Turner} in
        1981 based on {SASL}, with {pattern matching} and {ZF
        expression}s.

        ["Functional Programming and its Applications", David
        A. Turner, Cambridge U Press 1982].

        See also {continental drift}.

        (1994-12-06)

K&R C

        {C} as originally described in {K&R}.

kremvax

        /krem-vaks/ Originally, a fictitious {Usenet} site at the
        Kremlin, named like the then large number of {Usenet} {VAXen}
        with names of the form foovax.  Kremvax was announced on April
        1, 1984 in a posting ostensibly originated there by Soviet
        leader Konstantin Chernenko.  The posting was actually forged
        by Piet Beertema as an April Fool's joke.  Other fictitious
        sites mentioned in the hoax were moskvax and {kgbvax}.  This
        was probably the funniest of the many April Fool's forgeries
        perpetrated on {Usenet} (which has negligible security against
        them), because the notion that {Usenet} might ever penetrate
        the Iron Curtain seemed so totally absurd at the time.

        In fact, it was only six years later that the first genuine
        site in Moscow, demos.su, joined {Usenet}.  Some readers
        needed convincing that the postings from it weren't just
        another prank.  Vadim Antonov, senior programmer at Demos and
        the major poster from there up to mid-1991, was quite aware of
        all this, referred to it frequently in his own postings, and
        at one point twitted some credulous readers by blandly
        asserting that he *was* a hoax!

        Eventually he even arranged to have the domain's gateway site
        *named* kremvax, thus neatly turning fiction into truth and
        demonstrating that the hackish sense of humour transcends
        cultural barriers.  Mr. Antonov also contributed some
        Russian-language material for the {Jargon File}.

        In an even more ironic historical footnote, kremvax became an
        electronic centre of the anti-communist resistance during the
        bungled hard-line coup of August 1991.  During those three
        days the Soviet UUCP network centreed on kremvax became the
        only trustworthy news source for many places within the USSR.
        Though the sysops were concentrating on internal
        communications, cross-border postings included immediate
        transliterations of Boris Yeltsin's decrees condemning the
        coup and eyewitness reports of the demonstrations in Moscow's
        streets.  In those hours, years of speculation that
        totalitarianism would prove unable to maintain its grip on
        politically-loaded information in the age of computer
        networking were proved devastatingly accurate - and the
        original kremvax joke became a reality as Yeltsin and the new
        Russian revolutionaries of "glasnost" and "perestroika" made
        kremvax one of the timeliest means of their outreach to the
        West.

KRL

        {Knowledge Representation} Language.  A {frame}-based
        language.

        ["An Overview of KRL, a Knowledge Representation Language",
        D.G. Bobrow and T. Winograd, Cognitive Sci 1:1 (1977)].

KRS

        Frame-based language built on Common LISP.

KRYPTON

        A {frame} language.

        ["An Essential Hybrid Reasoning System: Knowledge and Symbol
        Level Accounts of of KRYPTON", R.J. Brachman et al, Proc
        IJCAI-85, 1985].

ksh

        {Korn Shell}

KSL

        {Knowledge Systems Laboratory}

KSR

        1. {Keyboard Send Receive}.

        2. <company> {Kendall Square Research}.

        (1995-11-23)

KUIP

        {Kernel User Interface Package}

KUTGW

        <chat> Keep up the good work.

        (1999-03-08)

Kvatro Telecom AS

        <company> The company that maintains {Mary}.

        Address: Trondheim, Norway.

        {Home (http://www.kvatro.no/)}.

        (1998-11-10)

Kvikkalkul

        <language> /kveek`kahl-kool'/ A deliberately cryptic
        programming language said to have been devised by the Swedish
        Navy in the 1950s as part of their abortive attempt at a
        nuclear weapons program.  What little is known about it comes
        from a series of an anonymous posts to {Usenet} in 1994.  The
        poster described the language, saying that he had programmed
        in Kvikkalkul when he worked for the Swedish Navy in the
        1950s.  It is an open question whether the posts were a
        {troll}, a subtle parody or truth stranger than fiction could
        ever be.

        Assuming it existed, Kvikkalkul is so much a
        {bondage-and-discipline language} that it is, in its own ways,
        even more bizarre than the deliberate parody language
        {INTERCAL}.  Among its notable "features", all symbols in
        Kvikkalkul, including variable names and program labels, can
        consist only of digits.  Operators consist entirely of the
        punctuation symbols (, ), -, and :.  Kvikkalkul allows no
        {comments} - they might not correspond with the code.
        Kvikkalkul's only data type is the signed fixed-point
        fractional number, i.e. a number between (but not including)
        -1 and 1.  Dealings with the {Real World} that require numbers
        outside that range are done with functions that notionally map
        that range to a larger range (e.g., -16383 to -16383) and
        back.  Kvikkalkul had a probabilistic jump operator which, if
        given a negative probability, would act like a {COME FROM}.
        This was, sadly, deleted in later versions of the language.

        {Home (http://prefect.com/home24/kvikkalkul/)}.

        (1998-11-14)

kw

        <networking> The {country code} for Kuwait.

        (1999-01-27)

ky

        <networking> The {country code} for the Cayman Islands.

        (1999-01-27)

Kyoto Common Lisp

        <language> (KCL) An implementation of {Common Lisp} by
        T. Yuasa <yuasa@tutics.tut.ac.jp> and M. Hagiya
        <hagiya@is.s.u-tokyo.ac.jp>, written in {C} to run under
        {Unix}-like {operating systems}.  KCL is compiled to {ANSI C}.
        It conforms to {Common Lisp} as described in {Guy Steele}'s
        book and is available under a licence agreement.

        {(ftp://rascal.ics.utexas.edu/pub/kcl.tar.Z)}.

        E-mail: <kcl@cli.com> (bug reports).

        Mailing list: kcl-request@cli.com, kcl@rascal.ics.utexas.edu.

        ["Design and Implementation of Kyoto Common Lisp", T. Yuasa
        <yuasa@tutics.tut.ac.jp>, J Info Proc 13(3):284-295 (1990)].

        ["Kyoto Common Lisp Report", T. Yuasa & M. Hagiya].

        (1987-06-01)

kyrka

        /shir'k*/ [Swedish]  See {feature key}.

kz

        <networking> The {country code} for Kazakhstan.

        (1999-01-27)

L0

        Tech U Munich.  Low level language, typed and with ususal flow
        control, but only 3-address expressions.  Higher levels L1 and
        L2 were planned.  "Brief Survey of L0", H. Scheidig, in
        Machine Oriented Higher Level Languages, W. van der Poel ed,
        N-H 1974, pp.239-247.

l10n

        {localisation}

L1 cache

        {primary cache}

L2 cache

        {secondary cache}

L2TP

        {Layer Two Tunneling Protocol}

L6

        Bell Telephone Laboratories Low-Level Linked List Language.
        Ken Knowlton, 1965.  List processing language, typeless.

        ["A Programmer's Description of L6, Bell Telephone
        Laboratories' Low-Level Linked List Language", K. Knowlton
        CACM 9(8):616-625 (Aug 1966).  Sammet 1969, pp.400- 405].

la

        <networking> The {country code} for Laos.

        (1999-01-27)

label edge router

        <networking> (LER) A device that sits at the edge of an {MPLS
        domain}, that uses {routing} information to assign labels to
        {datagrams} and then forwards them into the MPLS domain.

        (1999-06-14)

label switched path

        <networking> (LSP) The specific path through a network that a
        {datagram} follows, based on its {MPLS} labels.

        (1999-06-14)

label switching

        <networking> An attempt to combine the best attributes of
        {layer} two {switching} (as in {ATM} and {frame relay}) with
        the best attributes of the layer three {routing} (as in {IP}).

        The key concept in label switching is identifying and marking
        IP {datagrams} with labels and forwarding them to a modified
        {switch} or {router}, which then uses the labels to switch the
        datagrams through the network.  The labels are created and
        assigned to IP datagrams based upon the information gathered
        from existing IP routing protocols.

        Prior to the formation of the {MPLS} Working Group in 1997, a
        number of vendors had announced and/or implemented proprietary
        label switching.

        (1999-06-14)

Label Switching Router

        <networking> (LSR) A device that typically resides somewhere
        in the middle of a {network} and is capable of forwarding
        {datagrams} based upon a label.  In many cases, especially
        early versions of {MPLS} networks, a LSR will typically be a
        modified {ATM} {switch} that forwards datagrams based upon a
        label in the {VPI}/{VCI} field.

        (1999-06-14)

Lab for Computer Science

        {MIT}.  {(http://www.lcs.mit.edu/)}.

Laboratory INstrument Computer

        <computer> (LINC) A computer which was originally designed in
        1962 by {Wesley Clark}, {Charles Molnar}, Severo Ornstein and
        others at the {Lincoln Laboratory Group}, to facilitate
        scientific research.  With its {digital logic} and {stored
        programs}, the LINC is accepted by the {IEEE Computer Society}
        to be the World's first {interactive} {personal computer}.

        The machine was developed to fulfil a need for better
        laboratory tools by doctors and medical researchers.  It would
        supplant the 1958 {Average Response Computer}, and was
        designed for individual use.

        Led by William N. Papian and mainly funded by the {National
        Institute of Health}, Wesley Clark designed the logic while
        Charles Molnar did the engineering.  The first LINC was
        finished in March 1962.

        In January 1963, the project moved to {MIT}, and then to
        {Washington University} (in St. Louis) in 1964.

        The LINC had a simple {operating system}, four "knobs" (which
        was used like a {mouse}), a {Soroban keyboard} (for
        alpha-numeric data entry), two {LINCtape} drives and a small
        {CRT} display.  It originally had one {kilobit} of {core
        memory}, but this was expanded to 2 Kb later.  The computer
        was made out of {Digital Equipment Corporation} (DEC) hardware
        modules.

        Over 24 LINC systems had been built before late 1964 when
        DEC began to sell the LINC commercially.

        After the introduction of the {PDP-8}, {Dick Clayton} at
        DEC produced a rather frightening hybrid of the LINC and
        PDP-8 called a LINC-8.  This really was not a very
        satisfactory machine, but it used the new PDP-8 style DEC
        cards and was cheaper and easier to produce.  It still
        didn't sell that well.

        In the late 1960s, Clayton brought the design to its pinnacle
        with the PDP-12, an amazing tour de force of the LINC concept;
        along with about as seamless a merger as could be done with
        the PDP-8.  This attempted to incorporate {TTL logic} into the
        machine.  The end of the LINC line had been reached.

        Due to the success of the LINC-8, {Spear, Inc.} produced a
        LINC clone (since the design was in the {public domain}).
        The interesting thing about the Spear {micro-LINC 300} was
        that it used {MECL} II logic.  MECL logic was known for its
        blazing speed (at the time!), but the Spear computer ran at
        very modest rates.

        In 1995 the last of the classic LINCs was turned off for
        the final time after 28 years of service.  This LINC had
        been in use in the Eaton-Peabody Laboratory of Auditory
        Physiology (EPL) of the Massachusetts Eye and Ear
        Infirmary.

        On 15 August 1995, it was transferred to the MIT {Computer
        Museum} where it was put on display.

        {LINC/8, PDP-12
        (http://www.faqs.org/faqs/dec-faq/pdp8/section-7.html)}.

        {Lights out for last LINC
        (http://rleweb.mit.edu/publications/currents/6-1linc.HTM)}.

        ["Computers and Automation", Nov. 1964, page 43].

        (1999-05-20)

Laboratory Virtual Instrument Engineering Workbench

        <tool> (LabVIEW) A package from National Instruments Corp
        originally developed to provide a {graphical user interface}
        to instruments connected by the {IEEE 488} (GPIB) bus.  It has
        powerful graphical editing facilities for defining and
        interconnecting "virtual instruments".

        (1996-04-24)

LaborNet

        An {IGC} network serving groups, unions and labour advocates
        interested in information sharing and collaboration with the
        intent of enhancing the human rights and economic justice of
        workers.  Issues covered include workplace and community
        health and safety issues, trade issues and international union
        solidarity and collaboration.

Labtech Notebook

        <tool, product> Commercial {data aquisition} software.

        (1995-03-08)

LabVIEW

        {Laboratory Virtual Instrument Engineering Workbench}

Lace

        Language for Assembling Classes in Eiffel.  Specifies how to
        assemble an Eiffel system : in which directories to find the
        clusters, which class to use as the root, permits class
        renaming to avoid name clashes.  "Eiffel: The Language",
        Bertrand Meyer, P-H 1992.

lace card

        (Obsolete) A {punched card} with all holes punched (also
        called a "whoopee card" or "ventilator card").  Card readers
        tended to jam when they got to one of these, as the resulting
        card had too little structural strength to avoid buckling
        inside the mechanism.  Card punches could also jam trying to
        produce these things owing to power-supply problems.  When
        some practical joker fed a lace card through the reader, you
        needed to clear the jam with a "card knife" - which you used
        on the joker first.

LADY

        <language> ["Key Concepts in the INCAS Multicomputer Project",
        J. Nehmer et al IEEE Trans Soft Eng SE-13(8):913-923 (Aug
        1987)].

        (1996-06-21)

lag

        {netlag}

Lakota

        Scripting language, extends existing OS commands.
        E-mail: Richard Harter <rh@smds.UUCP>, SMDS, Inc.

LALR

        {Look Ahead Left Recursive}

lalr.ss

        <tool> An {LALR1 grammar} {parser generator} written in, and
        outputting, {Scheme} by Mark Johnson <mj@cs.brown.edu>.

        Version 0.9 (before 1995-10-30).

        FTP new/lalr.shar from the {Scheme Repository}.

        (1993-05-24)

Lambada-Calculus

        <humour, logic> (A pun on "{lambda-calculus}") Teaching logic
        thru spanish dance steps.  Invented by P. van der Linden
        <linden@eng.sun.com>.

        (1996-08-10)

LAMBDA

        A version of {typed lambda-calculus}, used to describe
        semantic {domain}s.

        ["Outline of a Mathematical Theory of Computation",
        D.S. Scott, TM PRG-2, PRG, Oxford U, 1971].

lambda abstraction

        A term in {lambda-calculus} denoting a function.  A lambda
        abstraction begins with a lower-case lambda (represented as
        "\" in this document), followed by a variable name (the "bound
        variable"), a full stop and a {lambda expression} (the body).
        The body is taken to extend as far to the right as possible
        so, for example an expression,

                \ x . \ y . x+y

        is read as

                \ x . (\ y . x+y).

        A nested abstraction such as this is often abbreviated to:

                \ x y . x + y

        The lambda expression (\ v . E) denotes a function which takes
        an argument and returns the term E with all {free} occurrences
        of v replaced by the {actual argument}.  Application is
        represented by {juxtaposition} so

                (\ x . x) 42

        represents the identity function applied to the constant 42.

        A {lambda abstraction} in {Lisp} is written as the symbol
        lambda, a list of zero or more variable names and a list of
        zero or more terms, e.g.

                (lambda (x y) (plus x y))

        Lambda expressions in {Haskell} are written as a backslash,
        "\", one or more patterns (e.g. variable names), "->" and an
        expression, e.g. \ x -> x.

        (1995-01-24)

lambda-calculus

        <mathematics> (Normally written with a Greek letter lambda).
        A branch of mathematical logic developed by {Alonzo Church} in
        the late 1930s and early 1940s, dealing with the application
        of {functions} to their arguments.  The {pure lambda-calculus}
        contains no constants - neither numbers nor mathematical
        functions such as plus - and is untyped.  It consists only of
        {lambda abstraction}s (functions), variables and applications
        of one function to another.  All entities must therefore be
        represented as functions.  For example, the natural number N
        can be represented as the function which applies its first
        argument to its second N times ({Church integer} N).

        Church invented lambda-calculus in order to set up a
        foundational project restricting mathematics to quantities
        with "{effective procedures}".  Unfortunately, the resulting
        system admits {Russell's paradox} in a particularly nasty way;
        Church couldn't see any way to get rid of it, and gave the
        project up.

        Most {functional programming} languages are equivalent to
        lambda-calculus extended with constants and types.  {Lisp}
        uses a variant of lambda notation for defining functions but
        only its {purely functional} subset is really equivalent to
        lambda-calculus.

        See {reduction}.

        (1995-04-13)

lambda expression

        <mathematics> A term in the {lambda-calculus} denoting an
        unnamed function (a "{lambda abstraction}"), a variable or a
        constant.  The {pure lambda-calculus} has only functions and
        no constants.

        (1995-04-13)

lambda lifting

        A program transformation to remove free variables.  An
        expression containing a free variable is replaced by a
        function applied to that variable.  E.g.

                f x = g 3  where g y = y + x

        x is a free variable of g so it is added as an extra argument:

                f x = g 3 x  where g y x = y + x

        Functions like this with no free variables are known as
        supercombinators and are traditionally given upper-case names
        beginning with "$".  This transformation tends to produce many
        supercombinators of the form f x = g x which can be eliminated
        by {eta reduction} and substitution.  Changing the order of
        the parameters may also allow more optimisations.  References
        to global (top-level) constants and functions are not
        transformed to function parameters though they are technically
        free variables.

        A closely related technique is closure conversion.  See also
        Full laziness.

LambdaMOO

        <games> The most frequently used {server} {software} for
        running a {MOO} and also the nerve-center (of sorts) of the
        MOO community.

        {Home (ftp://ftp.lambda.moo.mud.org/pub/MOO/)}.

        {Telnet (telnet://lambda.moo.mud.org:8888)}.

        (1999-05-25)

Lambda-Prolog

        An extension of standard {Prolog} defined by D.A. Miller, in
        which terms are {strongly typed} lambda-terms.  {Clause}s are
        {higher order} {hereditary Harrop formula}s. The main
        novelties are {universal quantification} on {goal}s and
        implication.

        The {Prolog/Mali} compiler uses the {MALI} abstract memory
        system.

        {(ftp://ftp.irisa.fr/pm/pm.tar.Z)}

        E-mail: <pm@irisa.fr>.  Mailing list: prolog-mali@irisa.fr.

        ["Higher-order logic programming", Miller D.A. and Nadathur
        G., 3rd International Conference on Logic Programming, pp
        448-462, London 1986].

        [Nadathur G. "A Higher-Order Logic as a Basis for Logic
        Programming", Thesis, University of Pennsylvania, 1987].

        (1995-02-21)

lamer

        <jargon> A hopelessly clueless {luser}.

        (1997-01-31)

LAMINA

        A {concurrent} {object-oriented} language.

        ["Experiments with a Knowledge-based System on a
        Multiprocessor", Third Intl Conf Supercomputing Proc, 1988].

        ["ELINT in LAMINA, Application of a Concurrent Object
        language", Delagi et al, KSL-88-3, Knowledge Sys Labs,
        Stanford U].

lamp-post error

        {fencepost error}

LAN

        {local area network}

LANCE

        Local Area Network Controller for Ethernet.

        The alternative name for the Am7990 {integrated circuit} used
        in a {Filtabyte} {Ethernet} controller card.

        (1995-02-15)

language

        1. <language, programming> {programming language}.

        2. <human language> {natural language}.

        (1998-09-07)

language-based editor

        {language-sensitive editor}

Language H

        An early business-oriented language from {NCR}.

language lawyer

        A person, usually an experienced or senior software engineer,
        who is intimately familiar with many or most of the numerous
        restrictions and features (both useful and esoteric)
        applicable to one or more computer programming languages.  A
        language lawyer is distinguished by the ability to show you
        the five sentences scattered through a 200-page manual that
        together imply the answer to your question "if only you had
        thought to look there".

        Compare {wizard}, {legal}, {legalese}.

        (1995-02-15)

Language Of Temporal Ordering Specification

        <language> (LOTOS) A formal {specification language} based on
        temporal ordering used for {protocol} specfication in {ISO}
        {OSI} {standard}s.  It is published as ISO 8807 in 1990 and
        describes the order in which events occur.

        ["The Formal Description Technique LOTOS", P.H.J. van Eijk et
        al eds, N-H 1989].

        (1995-03-18)

Language Sensitive Editor

        (LSE) A {language-sensitive editor} from {DEC}.

        (1995-02-15)

language-sensitive editor

        An editor that is aware of the syntactic, semantic and in some
        cases the structural rules of a specific programming language
        and provides a framework for the user to enter {source code}.
        Programs or changes to previously stored programs are
        incrementally parsed into an {abstract syntax tree} and
        automatically checked for correctness.

        (1995-02-15)

languages of choice

        {C} and {Lisp}.  Nearly every hacker knows one of these, and
        most good ones are fluent in both.  Smalltalk and Prolog are
        also popular in small but influential communities.

        There is also a rapidly dwindling category of older hackers
        with FORTRAN, or even assembler, as their language of choice.
        They often prefer to be known as {Real Programmer}s, and other
        hackers consider them a bit odd (see "{The Story of Mel}").
        Assembler is generally no longer considered interesting or
        appropriate for anything but {HLL} implementation, {glue}, and
        a few time-critical and hardware-specific uses in systems
        programs.  FORTRAN occupies a shrinking niche in scientific
        programming.

        Most hackers tend to frown on languages like {Pascal} and
        {Ada}, which don't give them the near-total freedom considered
        necessary for hacking (see {bondage-and-discipline language}),
        and to regard everything even remotely connected with {COBOL}
        or other traditional {card walloper} languages as a total and
        unmitigated {loss}.

Laning and Zierler

        <language> Possibly the first true working algebraic
        {compiler}.  Written by J.H. Laning Jr and N. Zierler in
        1953-1954 to run on {MIT}'s {Whirlwind} computer.

        [Sammet 1969, pp. 131-132].

        [Did the language have a name?]

        (1994-11-01)

LANL

        Los Alamos National Laboratory, Los Alamos, NM, USA.

Lan Manager

        <operating system> {Microsoft}'s {OS/2}-based {network
        operating system}.  Developed in conjunction with {3Com}, Lan
        Manager runs as a task under OS/2.  Because of this, a {file
        server} may concurrently be used for other tasks, such as
        {database} services.  It offers good {mulitasking}.

        (1997-03-19)

LANtastic

        <networking, product> A trademarked name for numerous products
        of {Artisoft, Inc.}.

        (1995-04-16)

LAP

        LISP Assembly Program.  The {assembly language} embedded into
        early {Lisp}.  LAP was also used by the {Liar} compiler for
        {MIT Scheme} and {MACLISP}.

        [Sammet 1969, p. 597].

        (1994-11-01)

LAP4

        Early assembly language for Linc-8 machine.

LAPB

        {Link Access Protocol Balanced}

LAPD

        1. {Link Access Procedure on the D channel}.

        2. Los Angeles Police Department.

LAPM

        {Link Access Protocol for Modems}

LAPSE

        A {single assignment} language for the {Manchester dataflow
        machine}.

        ["A Single Assignment Language for Data Flow Computing",
        J.R.W. Glauert, M.Sc Diss, Victoria U Manchester, 1978].

        (1994-12-21)

laptop computer

        <computer> (Commonly just "laptop") A portable {personal
        computer} of a size suitable to rest comfortably on one's
        legs.  A laptop is smaller than a "{luggable}" (portable, but
        not comfortably) but bigger than a "{palmtop}" (easily carried
        in one hand or a shirt pocket).

        {Toshiba} were one of the first companies to produce laptops,
        in about 1989.

        [First example?  Date?  Difference from "notebook"?]

        (1994-12-21)

LaQuey

        [LaQuey, T. (with J. Ryer), "The Internet Companion: A
        Beginner's Guide to Global Networking", Addison-Wesley,
        Reading, MA, 1992.]

Larch

        The Larch Project develops aids for formal specifications.
        Each Larch specification has two components: an interface
        containing predicates written in the LIL ({Larch Interface
        Language}) designed for the target language and a 'trait'
        containing assertions about the {predicate}s written in LSL,
        the {Larch Shared Language} common to all.

        ["The Larch Family of Specification Languages", J. Guttag et
        al, IEEE Trans Soft Eng 2(5):24-365 (Sep 1985)].

Larch/C++

        An interface specification language which can be used to
        formally specify {C++} program {modules}.

LARCH/CLU

        <language, specification> The {Larch} specification language
        for {CLU}.  Used in "Abstraction and Specification in Program
        Development", B. Liskov & J. Guttag, MIT Press 1986.

        (1996-01-02)

Large Installation Systems Administration

        (LISA) The {USENIX} systems administration conference.  It is
        now more general that its title suggests.  It is sponsored and
        organised by {SAGE}, the USENIX Systems Administrators Guild.

        {(ftp://ftp.sage.usenix.org/pub/sage/)}

        (1996-01-02)

Larry Wall

        <person> A {demigod}, the author of {Perl}, {patch}, and {rn}.

        In the Perl {README}, he says, "I want you to know that I
        create nice things like this because it pleases the Author of
        my story.  If this bothers you, then your notion of Authorship
        needs some revision.  But you can use Perl anyway."

        E-mail: Larry Wall <lwall@sems.com>.

        (1996-06-04)

LART

        {Luser Attitude Re-adjustment Tool}

larval stage

        Describes a period of monomaniacal concentration on coding
        apparently passed through by all fledgling hackers.  Common
        symptoms include the perpetration of more than one 36-hour
        {hacking run} in a given week; neglect of all other activities
        including usual basics like food, sleep, and personal hygiene;
        and a chronic case of advanced bleary-eye.  Can last from 6
        months to 2 years, the apparent median being around 18 months.
        A few so afflicted never resume a more "normal" life, but the
        ordeal seems to be necessary to produce really wizardly (as
        opposed to merely competent) programmers.  See also
        {wannabee}.  A less protracted and intense version of larval
        stage (typically lasting about a month) may recur when one is
        learning a new {OS} or programming language.

lase

        /layz/ To print a given document via a laser printer.  "OK,
        let's lase that sucker and see if all those graphics-macro
        calls did the right things."

laser printer

        <printer> A non-impact high-resolution printer which uses a
        rotating disk to reflect laser beams onto the paper.  When the
        beam touches the paper, it forms an electrostatic image area
        which attracts electrically-charged toner (magnetized dry ink
        powder).  The toner is then fixed (heated) onto the paper,
        forming an image (text or graphics).

        Print resolution ranges between 300 and 600 dots per inch
        (DPI).  Laser printers using chemical photoreproduction
        techniques can produce resolutions of up to 2400 DPI.  Print
        speeds may exceed 21,000 lines per minute, though printing
        speed is more often given in pages per minute.  If a laser
        printer is rated at 12 pages per minute (PPM), this figure
        would be true only if the printer is printing the same data on
        each of the twelve pages, so that the bit map is identical.
        This speed however, is rarely reached if each page contains
        different codes, text, and graphics.

        Although there are dozens of retail brands of laser printers,
        only a few {original equipment manufacturers} make {print
        engines}, e.g. {Canon}, {Ricoh}, {Toshiba}, and {Xerox}.

        (1995-07-06)

Lasherism

        <jargon, algorithm> (Harvard) A program that solves a standard
        problem (such as the {Eight Queens Puzzle} or implementing the
        {life} {algorithm}) in a deliberately nonstandard way.
        Distinguished from a {crock} or {kluge} by the fact that the
        programmer did it on purpose as a mental exercise.  Such
        constructions are quite popular in exercises such as the
        {Obfuscated C contest}, and occasionally in {retrocomputing}.
        Lew Lasher was a student at Harvard around 1980 who became
        notorious for such behaviour.

        (1994-12-07)

last call optimisation

        Normally when procedure A calls procedures B, C, .., Z, the
        environment of procedure A is only discarded when procedure Z
        returns and procedure A itself terminates.  Using last call
        optimisation, A's environment is discarded as Z is called.
        This allows arbitrarily deep nesting of procedure calls
        without consuming memory to store useless environments.

        A special case of this is tail recursion optimisation where
        the last procedure called is the calling procedure itself.

Last In First Out

        <programming> (LIFO) {stack}.

        (1995-12-21)

LAT

        {Local Area Transport}

latch

        A digital logic circuit used to store one or more bits.  A
        latch has a data input, a clock input and an output.  When the
        clock input is active, data on the input is "latched" or
        stored and transfered to the output either immediately or when
        the clock input goes inactive.  The output will then retain
        its value until the clock goes active again.

        See also {flip-flop}.

        (1995-02-03)

latency

        1. The time it takes for a {packet} to cross a network
        connection, from sender to receiver.

        2. The period of time that a frame is held by a network device
        before it is forwarded.

        Two of the most important parameters of a communications
        channel are its latency and its {bandwidth}.

LaTeX

        <language, text, tool> (Lamport TeX) Leslie Lamport
        <lamport@pa.dec.com>'s document preparation system built on
        top of {TeX}.  LaTeX was developed at {SRI International}'s
        Computer Science Laboratory and was built to resemble
        {Scribe}.

        LaTeX adds commands to simplify typesetting and lets the user
        concentrate on the structure of the text rather than on
        formatting commands.

        {BibTeX} is a LaTeX package for bibliographic citations.

        Lamport's LaTeX book has an exemplary index listing every
        symbol, concept and example in the book.  The index in the,
        now obsolete, first edition includes (on page 221) the
        mysterious entry "Gilkerson, Ellen, 221".  The second edition
        (1994) has an entry for "infinite loop" instead.

        ["LaTeX, A Document Preparation System", Leslie Lamport, A-W
        1986, ISBN 0-201-15790-X (first edition, now obsolete)].

        (1997-11-17)

Latin 1

        {ISO 8859}

lattice

        <theory> In {domain theory}, a {partially ordered set} in
        which all finite subsets have a {least upper bound} and
        {greatest lower bound}.

        See also {complete lattice}.

        (1997-02-20)

LAU

        Langage a Assignation Unique.  A {single assignment} language
        for the LAU {dataflow} machine, Toulouse.

        ["Pipelining, Parallelism and Asynchronism in the LAU System",
        J.C. Syre et al, Proc 1977 Intl Conf Parallel Proc,
        pp. 87-92].

laundromat

        <jargon, storage> Synonym {disk farm}; see {washing machine}.

        (1998-02-01)

LAURE

        <language> A language for {knowledge representation} combining
        {object-oriented} features and {logic programming}.  It has
        set operations, object-oriented {exception} handling and a
        {polymorphic} type system.

        E-mail: Yves Caseau <caseau@france.bellcore.com>.

        ["An Object-Oriented Language for Advanced Applications", in
        Proc TOOLS 5, Santa Barbara 1991, P-H].

        (1998-02-01)

LAVA

        A language for {VLSI} that deals with "sticks", i.e. wires
        represented as lines with thickness.

        ["A Target Language for Silicon Compilers", R.J. Matthews et
        al, IEEE COMPCON, 1982, pp. 349-353].

        (1994-12-07)

law

        See {software law}.

Lawrence Livermore Labs

        {Lawrence Livermore National Laboratory}

Lawrence Livermore National Laboratory

        <body> (LLNL) A research organaisatin operated by the
        {University of California} under a contract with the US
        Department of Energy.  LLNL was founded on 2 September 1952 at
        the site of an old World War II naval air station.

        The Lab employs researchers from many scientific and
        engineering disciplines.  Some of its departments are the
        National Ignition Facility, the Human Genome Center, the ASCI
        Tera-Scale Computing partnership, the Computer Security
        Technology Center, and the Site 300 Experimental Test
        Facility.  Other research areas are Astronomy and
        Astrophysics, Atmospheric Science, Automation and Robotics,
        Biology, Chemistry, Computing, Energy Research, Engineering,
        Environmental Science, Fusion, Geology and Geophysics, Health,
        Lasers and Optics, Materials Science, National Security,
        Physics, Sensors and Instrumentation, Space Science.

        LLNL also works with industry in research and licensing
        projects.  At the end of fiscal year 1995, the lab had signed
        agreements for 193 cost-shared research projects involving 201
        companies and worth nearly $600m.

        {Home (http://www.llnl.gov/)}.

        Address: Fremont, California, USA.

        (1996-10-30)

LAX

        LAnguage eXample.

        A {toy language} used to illustrate {compiler} design.

        ["Compiler Construction", W.M. Waite et al, Springer 1984].

        (1994-12-07)

layer

        {protocol layer}

Layer Two Tunneling Protocol

        <protocol> (L2TP) An {IETF} standard {protocol} for creating
        {Virtual Private Networks}.  L2TP is an {open standard} with
        mutlivendor {interoperability} and acceptance.

        Compare: {PPTP}.

        [Sponsored by {Cisco Systems, Inc.}?]

        (1998-09-24)

laziness

        {lazy evaluation}

lazy evaluation

        <reduction> An {evaluation strategy} combining {normal order
        evaluation} with updating.  Under normal order evaluation
        (outermost or call-by-name evaluation) an expression is
        evaluated only when its value is needed in order for the
        program to return (the next part of) its result.  Updating
        means that if an expression's value is needed more than once
        (i.e. it is shared), the result of the first evaluation is
        remembered and subsequent requests for it will return the
        remembered value immediately without further evaluation.  This
        is often implemented by graph reduction.  An unevaluated
        expression is represented as a {closure} - a data structure
        containing all the information required to evaluate the
        expression.

        Lazy evaluation is one {evaluation strategy} used to implement
        non-{strict} functions.  Function arguments may be infinite
        data structures (especially lists) of values, the components
        of which are evaluated as needed.

        According to Phil Wadler the term was invented by Jim Morris.

        Opposite: {eager evaluation}.

        A partial kind of lazy evaluation implements lazy data
        structures or especially {lazy list}s where function arguments
        are passed evaluated but the arguments of data constructors
        are not evaluated.

        {Full laziness} is a {program transformation} which aims to
        optimise lazy evaluation by ensuring that all subexpressions
        in a function body which do not depend on the function's
        arguments are only evaluated once.

        (1994-12-14)

lazy list

        A list which is built using a non-strict constructor.  Any
        head or tail of the list may be an unevaluated closure.  Also
        known as streams since they may be used to carry a sequence of
        values from the output of one function to an input of another.
        See also Lazy evaluation.

Lazy SML

        {Lazy Standard ML}

lazy sml2c

        A {lazy} version {sml2c}.  Portable, written in {SML}.
        Language extensions include {first-class continuation}s,
        {asynchronous signal} handling.

        E-mail: <david.tarditi@cs.cmu.edu>.
        {(ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c)}.

Lazy Standard ML

        <language> (LSML) A {lazy} varient of {SML}, allowing cyclic
        val definitions, by Prateek Mishra <mishra@sbcs.sunysb.edu>.

        Latest version as of 1993-11-15: 0.43-1.

        Not to be confused with {LML}.

        {(ftp://sbcs.sunysb.edu/pub/lsml)}.

        (1999-08-30)

lb

        <networking> The {country code} for Lebanon.

        (1999-01-27)

LBA

        {Logical Block Addressing}

LBE

        {Language-Based Editor}

LBL

        Lawrence Berkeley Laboratory, Berkeley, CA, USA.

lc

        <networking> The {country code} for Saint Lucia.

        (1999-01-27)

LCC

        Language for Conversational Computing.  Written at {CMU} in
        the 1960's.  Similar to {JOSS}, with declarations, pointers
        and block structure from {ALGOL 60}.  Implemented for {IBM
        360}/{IBM 370} under {TSS}.

        ["LCC Reference Manual", H.R. Van Zoeren, CMU 196]9.

lcc

        <programming, tool> A hand-coded, {retargetable} compiler for
        {ANSI C} written by Dave Hanson <drh@cs.princeton.edu>.  lcc's
        {parser} is faster than {yacc} and the code it generates is
        "as good as {GCC}".

        Version 1.8 includes a {compiler}, test suite and
        documentation.  lcc has been ported to {Vax}, commercial
        backends for {MIPS}, {SPARC}, {68000} are cheap for
        universities.  {Chop} is a {code generator} for use with lcc.

        {Home (http://www.cs.princeton.edu/software/lcc/)}.

        E-mail: <lcc-requests@princeton.edu>.

        ["A Retargetable C Compiler: Design and Implementation",
        Addison-Wesley, 1995, ISBN 0-8053-1670-1].

        (1998-03-20)

LCD

        {liquid crystal display}

LCF

        {Logic for Computable Functions}

LCL

        1. The Larch interface language for ANSI standard C.

        [J.V. Guttag et al, TR 74, DEC SRC, Palo Alto CA, 1991].

        2. Liga Control Language.

        Controls the attribute evaluator generator LIGA, part of the
        {Eli} {compiler-compiler}.

        ["LCL: Liga Control Language", U. Kastens
        <uwe@uni-paderborn.de>, U Paderborn].

        (1995-01-23)

lclint

        <tool, programming> A lint-like {ANSI C} source checker from
        {MIT}.  If formal specifications are supplied (in a separate
        file), lclint can do more powerful checking to detect
        inconsistencies between specifications and code.  Adding
        specifications enables further checking, types can be defined
        as {abstract} and lclint can detect inconsistent use of
        {global variable}s; undocumented modification of
        client-visible state; inconsistent use of an uninitialised
        {formal parameter}; or failure to initialise an actual
        parameter.

        {Home (http://larch-www.lcs.mit.edu:8001/larch/lclint.html)}

        (1995-05-11)

LCP

        {Link Control Protocol}

LCS

        Language for Communicating Systems.  Bernard Barthomieu.  A
        concurrent SML with behaviours and processes, based upon
        higher order CCS.  Implemented as a bytecode interpreter.
        Version 3.1 runs on {Sun 3} and {Sun 4}.

        {(ftp://laas.laas.fr/pub/lcs)}.  E-mail: Bernard Berthomieu
        <bernard@laas.laas.fr>.  Mailing list: lcs@laas.laas.fr

ld

        1. <programming, tool> (Load) {Unix}'s utility for linking
        {object files} (".o" files) and {library} files together to
        form an {executable} file (by default called "a.out").  This
        process involves resolving references between the {modules}
        and fixing the {relocation} information used by the operating
        system {kernel} when loading the file into memory to run it.

        2. <mathematics> {logarithmus dualis}.

        (1999-03-19)

LDAP

        {Lightweight Directory Access Protocol}

LDB

        /l*'d*b/ [PDP-10 instruction] To extract from the middle.
        "LDB me a slice of cake, please."  This usage has been kept
        alive by Common LISP's function of the same name.  Considered
        silly.  See also {DPB}.

LDL

        ["LDL: A Logic-Based Data-Language", S. Tsur et al, Proc VLDB
        1986, Kyoto Japan, Aug 1986, pp.33-41].

LDL1

        Successor of LDL.  "Sets and Negation in a Logic Database
        Language", C. Beeri et al, in Proc 6th Ann ACM Symp Princs
        Database Sys (1987), pp.21- 37.

LDP

        {Linux Documentation Project}

LDT

        Logic Design Translator.

        Computer system design analysis.

        [Sammet 1969, p. 621].

        (1994-12-01)

LE/1

        Langage External.

        ["An Evaluation of the LE/1 Network Command Language Designed
        for the SOC Network", J. du Masle, in Command Languages,
        C. Unger ed, N-H 1973].

        (1994-12-01)

leading

        <text> /ledding/ The spacing between lines of {text}.  This is
        defined when a {font} is designed but can often be altered in
        order to change the appearance of the text or for special
        effects.  It is measured in {points} and is normally 120% of
        the height of the text.

        See also {kerning}, {tracking}.

        (1996-06-07)

LEAF

        <language> 1. {LISP Extended Algebraic Facility}.

        2. "LEAF: A Language which Integrates Logic, Equations and
        Functions", R.  Barbuti et al in Logic Programming, Functions
        Relations and Equations, D.  DeGroot et al eds, P-H 1986,
        pp.201-238.

leaf

        <mathematics, data> (Or "terminal node") In a {tree}, a node
        which has no {daughter}.

        (1998-11-14)

Leaf Distribution Limited

        A UK connectivity software supplier which also provides
        SERVELAN, a country-wide {Internet} access service.

        E-mail: <sales@leaf.co.uk>.

        Address: 7 Elmwood, Chineham Business Park, Crockford Lane,
        BASINGSTOKE RG24 0WG.  Telephone: +44 (1256) 707 777.  Fax:
        +44 (1256) 707 555.

        (1995-01-04)

leaf site

        A machine that merely originates and reads {Usenet} news or
        mail, and does not relay any third-party traffic.  Often
        uttered in a critical tone; when the ratio of leaf sites to
        backbone, rib, and other relay sites gets too high, the
        network tends to develop bottlenecks.  Compare {backbone
        site}, {rib site}.

League for Programming Freedom

        <body> (LPF) A grass-roots organisation of professors,
        students, businessmen, programmers and users dedicated to
        bringing back the freedom to write programs.  Ten years ago,
        programmers were allowed to write programs using all the
        techniques they knew, and providing whatever features they
        felt were useful.  This is no longer the case.  The new
        monopolies, {software patents} and {interface copyrights},
        have taken away our freedom of expression and our ability to
        do a good job.

        "{Look and feel}" lawsuits attempt to monopolise well-known
        command languages; some have succeeded.  Copyrights on command
        languages enforce gratuitous incompatibility, close
        opportunities for competition, and stifle incremental
        improvements.

        {Software patents} are even more dangerous; they make every
        design decision in the development of a program carry a risk
        of a lawsuit, with draconian pre-trial seizure.  It is
        difficult and expensive to find out whether the techniques you
        consider using are patented; it is impossible to find out
        whether they will be patented in the future.

        The League is not opposed to the legal system that Congress
        intended -- {copyright} on individual programs.  Our aim is to
        reverse the recent changes made by judges in response to
        special interests, often explicitly rejecting the public
        interest principles of the Constitution.

        The League works to abolish the new monopolies by publishing
        articles, talking with public officials, boycotting egregious
        offenders, and in the future may intervene in court cases.  On
        1989-05-24, the League picketed {Lotus} headquarters on
        account of their lawsuits, and then again on 2 August 1990.
        These marches stimulated widespread media coverage for the
        issue.  We welcome suggestions for other activities, as well
        as help in carrying them out.

        Membership dues in the League are $42 per year for
        programmers, managers and professionals; $10.50 for students;
        $21 for others.  The League's funds will be used for filing
        briefs; for printing handouts, buttons and signs; whatever
        will persuade the courts, the legislators, and the people.
        You may not get anything personally for your dues -- except
        for the freedom to write programs.  The League is a non-profit
        corporation, but not considered a tax-exempt charity.
        However, for those self-employed in software, the dues can be
        a business expense.

        The League needs both activist members and members who only
        pay their dues.  We also greatly need additional corporate
        members; contact us for information.

        Jack Larsen is President, Chris Hofstader is Secretary, and
        Steve Sisak is Treasurer.

        {Home (http://lpf.ai.mit.edu/)}.

        Telephone: +1 (617) 243 4091.

        E-mail: <lpf@uunet.uu.net>.

        Address: League for Programming Freedom, 1 Kendall Square
        #143, P.O.Box 9171, Cambridge, Massachusetts 02139 USA.

        (1999-02-18)

leak

        <programming> With a qualifier, one of a class of
        resource-management bugs that occur when resources are not
        freed properly after operations on them are finished, so they
        effectively disappear (leak out).  This leads to eventual
        exhaustion as new allocation requests come in.

        One might refer to, say, a "window handle leak" in a {window
        system}.

        See {memory leak}, {fd leak}.

        (1995-04-18)

leaky heap

        <programming> (Cambridge) An {arena} with a {memory leak}.

        (1995-04-18)

Lean

        An experimental language from the {University of Nijmegen} and
        {University of East Anglia}, based on graph rewriting and
        useful as an intermediate language.  Lean is descended from
        {Dactl0}.

        {Clean} is a subset of Lean.

        ["Towards an Intermediate Language Based on Graph Rewriting",
        H.P.  Barendregt et al in PARLE: Parallel Architectures and
        Languages Europe, G. Goos ed, LNCS 259, Springer 1987,
        pp.159-175].

        (1995-01-25)

LEAP

        Language for the Expression of Associative Procedures.

        ALGOL-based formalism for sets and associative retrieval, for
        TX-2.  Became part of SAIL.

        "An ALGOL-based Associative Language", J.A. Feldman et al,
        CACM 12(8):439-449 (Aug 1969).

leapfrog attack

        Use of userid and password information obtained illicitly from
        one {host} (e.g. {download}ing a file of account IDs and
        passwords, tapping {TELNET}, etc.) to compromise another host.
        Also, the act of TELNETting through one or more hosts in order
        to confuse a trace (a standard {cracker} procedure).

learning curve

        <jargon> (From psychology) A graph of some measure of
        something learned against time or number of trials.

        In computing, it is often misused to mean the amount of time
        it takes to learn the usage of something ("reduce the learning
        curve") or the ease of learning it ("easy learning curve").
        Even more incorrectly, the phrase "steep learning curve" is
        used to mean "hard to learn" whereas of course a steep curve
        would indicate rapid learning.

        (1998-03-24)

leased line

        <communications, networking> A private telephone circuit
        permanently connecting two points, normally provided on a
        lease by a local {PTT}.

        (1998-03-24)

least fixed point

        A function f may have many {fixed points} (x such that f x =
        x).  For example, any value is a fixed point of the identity
        function, (\ x . x).  If f is {recursive}, we can represent it
        as

                f = fix F

        where F is some {higher-order function} and

                fix F = F (fix F).

        The standard {denotational semantics} of f is then given by
        the least fixed point of F.  This is the {least upper bound}
        of the infinite sequence (the {ascending Kleene chain})
        obtained by repeatedly applying F to the totally undefined
        value, bottom.  I.e.

                fix F = LUB {bottom, F bottom, F (F bottom), ...}.

        The least fixed point is guaranteed to exist for a
        {continuous} function over a {cpo}.

least recently used

        (operating systems) (LRU) A rule used in a {paging} system
        which selects a page to be {paged out} if it has been used
        (read or written) less recently than any other page.  The same
        rule may also be used in a {cache} to select which cache entry
        to {flush}.

        This rule is based on {temporal locality} - the observation
        that, in general, the page (or cache entry) which has not been
        accessed for longest is least likely to be accessed in the
        near future.

        (1995-02-15)

least significant bit

        <data> (LSB) {Bit} zero, the bit of a {binary} number giving
        the number of ones, the last or rightmost bit when the number
        is written in the usual way.

        (1995-07-13)

least upper bound

        <theory> (lub or "join", "supremum") The least upper bound of
        two elements a and b is an upper bound c such that a <= c and
        b <= c and if there is any other upper bound c' then c <= c'.
        The least upper bound of a set S is the smallest b such that
        for all s in S, s <= b.  The lub of mutually comparable
        elements is their maximum but in the presence of incomparable
        elements, if the lub exists, it will be some other element
        greater than all of them.

        Lub is the dual to {greatest lower bound}.

        (In {LaTeX}, "<=" is written as {\sqsubseteq}, the lub of two
        elements a and b is written a {\sqcup} b, and the lub of set S
        is written as \bigsqcup S).

        (1995-02-03)

leaves

        {leaf}

LEC

        {Local Exchange Carrier}

LECOM

        Version of COMIT on GE 225 ca. 1966.  Sammet 1969, p.419.

LED

        <electronics> {Light-Emitting Diode}.

LEDA

        {Library of Efficient Data types and Algorithms}

Leda

        A multi-paradigm language (imperative, declarative,
        procedural, applicative, functional, logic, and
        object-oriented!) by Tim Budd <budd@cs.orst.edu>, Oregon State
        U, 1990-1993.

        ["Blending Imperative and Relational Programming", Tim Budd,
        IEEE Software 8(1):58-65 (Jan 1991)].  Forthcoming book.

        {(ftp://cs.orst.edu/pub/budd/leda/)}

LED page printer

        {LED printer}

LED printer

        <printer> (Or "LED page printer") A printer which is similar
        in operation to a {laser printer}, but where an array of
        {LED}s is used in place of the laser.

        (1996-12-08)

leet

        {elite}

left arrow

        <character> The graphic which the 1963 version of {ASCII} had
        in place of the {underscore} character, {ASCII} 95.

        (1995-03-06)

left brace

        <character> "{".  {ASCII} character 123.

        Common names: open brace; left brace; left squiggly; left
        squiggly bracket/brace; left curly bracket/brace; {ITU-T}:
        opening brace.  Rare: brace ("}" = unbrace); curly ("}" =
        uncurly); leftit ("}" = rytit); left squirrelly; {INTERCAL}:
        embrace ("}" = bracelet).

        Paired with {right brace} ("}").

        (1995-03-16)

left bracket

        <character> "[".  {ASCII} character 91.

        Common: left square bracket; {ITU-T}: opening bracket;
        bracket.  Rare: square; {INTERCAL}: U turn.

        Paired with {right bracket} ("]").

        (1995-03-16)

left outer join

        {outer join}

left parenthesis

        <character> "(".  {ASCII} character 40.

        Common names: left paren; left parenthesis; left; {open};
        paren (")" = thesis); open paren; open parenthesis; left
        parenthesis; left banana.  Rare: so (")" = already); lparen;
        {ITU-T}: opening parenthesis; open round bracket, left round
        bracket, {INTERCAL}: wax (")" = wane); parenthisey (")" =
        unparenthisey); left ear.

        Paired with {right parenthesis} (")").

        (1995-03-06)

LeFun

        Logic, Equations and Functions.  An integration of {logic
        programming} and {functional programming} by H. Ait-Kaci et al
        of {MCC}, Austin TX.

        ["LeFun: Logic, Equations and Functions", H. Ait-Kaci et al,
        Proc 1987 Symp on Logic Programming, San Francisco].

        (1994-10-21)

legacy code

        {legacy system}

legacy software

        {legacy system}

legacy system

        <jargon> A computer system or {application program} which
        continues to be used because of the cost of replacing or
        redesigning it and often despite its poor competitiveness and
        compatibility with modern equivalents.  The implication is
        that the system is large, monolithic and difficult to modify.

        If legacy software only runs on antiquated {hardware} the cost
        of maintaining this may eventually outweigh the cost of
        replacing both the software and hardware unless some form of
        {emulation} or {backward compatibility} allows the software to
        run on new hardware.

        (1998-08-09)

legal

        Loosely used to mean "in accordance with all the relevant
        rules", especially in connection with some set of constraints
        defined by software.  "The older =+ alternate for += is no
        longer legal syntax in ANSI C."  "This parser processes each
        line of legal input the moment it sees the trailing linefeed."
        Hackers often model their work as a sort of game played with
        the environment in which the objective is to maneuver through
        the thicket of "natural laws" to achieve a desired objective.
        Their use of "legal" is flavoured as much by this game-playing
        sense as by the more conventional one having to do with courts
        and lawyers.  Compare {language lawyer}, {legalese}.

legalese

        Dense, pedantic verbiage in a language description, product
        specification, or interface standard; text that seems designed
        to obfuscate and requires a {language lawyer} to {parse} it.
        Though hackers are not afraid of high information density and
        complexity in language (indeed, they rather enjoy both), they
        share a deep and abiding loathing for legalese; they associate
        it with deception, {suit}s, and situations in which hackers
        generally get the short end of the stick.

LEGOL

        "Application of MP/3 to the Design and Implementation of
        LEGOL, A Legally Oriented Language", S.H. Mandil et al, Intl
        Symp Programming, Paris 1974.

Le-Lisp

        Jerome Chailloux and Emmanuel St James, INRIA, France.  A LISP
        dialect close to Common Lisp, lexically scoped, with a
        CLOS-like object system.  Uses both packages and modules.
        "le-lisp: A Portable and Efficient Lisp System", J. Chailloux
        et al, Proc 1984 ACM Symp on Lisp and Functional Programming,
        ACM.  Version v.16, available from ILOG, France.

lemma

        <logic> A result already proved, which is needed in the proof
        of some further result.

        (1995-03-25)

Lempel-Ziv compression

        {Substitutional compression} schemes proposed by Jakob Ziv and
        Abraham Lempel in 1977 and 1978.  There are two main schemes,
        {LZ77} and {LZ78}.  {Lempel-Ziv Welch compression} is a
        variant of {LZ78}.

Lempel-Ziv Welch compression

        (LZW) The {algorithm} used by the {Unix} {compress} command to
        reduce the size of files, e.g. for archival or transmission.
        LZW was designed by Terry Welch in 1984 for implementation in
        hardware for high-performance disk controllers.  It is a
        variant of {LZ78}, one of the two {Lempel-Ziv compression}
        schemes.

        The LZW algorithm relies on reoccurrence of byte sequences
        (strings) in its input.  It maintains a table mapping input
        strings to their associated output codes.  The table initially
        contains mappings for all possible strings of length one.
        Input is taken one byte at a time to find the longest initial
        string present in the table.  The code for that string is
        output and then the string is extended with one more input
        byte, b.  A new entry is added to the table mapping the
        extended string to the next unused code (obtained by
        incrementing a counter).  The process repeats, starting from
        byte b.  The number of bits in an output code, and hence the
        maximum number of entries in the table is usually fixed and
        once this limit is reached, no more entries are added.

        LZW compression and decompression are licensed under {Unisys}
        Corporation's 1984 U.S. Patent 4,558,302 and equivalent
        foreign patents.  This kind of patent isn't legal in most
        coutries of the world (including the UK) except the USA.
        Patents in the UK can't describe {algorithm}s or mathematical
        methods.

        [A Technique for High Performance Data Compression, Terry A.
        Welch, IEEE Computer, 17(6), June 1984, pp. 8-19]

        [J. Ziv and A. Lempel, "A Universal Algorithm for Sequential
        Data Compression," IEEE Transactions on Information Theory,
        Vol. IT-23, No. 3, May 1977, pp. 337-343].

lenient evaluation

        An {evaluation strategy}, described in [Traub, FPCA 89], under
        which all {redex}es are evaluated in parallel except inside
        the arms of conditionals and inside {lambda abstraction}s.
        This is an example of an {eager} evaluation strategy.

LEO

        {Low Earth Orbit}

Leo

        <language> A general-purpose systems language, syntactically
        like {Pascal} and {Y}, semantically like {C}.

        ["The Leo Programming Language", G. Townsend, CS TR 84-7, U
        Arizona 1984].

        (1996-02-06)

LER

        1. <networking> {Label Edge Router}.

        2. <electronics, humour> {Light-Emitting Resistor}.

        (1999-06-30)

LERP

        /lerp/ vi., Quasi-acronym for Linear Interpolation, used as a
        verb or noun for the operation. "Bresenham's algorithm lerps
        incrementally between the two endpoints of the line."

less than

        <character> "<" {ASCII} character 60.

        Common names: {ITU-T}: less than; bra (">" = ket); left angle;
        left angle bracket; left broket.  Rare: from; read from; suck
        (">" = blow); comes-from; in; crunch (all from Unix);
        {INTERCAL}: angle.

        See also {greater than}.

        (1995-03-20)

LessTif

        <library> The {Hungry Programmers}' version of {OSF}/{Motif}.
        It will be source code compatible with Motif, meaning that the
        same source will compile with both libraries and work exactly
        the same.  All the programming is being done with no reference
        to the header files for the motif widgets, so that LessTif can
        be distributed as {free software}.

        {Home (http://www.hungry.com/products/lesstif)}

        (1995-03-20)

let floating

        <programming> A {program transformation} used in {functional
        programming} to implement {full laziness}.  E.g. the function

                f x = x + sqrt 4

        can be expressed as

                f x = let t = sqrt 4 in x + t

        but note that t does not depend on the argument x so we can
        automatically transform this to

                t = sqrt 4
                f x = x + t

        Making t into a global constant which need only be evaluated
        at most once, rather than every time f is called.  The general
        idea is to float each subexpression as far out (towards the
        top level) as possible to maximise sharing.

        (1997-07-09)

letterbomb

        <messaging> 1. An {e-mail} message containing {live data}
        intended to do nefarious things to the recipient's computer or
        terminal.  It is possible, for example, to send letterbombs
        that will lock up some specific kinds of terminals when they
        are viewed, so thoroughly that the user must turn the terminal
        off to unwedge it.  Under {Unix}, a letterbomb can also try to
        get part of its contents interpreted as a shell command.  The
        results of this could range from silly to tragic.

        See also {Trojan horse}; compare {nastygram}, {talk bomb}.

        2. Loosely, a {mailbomb}.

        (1998-01-16)

level 1 cache

        {primary cache}

level 2 cache

        {secondary cache}

LEVEL5 OBJECT

        From {Information Builders}.

        [What is it?]

level one cache

        {primary cache}

level-sensitive scan design

        (circuit design) (LSSD) A kind of {scan design} which uses
        separate system and scan clocks to distinguish between normal
        and test mode.  Latches are used in pairs, each has a normal
        data input, data output and clock for system operation.  For
        test operation, the two latches form a master/slave pair with
        one scan input, one scan output and non-overlapping scan
        clocks A and B which are held low during system operation but
        cause the scan data to be latched when pulsed high during
        scan.

                  ____
                 |    |
         Sin ----|S   |
         A ------|>   |
                 |   Q|---+--------------- Q1
         D1 -----|D   |   |
         CLK1 ---|>   |   |
                 |____|   |    ____
                          |   |    |
                          +---|S   |
         B -------------------|>   |
                              |   Q|------ Q2 / SOut
         D2 ------------------|D   |
         CLK2 ----------------|>   |
                              |____|

        In a single latch LSSD configuration, the second latch is used
        only for scan operation.  Allowing it to be use as a second
        system latch reduces the silicon overhead.

        (1995-02-15)

level two cache

        {secondary cache}

Lex

        1. A {lexical analyser} generator for {Unix} and its input
        language.  There is a {GNU} version called {flex} and a
        version written in, and outputting, {SML/NJ} called {ML-lex}.
        A version, by David Poole <dpoole@hydrogen.oscs.montana.edu>,
        has been retargeted to {Turbo Pascal},
        {(ftp://iecc.com/pub/file/lyprg.zip)}.

        ["Lex - A Lexical Analyzer Generator", M.E. Lesk, CS TR 39,
        Bell Labs (Oct 1975)].

        2. Lexical specification language for COPS.

        ["Metalanguages of the Compiler Production System COPS",
        J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
        W. Henhapl, Tech Hochs Darmstadt 1978, pp.122-159].

lexeme

        <grammar> A minimal lexical unit of a language.  {Lexical
        analysis} converts strings in a language into a list of
        lexemes.  For a programming language these word-like pieces
        would include {keywords}, {identifiers}, {literal}s and
        punctutation.  The lexemes are then passed to the {parser} for
        syntactic analysis.

        (1996-04-06)

lexer

        {lexical analyser}

lexical analyser

        <language> (Or "scanner") The initial input stage of a
        language processor (e.g. a {compiler}), the part that performs
        {lexical analysis}.

        (1995-04-05)

lexical analysis

        <programming> (Or "linear analysis", "scanning") The first
        stage of processing a language.  The stream of characters
        making up the source program or other input is read one at a
        time and grouped into {lexeme}s (or "tokens") - word-like
        pieces such as keywords, identifiers, {literal}s and
        punctutation.  The lexemes are then passed to the {parser}.

        ["Compilers - Principles, Techniques and Tools", by Alfred
        V. Aho, Ravi Sethi and Jeffrey D. Ullman, pp. 4-5]

        (1995-04-05)

lexical scope

        <programming> (Or "static scope") In a lexically scoped
        language, the {scope} of an {identifier} is fixed at
        {compile-time} to be the smallest {block} (begin/end or
        function/procedure body) containing the identifier's
        declaration.  This means that an identifier declared in some
        block is only accessible within that block and from procedures
        declared within it.

        Opposite of {dynamic scope}.  See {activation record}.

        (1995-05-09)

lexical scoping

        {lexical scope}

lexiphage

        /lek'si-fayj"/  A notorious word {chomper} on
        ITS.  See {bagbiter}.  This program would draw on a selected
        victim's bitmapped terminal the words "THE BAG" in ornate
        letters, followed a pair of jaws biting pieces of it off.

LF

        {Line Feed}

LG

        Simple language for analytic geometry, with graphic output.
        "LG: A Language for Analytic Geometry", J. Reymond, CACM 12(8)
        (Aug 1969).

LGDF

        Large-Grain DataFlow.

        ["A Large-grain Data Flow Scheduler for Parallel Processing on
        Cyberplus", R.G. Babb et al, Proc 1986 Intl Conf on Paralllel
        Proc, Aug 1986].

LGEN

        A {logic language} for {VLSI} implementation by {S.C. Johnson}
        of {Bell Labs}.

        [S.C. Johnson, "Code Generation for Silicon", Proc 10th POPL,
        1983].

        (1995-02-15)

LGN

        {Linear Graph Notation}

lha

        1. <filename extension> The {filename extension} for a file
        produced by the {shareware} {compression} and {archive}
        software {LHARC}.

        2. <tool> A {compression} program for {MS-DOS}.  Output files
        have the extension ".lhz".

        (1995-10-03)

LHARC

        <compression, algorithm> A {compression} program developed by
        Rahul Dhesi.  LHARC was later replaced with {LHA}, which
        produces files with extension ".lhz".

        (1997-05-30)

lhs

        <filename extension> The {filename extension} for {literate}
        {Haskell} source files.

        (1995-02-15)

lhz

        <filename extension> The {filename extension} for a file
        produced by the {LHA} program.

        (1995-04-03)

li

        <networking> The {country code} for Liechtenstein.

        (1999-01-27)

Liana

        <language> A {C}-like, interpretive, {object-oriented
        programming} language, {class} library, and integrated
        development environment designed specifically for development
        of {application programs} for {Microsoft Windows} and {Windows
        NT}.  Designed by Jack Krupansky <Jack@BaseTechnology.com> of
        {Base Technology}, Liana was first released as a commercial
        product in August 1991.  The language is designed to be as
        easy to use as {BASIC}, as concise as {C}, and as flexible as
        {Smalltalk}.

        The {OOP} {syntax} of {C++} was chosen over the less familiar
        syntax of {Smalltalk} and {Objective-C} to appeal to {C}
        programmers and in recognition of C++ being the leading OOP
        language.  The syntax is a simplified subset of {C/C++}.  The
        {semantics} are also a simplified subset of C/C++, but
        extended to achieve the flexibility of Smalltalk.

        Liana is a typeless language (like {Lisp}, {Snobol} and
        {Smalltalk}), which means that the datatypes of variables,
        function parameters, and function return values are not needed
        since values carry the type information.  Hence, variables are
        simply containers for values and function parameters are
        simply pipes through which any type of value can flow.
        {Single inheritance}, but not {multiple inheritance}, is
        supported.  {Memory management} is automatic using {reference
        counting}.

        The library includes over 150 {classes}, for {dynamic arrays},
        {associative lookup} tables, windows, menus, dialogs,
        controls, bitmaps, cursors, icons, mouse movement, keyboard
        input, fonts, text and graphics display, {DDE}, and {MDI}.

        Liana provides flexible OOP support for Windows programming.
        For example, a {list box} automatically fills itself from an
        associated {object}.  That object is not some sort of special
        object, but is merely any object that "behaves like" an array
        (i.e., has a "size" member function that returns the number of
        elements, a "get" function that returns the ith element, and
        the text for each element is returned by calling the "text"
        member function for the element).

        A related product, C-odeScript, is an embeddable application
        scripting language.  It is an implementation of Liana which
        can be called from C/C++ applications to dynamically evaluate
        expressions and statement sequences.  This can be used to
        offer the end-user a macro/scripting capability or to allow
        the C/C++ application to be customized without changing the
        C/C++ source code.

        Here's a complete Liana program which illustrates the
        flexibility of the language semantics and the power of the
        class library:

         main
         {
           // Prompt user for a string.
           // No declaration needed for "x" (becomes a global variable.)
           x = ask ("Enter a String");

           // Use "+" operator to concatenate strings. Memory
           // management for string temporaries is automatic.  The
           // "message" function displays a Windows message box.
           message ("You entered: " + x);

           // Now x will take on a different type.  The "ask_number"
           // function will return a "real" if the user's input
           // contains a decimal point or an "int" if no decimal
           // point.
           x = ask_number ("Enter a Number");

           // The "+" operator with a string operand will
           // automatically convert the other operand to a string.

           message ("You entered: " + x);

           // Prompt user for a Liana expression.  Store it in a
           // local variable (the type, string, is merely for
           // documentation.)
           string expr = ask ("Enter an Expression");

           // Evaluate the expression. The return value of "eval"
           // could be any type.  The "source_format" member function
           // converts any value to its source format (e.g., add
           // quotes for a string.)  The "class_name" member function
           // return the name of the class of an object/value.
           // Empty parens can be left off for member function calls.
           x = eval (expr);
           message ("The value of " + expr + " is " + x.source_format +
               " its type is " + x.class_name);
         }

        The author explained that the "Li" of Liana stands for
        "Language interpreter" and liana are vines that grow up trees
        in tropical forests, which seemed quite appropriate for a tool
        to deal with the complexity of MS Windows!  It is also a
        woman's name.

        ["Liana for Windows", Aitken, P., PC TECHNIQUES, Dec/Jan
        1993].

        ["Liana: A Language For Writing Windows Programs", Burk, R.,
        Tech Specialist (R&D Publications), Sep 1991].

        ["Liana v. 1.0." Hildebrand, J.D., Computer Language, Dec
        1992].

        ["Liana: A Windows Programming Language Based on C and C++",
        Krupansky, J., The C Users Journal, Jul 1992].

        ["Writing a Multimedia App in Liana", Krupansky, J.,
        Dr. Dobb's Journal, Winter Multimedia Sourcebook 1994].

        ["The Liana Programming Language", R. Valdes, Dr Dobbs J Oct
        1993, pp.50-52].

        (1999-06-29)

liar paradox

        <philosophy> A sentence which asserts its own falsity,
        e.g. "This sentence is false" or "I am lying".  These
        paradoxical assertions are meaningless in the sense that there
        is nothing in the world which could serve to either support or
        refute them.  Philosophers, of course, have a great deal more
        to say on the subject.

        ["The Liar: an Essay on Truth and Circularity", Jon Barwise
        and John Etchemendy, Oxford University Press (1987). ISBN
        0-19-505944-1 (PBK), Library of Congress BC199.P2B37].

        (1995-02-22)

libg++

        The {run-time library} for the {GNU} {C++} compiler, {g++}.
        Version: 2.5.1 is a superset of {ANSI} and {POSIX.1}.

        {FTP} libg++-2.5.1.tar.gz from a {GNU archive site}.

        E-mail: Per Bothner <bothner@cygnus.com>,
        <bug-lib-g++@prep.ai.mit.edu>.

        (1993-06-30)

library

        <programming, library> A collection of {subroutines} and
        {functions} stored in one or more files, usually in compiled
        form, for linking with other programs.  Libraries are one of
        the earliest forms of organised {code reuse}.  They are often
        supplied by the {operating system} or {software development
        environment} developer to be used in many different programs.
        The routines in a library may be general purpose or designed
        for some specific function such as three dimensional animated
        graphics.

        Libraries are linked with the user's program to form a
        complete {executable}.  The linking may be {static linking}
        or, in some systems, {dynamic linking}.

        (1998-11-21)

Library of Efficient Data types and Algorithms

        <library> (LEDA) A {class library} for {C++} of efficient data
        types (e.g. {graph} {classes}) and {algorithm}s by Stefan
        N"aher <stefan@mpi-sb.mpg.de> of the {University of
        Saarbruecken}.  Version 3.0 includes both {template} and
        non-template versions.

        {(ftp://ftp.mpi-sb.mpg.de/pub/LEDA)}.

        (1996-04-15)

librery

        <spelling> It's spelled "{library}".

        (1996-12-13)

LIDO

        An input language for the attribute evaluator generator {LIGA}
        (a successor of {GAG} and a subsystem of the {Eli}
        compiler-compiler).  LIDO is derived from GAG's input language
        {ALADIN}.

        ["LIDO: A Specification Language for Attribute Grammars",
        U. Kastens <uwe@uni-paderborn.de>, Fab Math-Inf, U Paderborn
        (Oct 1989)].

        (1994-10-20)

LiE

        A {symbolic mathematics} package aimed at {Lie group}s.

        ["LiE, a Package for Lie Group Computations", M.A.A. van
        Leeuwen et al, in Computer Algebra Nederland, 1992 (ISBN
        90-741160-02-7)].

        (1994-10-20)

LIF

        {Low Insertion Force}

LIFE

        <language> Logic of Inheritance, Functions and Equations.

        An {object-oriented}, {functional}, {constraint}-based
        language by Hassan Ait-Kacy <hak@prl.dec.com> et al of {MCC},
        Austin TX, 1987.  LIFE integrates ideas from {LOGIN} and
        {LeFun}.

        Mailing list: life-users@prl.dec.com.

        See also {Wild_LIFE}.

        ["Is There a Meaning to LIFE?", H. Ait-Kacy et al, Intl Conf
        on Logic Prog, 1991].

        (1995-04-21)

Life

        <games> The first popular {cellular automata} based
        {artificial life} "game".  Life was invented by British
        mathematician John Horton Conway in 1970 and was first
        introduced publicly in "Scientific American" later that year.

        Conway first devised what he called "The Game of Life" and
        "ran" it using plates placed on floor tiles in his house.
        Because of he ran out of floor space and kept stepping on the
        plates, he later moved to doing it on paper or on a
        checkerboard, and then moved to running Life as a computer
        program on a {PDP-7}.  That first implementation of Life as a
        computer program was written by M. J. T. Guy and
        {S. R. Bourne} (the author of {Unix}'s {Bourne shell}).

        Life uses a rectangular grid of binary (live or dead) cells
        each of which is updated at each step according to the
        previous state of its eight neighbours as follows: a live cell
        with less than two, or more than three, live neighbours dies.
        A dead cell with exactly three neighbours becomes alive.
        Other cells do not change.

        While the rules are fairly simple, the patterns that can arise
        are of a complexity resembling that of organic systems -- hence
        the name "Life".

        Many hackers pass through a stage of fascination with Life,
        and hackers at various places contributed heavily to the
        mathematical analysis of this game (most notably {Bill Gosper}
        at {MIT}, who even implemented Life in {TECO}!; see
        {Gosperism}).  When a hacker mentions "life", he is more
        likely to mean this game than the magazine, the breakfast
        cereal, the 1950s-era board game or the human state of
        existence.

        {Yahoo!
        (http://www.yahoo.com/Science/Artificial_Life/Conway_s_Game_of_Life/)}.

        {Demonstration
        (http://www.research.digital.com/nsl/projects/life/)}.

        ["Scientific American" 223, October 1970, p120-123, 224;
        February 1971 p121-117, Martin Gardner].

        ["The Garden in The Machine: the Emerging Science of
        Artificial Life", Claus Emmeche, 1994].

        ["Winning Ways, For Your Mathematical Plays", Elwyn
        R. Berlekamp, John Horton Conway and Richard K. Guy, 1982].

        ["The Recursive Universe: Cosmic Complexity and the Limits of
        Scientific Knowledge", William Poundstone, 1985].

        (1997-09-07)

life

        <jargon> The opposite of {Usenet}.  As in "{Get a life!}"

        (1995-04-21)

life-cycle

        {software life-cycle}

Life is hard

        [XEROX PARC] This phrase has two possible interpretations: (1)
        "While your suggestion may have some merit, I will behave as
        though I hadn't heard it."  (2) "While your suggestion has
        obvious merit, equally obvious circumstances prevent it from
        being seriously considered."  The charm of the phrase lies
        precisely in this subtle but important ambiguity.

LIFIA

        Laboratoire d'Informatique Fondamentale et d'Intelligence
        Artificielle.

LIFO

        {Last In First Out}

lifted domain

        <theory> In {domain theory}, a {domain} with a new {bottom}
        element added.  Given a domain D, the lifted domain, lift D
        contains an element lift d corresponding to each element d in
        D with the same ordering as in D and a new element bottom
        which is less than every other element in lift D.

        In {functional language}s, a lifted domain can be used to
        model a {constructed type}, e.g. the type

                data LiftedInt = K Int

        contains the values K minint .. K maxint and K bottom,
        corresponding to the values in Int, and a new value bottom.
        This denotes the fact that when computing a value v = (K n)
        the computation of either n or v may fail to terminate
        yielding the values (K bottom) or bottom respectively.

        (In LaTeX, a lifted domain or element is indicated by a
        subscript {\perp}).

        See also {tuple}.

LIGHT

        LIfecycle Global HyperText.

        A project in the CERN ECP/TP group whereby documents resulting
        from the {software life cycle} are available as {hypertext}.

        (1995-02-03)

light client

        {thin client}

light-emitting diode

        <electronics> (LED) a type of {diode} that emits light when
        current passes through it.  Depending on the material used the
        colour can be visible or infrared.  LEDs have many uses,
        visible LEDs are used as indicator lights on all sorts of
        electronic devices and in moving-message panels, while
        infrared LEDs are the heart of remote control devices.

        See also {smoke-emitting diode}.

        (1996-01-05)

light-emitting resistor

        <electronics, humour> (LER, from "{light-emitting diode}") A
        {resistor} in the final stages of burning up.

        (Though intended as purely humorous, the term could sensibly
        describe the filament of a common incandescent electric light
        bulb).

        See also {SED}.

        (1996-02-06)

light pipe

        {optical fibre}

light-weight

        <jargon> Opposite of {heavy-weight}; usually found in
        combining forms such as "{light-weight process}".

        (1996-02-22)

Lightweight Directory Access Protocol

        <protocol> (LDAP) A {protocol} for accessing on-line
        {directory services}.

        LDAP was defined by the {IETF} in order to encourage adoption
        of {X.500} directories.  The {Directory Access Protocol} (DAP)
        was seen as too complex for simple {internet clients} to use.
        LDAP defines a relatively simple protocol for updating and
        searching directories running over {TCP/IP}.

        LDAP is gaining support from vendors such as {Netscape},
        {Novell}, {Sun}, {HP}, {IBM}/Lotus, {SGI}, {AT&T}, and
        {Banyan}

        An LDAP directory entry is a collection of attributes with a
        name, called a distinguished name (DN).  The DN refers to the
        entry unambiguously.  Each of the entry's attributes has a
        {type} and one or more values.  The types are typically
        mnemonic strings, like "cn" for common name, or "mail" for
        {e-mail address}.  The values depend on the type.  For
        example, a mail attribute might contain the value
        "babs@umich.edu".  A jpegPhoto attribute would contain a
        photograph in binary {JPEG}/{JFIF} format.

        LDAP directory entries are arranged in a {hierarchical}
        structure that reflects political, geographic, and/or
        organisational boundaries.  Entries representing countries
        appear at the top of the tree.  Below them are entries
        representing states or national organisations.  Below them
        might be entries representing people, organisational units,
        printers, documents, or just about anything else.

        {RFC 1777}, {RFC 1778}, {RFC 1959}, {RFC 1960}, {RFC 1823}.

        (1999-07-05)

light-weight process

        <operating system, parallel> (LWP) A single-threaded
        sub-process which, unlike a {thread}, has its own {process
        identifier} and may also differ in its inheritance and
        controlling features.

        Several {operating systems}, e.g. {SunOS} 5.x, provide {system
        calls} for creating and controlling LWPs.

        (1996-02-22)

like kicking dead whales down the beach

        <jargon, humour> Describes a slow, difficult, and disgusting
        process.  First popularised by a famous quote about the
        difficulty of getting work done under one of {IBM}'s
        {mainframe} {OS}es.  "Well, you *could* write a C compiler in
        COBOL, but it would be like kicking dead whales down the
        beach."

        (1997-12-23)

like nailing jelly to a tree

        <jargon, humour> Used to describe a task thought to be
        impossible, especially one in which the difficulty arises from
        poor specification or inherent slipperiness in the problem
        domain.  "Trying to display the "prettiest" arrangement of
        nodes and arcs that diagrams a given graph is like nailing
        jelly to a tree, because nobody's sure what "prettiest" means
        algorithmically."

        (1997-12-23)

like this

        You weren't supposed to follow that link, it was just an
        example of what a link looks like.

Lila

        Patrick Salle'<salle@geocub.greco-prog.fr>.  A small
        assembly-like language used for implementation of Actor
        languages.  [Plasma perhaps?].

Lilith

        <computer> The {workstation} for which {Modula-2} was
        developed as the system language.

        [Details?]

        (1995-10-25)

LILLIAC IV

        <computer> A {supercomputer} designed in the late 1960s at the
        {University of Illinois} which had 64 separate {CPU}s all
        supervised by a common control unit and all capable of
        operating simultaneously.

        (1996-11-25)

Lily

        (LIsp LibrarY) A {C++} {class} library by Roger Sheldon
        <sheldon@kong.gsfc.nasa.gov> which gives C++ programmers the
        capability to write {Lisp}-style code.  Lily's {garbage
        collection} mechanism is not sufficient for commercial use
        however and the documentation is incomplete.  It is
        distributed under the {GNU} Library {General Public License}.

        Version: 0.1.

        {(ftp://sunsite.unc.edu/uploads/lily-0.1.tar.gz)}

        (1993-11-08)

LIMDEP

        A {linear programming} language used by economists.

LIM EMS

        {Expanded Memory Specification}

LIMP

        ["Messages in Typed Languages", J. Hunt et al, SIGPLAN Notices
        14(1):27-45 (Jan 1979)].

Linc

        1. <language> A {Burroughs}/{Unisys} {4GL} designed in New
        Zealand.

        2. {Laboratory Instrument Computer}.

        (1999-03-29)

Lincoln Reckoner

        An interactive mathematics program including matrix
        operations, written about 1965.  It ran on the {TX-2}.

        ["The Lincoln Reckonere: An Operation-Oriented On-line
        Facility with Distributed Control", A.N. Stowe et al, Proc
        FJCC 29 (1966)].

        [Sammet 1969, pp. 245-247].

LINCtape

        <storage> A formatted, block-oriented, high-reliability,
        {random access} tape system used on the {Laboratory Instrument
        Computer}.  The tape was 3/4" wide.

        The funny {DECtape} is actually a variant of the original
        LINCtape.  According to {Wesley Clark}, DEC tried to "improve"
        the LINCtape system, which mechanically, was wonderfully
        simple and elegant.  The DEC version had pressure fingers and
        tape guides to force alignment as well as huge {DC} servo
        motors and complex control circuitry.  These literally
        shredded the tape to bits if not carefully adjusted, and
        required frequent cleaning to remove all the shedded tape
        oxide.  That was amazing, because the tape had a micro-thin
        plastic layer OVER the oxide to protect it.  What happened was
        that all the forced alignment stuff caused shredding at the
        edge.

        An independent company, Computer Operations[?], built LINCtape
        drives for use in nuclear submarines.  This was based on the
        tape system's high reliability.  Correspondent Brian Converse
        has a picture of himself holding a LINCtape punched full of
        1/4" holes.  It still worked!

        (1999-03-29)

Linda

        A "coordination language" from {Yale}, providing a model for
        {concurrency} with communication via a shared {tuple} space.
        Linda is usually implemented as a subroutine library for a
        specific base language, as in {C-Linda}, {Fortran-Linda},
        {LindaLISP} and {Prolog-Linda}.  It is available from
        {Scientific Computing Associates, Inc.}  [What is?]

        {Home (http://www.cs.yale.edu/HTML/YALE/CS/Linda/linda.html)}

        There is a {Multi-BinProlog} Linda implementation available by
        {(ftp://clement.info.umoncton.ca/)}.

        ["Generative Communication in Linda", D. Gelernter
        <gelernter@cs.yale.edu>, ACM TOPLAS 7(1):80-112 (1985)].

        ["Linda in Context", N. Carreiro <carreiro@cs.yale.edu> et al,
        CACM 32(4):444-458 (Apr 1989)].

        See also {Ease}, {Lucinda}, {Melinda}.

        (1995-09-23)

LindaLISP

        {Linda} for {Lisp}.

line

        1. <hardware> An electrical conductor.  For distances larger
        than a breadbox, a single line may consist of two electrical
        conductors in twisted, parallel, or concentric arrangement
        used to transport one logical signal.

        By extension, a (usually physical) medium such as an {optical
        fibre} which carries a signal.

        (1995-09-29)

line 666

        <jargon> (Christian eschatological myth) The notional line of
        source at which a program fails for obscure reasons, implying
        either that *somebody* is out to get it (when you are the
        programmer), or that it richly deserves to be got (when you
        are not).

        E.g. "It works when I trace through it, but seems to crash on
        line 666 when I run it."  "What happens is that whenever a
        large batch comes through, mmdf dies on the Line of the Beast.
        Probably some twit {hard-coded} a buffer size."

        (1999-03-01)

linear address space

        A memory addressing scheme used in processors where the whole
        memory can be accessed using a single address that fits in a
        single register or instruction.  This contrasts with a
        {segmented memory} architecture, such as that used on the
        {Intel 8086}, where an address is given by an offset from a
        base address held in one of the "segment registers".  Linear
        addressing greatly simplifies programming at the {assembly
        language} level but requires more instruction word bits to be
        allocated for an address.

        (1995-02-16)

linear argument

        <theory> A function argument which is used exactly once by the
        function.

        If the argument is used at most once then it is safe to
        {inline} the function and replace the single occurrence of the
        formal parameter with the actual argument expression.  If the
        argument was used more than once this transformation would
        duplicate the argument expression, causing it to be evaluated
        more than once.

        If the argument is sure to be used at least once then it is
        safe to evaluate it in advance (see {strictness analysis})
        whereas if the argument was not used then this would waste
        work and might prevent the program from terminating.

        (1994-11-03)

linear assignment

        {assignment problem}

linear function

        A {recursive} function is linear if it is of the form

                f x = if p x then q x else h f x

        where h is a "linear functional" which means that

        (1) for all functions, a, b c and some function ht

                h (if a then b else c) = if ht a then h b else h c

        Function ht is known as the "predicate transformer" of h.

        (2) If for some x,

                h (\ y . bottom) x  /=  bottom

        then

                for all g,  ht g x  =  True.

        I.e. if h g x terminates despite g x not terminating then ht g
        x doesn't depend on g.

        See also {linear argument}.

        (1995-02-15)

Linear Graph Notation

        (LGN) A linearised representation of {TCOL} trees.

        [B.W. Leverett et al, "An Overview of the Production Quality
        Compiler-Compiler Projects", TR CMU-CS-79-105, Carnegie Mellon
        1979].

        (1995-01-23)

linear logic

        {(http://www.csl.sri.com/linear/sri-csl-ll.html)}

        [Wadler, P., "Is there a use for linear logic", ACM/IFIP PEPM
        Conference, 1991].

        [Summary?]

        (1995-02-21)

linear map

        <mathematics> (Or "linear transformation") A {function} from a
        {vector space} to a vector space which respects the {additive}
        and {multiplicative} structures of the two: that is, for any
        two {vectors}, u, v, in the source vector space and any
        scalar, k, in the {field} over which it is a vector space, a
        linear map f satisfies f(u+kv) = f(u) + kf(v).

        (1996-09-30)

linear programming

        <application> A procedure for finding the maximum or minimum
        of a {linear function} where the arguments are subject to
        linear {constraint}s.  The {simplex method} is one well known
        {algorithm}.

        (1995-04-06)

linear transformation

        {linear map}

linear type

        1. <theory, programming> An attribute of values which are used
        exactly once: they are neither duplicated nor destroyed.  Such
        values require no {garbage collection}, and can safely be
        updated in place, even if they form part of a data structure.

        Linear types are related to the {linear logic} of J.-Y Girard.
        They extend Schmidt's notion of {single threading}, provide an
        alternative to Hudak and Bloss' {update analysis}, and offer a
        practical complement to Lafont and Holmstrm's elegant {linear
        language}s.

        ['Use-Once' Variables and Linear Objects - Storage Management,
        Reflection and Multi-Threading, Henry Baker.
        {(ftp://ftp.netcom.com/pub/hb/hbaker/Use1Var.html)}].

        ["Linear types can change the world!", Philip Wadler,
        "Programming Concepts and Methods", April 1990, eds. M. Broy,
        C. Jones, pub. North-Holland, IFIP TC2 Working Conference on
        Programming Concepts and Methods, Sea of Galilee, Israel].

        (1995-03-03)

line conditioning

        <communications> The adjustment of electrical characteristics
        of, e.g., {twisted pair} telephone lines by insertion of
        components such as resistors, capacitors, transformers or
        (commonly) inductors.  Lines intended for analogue voice
        signals usually have inductors inserted every few miles; such
        a line is said to be "loaded".

        The special purpose lines which have neither inductors nor the
        DC voltage which powers ordinary telephones are said to be
        "dry," and are much better for data transmission.

        (1996-04-07)

line eater

        <messaging> 1. A {bug} in some now-obsolete versions of the
        {Usenet} software that used to eat up to {BUFSIZ} bytes of the
        article text.  The bug was triggered by having the text of the
        article start with a space or tab.  This bug was quickly
        personified as a mythical creature called the "line eater",
        and postings often included a dummy line of "line eater food".
        Ironically, line eater "food" not beginning with a space or
        tab wasn't actually eaten, since the bug was avoided; but if
        there *was* a space or tab before it, then the line eater
        would eat the food *and* the beginning of the text it was
        supposed to be protecting.  The practice of "sacrificing to
        the line eater" continued for some time after the bug had been
        {nailed to the wall}, and is still humorously referred to.
        The bug itself is still (in mid-1991) occasionally reported to
        be lurking in some mail-to-netnews {gateways}.

        2. {NSA line eater}.

        (1996-04-09)

line editor

        <tool, text> An early kind of {text editor} suited to use on a
        {teletype}.  The user enters editing commands which apply to
        the current line or some given range of lines.  These include
        moving forward and backward through the buffer, inserting and
        deleting lines, substituting a string for a pattern match, and
        printing lines.  Visual feedback is restricted to explicitly
        requesting the display of one or more lines, in contrast to a
        {screen editor}.

        {ed} is {Unix}'s line editor.

        (1999-03-01)

line feed

        <character> (LF, control-J, {ASCII} 10) The {ASCII} character
        meaning move the {cursor} down to the same column on the next
        line.  Originally this would have been done by "feeding" paper
        through the printer.

        {Unix} uses line feed as its text line terminator ({newline}
        character).

        (1997-07-14)

line noise

        <communications> 1. Spurious characters due to electrical
        {noise} in a communications link, especially an {RS-232}
        serial connection.  Line noise may be induced by poor
        connections, interference or {crosstalk} from other circuits,
        electrical storms, {cosmic rays}, or (notionally) birds
        crapping on the phone wires.

        2. Any chunk of data in a file or elsewhere that looks like
        the results of electrical line noise.

        3. Text that is theoretically a readable text or program
        source but employs {syntax} so bizarre that it looks like line
        noise.  Yes, there are languages this ugly.  The canonical
        example is {TECO}, whose input syntax is often said to be
        indistinguishable from line noise.  Other non-{WYSIWYG}
        editors, such as {Multics} "{qed}" and {Unix} "{ed}", in the
        hands of a real hacker, also qualify easily, as do
        deliberately {obfuscate}d languages such as {INTERCAL}.

        (1994-12-22)

line printer

        <printer> A {printer} that prints one entire line at a time.
        Print quality is low compared with a {laser printer}.  Line
        printers typically use {sprocket feed} and wide fanfold paper.

        Line printer speed is usually measured in lines per minute
        (lpm).  1200 lpm is a good rate for a line printer like a 3205
        m5.  66 lines per page is typical, giving 18 pages per minute
        (ppm).  This assumes all upper case, if a mixed case print
        train is used, throughput is halved.  By comparison, a fast
        {laser printer} can output 100+ ppm

        (1999-01-13)

line probing

        A feature of some {V.34} {modem}s that will allow them to
        identify the capacity and quality of the phone line and adjust
        themselves to allow, for each individual connection, for
        maximum throughput using the highest possible data
        transmission rate.

        (1994-06-09)

lines per minute

        <unit> (lpm) A unit used to measure {line printer} throughput.

        (1999-01-13)

line starve

        (MIT, opposite of {line feed}) 1. To feed paper through a
        printer the wrong way by one line (most printers can't do
        this).  On a display terminal, to move the cursor up to the
        previous line of the screen.  "To print "X squared", you just
        output "X", line starve, "2", line feed."  (The line starve
        causes the "2" to appear on the line above the "X", and the
        line feed gets back to the original line.)

        2. A character (or character sequence) that causes a terminal
        to perform this action.  ASCII 26, also called SUB or
        control-Z, was one common line-starve character in the days
        before {microcomputer}s and the {X3.64} terminal standard.
        Unlike "line feed", "line starve" is *not* standard {ASCII}
        terminology.  Even among hackers it is considered silly.

        3. (Proposed) A sequence such as \c (used in {System V}
        {echo}, as well as {nroff} and {troff}) that suppresses a
        {newline} or other character(s) that would normally be
        emitted.

        (1995-02-03)

Lingo

        An animation scripting language.

        [MacroMind Director V3.0 Interactivity Manual, MacroMind
        1991].

LINGOL

        LINguistics Oriented Language.  Natural language processing.

        ["A Linguistics Oriented Programming Language", V.R. Pratt,
        Third Intl Joint Conf on AI, 1973].

link

        1. <file system> {hard link} or {symbolic link}.

        2. <hypertext> {hyperlink}.

        (1997-10-22)

Link Access Procedure on the D channel

        (LAPD) (Q.921).  An {Integrated Services Digital Network}
        {data link layer} protocol.

Link Access Protocol Balanced

        <protocol> (LAPB) {X.25} layer 2 ({data link layer})
        {protocol}.

        [Details?]

        (1996-01-22)

Link Access Protocol for Modems

        (LAPM) The {Automatic Repeat Request} system used in the
        {V.42} {protocol}.

Link Control Protocol

        <protocol> A {protocol} used to automatically agree upon
        {encapsulation} format options, handle varying packet size
        limits, authenticate the identity of its {peer} on the link,
        determine when a link is functioning properly and when it is
        defunct, detect a looped-back link and other common
        misconfiguration errors, and terminate the link.

        [RFC 1570].

        (1997-05-10)

link-dead

        Said of a {MUD} character who has frozen in place because of a
        dropped network connection.

        (1995-01-24)

linked list

        <programming> A data structure in which each element contains
        a pointer to the next element, thus forming a linear list.

        A doubly linked list contains pointers to both the next and
        previous elements.

        (1995-03-28)

linker

        A computer program which accepts the {object code} files of
        one or more separately compiled program {modules}, and links
        them together into a complete executable program, resolving
        references from one module to another.

        The {Unix} linker is called "ld".

        (1995-01-24)

link farm

        [Unix] A directory tree that contains many links to files in a
        master directory tree of files.  Link farms save space when
        one is maintaining several nearly identical copies of the same
        source tree - for example, when the only difference is
        architecture-dependent object files.  "Let's freeze the source
        and then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms."
        Link farms may also be used to get around restrictions on the
        number of "-I" (include-file directory) arguments on older C
        preprocessors.  However, they can also get completely out of
        hand, becoming the file system equivalent of {spaghetti code}.

link rot

        <World-Wide Web> The process by which links on a {web page}
        became unusable as the pages they point to change location or
        are removed.

        (1997-03-29)

Link State Routing Protocol

        <networking, communications> A {routing} {protocol} such as
        {OSPF} which permits routers to exchange information with one
        another about the reachability of other networks and the cost
        or metric to reach the other networks.

        The cost/metric is based on number of {hops}, link speeds,
        traffic congestion, and other factors as determined by the
        network designer.  Link state tourers[?] use {Dijkstra's
        algorithm} to calculate shortest (lowest cost) paths, and
        normally update other routers with whom they are connected
        only when their own routing tables change.

        Link state routing is an improvement over {distance-vector
        routing} protocols such as {RIP} which normally use only a
        single metric (such as hop count) and which exchange all of
        their table information with all other routers on a regular
        schedule.  Link state routing normally requires more
        processing but less transmission overhead.

        (1997-01-07)

LINPACK

        1. A package of {linear algebra} routines.

        2. The kernel {benchmark} developed from the "LINPACK" package
        of linear algebra routines.  It was written by Jack Dongarra
        <dongarra@cs.utk.edu> in {Fortran} and is commonly used in
        that language but there is also a {C} version.

        Source Code by FTP: {single precision Fortran
        (ftp://netlib.att.com/netlib/benchmark/linpacks.Z)},
        {double precision Fortran
        (ftp://netlib.att.com/netlib/benchmark/linpackd.Z)},
        {C (ftp://netlib.att.com:/netlib/benchmark/linpackc.Z)}.

        {Results
        (http://performance.netlib.org/performance/html/linpack.data.col0.html)
}.

        (1994-11-14)

lint

        A {Unix} {C} language processor which carries out more
        thorough checks on the code than is usual with C {compiler}s.

        Lint is named after the bits of fluff it supposedly picks from
        programs.  Judging by references on {Usenet} this term has
        become a shorthand for {desk check} at some non-Unix shops,
        even in languages other than {C}.  Also used as {delint}.

        (1994-11-14)

Linux

        <operating system> ("Linus Unix") /li:'nuks/ (but see below)
        An implementation of the {Unix} {kernel} originally written
        from scratch with no proprietary code.

        The kernel runs on {Intel} and {Alpha} hardware in the general
        release, with {SPARC}, {PowerPC}, {MIPS}, {ARM}, {Amiga},
        {Atari}, and {SGI} in active development.  The SPARC, PowerPC,
        ARM, {PowerMAC} - {OSF}, and 68k ports all support {shells},
        {X} and {networking}.  The Intel and SPARC versions have
        reliable {symmetric multiprocessing}.

        Work on the kernel is coordinated by Linus Torvalds, who holds
        the copyright on a large part of it.  The rest of the
        copyright is held by a large number of other contributors (or
        their employers).  Regardless of the copyright ownerships, the
        kernel as a whole is available under the {GNU} {General Public
        License}.  The GNU project supports Linux as its kernel until
        the research {Hurd} kernel is completed.

        This kernel would be no use without {application programs}.
        The GNU project has provided large numbers of quality tools,
        and together with other {public domain} software it is a rich
        Unix environment.  A compilation of the Linux kernel and these
        tools is known as a Linux distribution.  Compatibility modules
        and/or {emulators} exist for dozens of other computing
        environments.

        The kernel version numbers are significant: the odd numbered
        series (e.g. 1.3.xx) is the development (or beta) kernel which
        evolves very quickly.  Stable (or release) kernels have even
        major version numbers (e.g. 1.2.xx).

        There is a lot of commercial support for and use of Linux,
        both by hardware companies such as {Digital}, {IBM}, and
        {Apple} and numerous smaller network and integration
        specialists.  There are many commercially supported
        distributions which are generally entirely under the GPL.  At
        least one distribution vendor guarantees {Posix} compliance.
        Linux is particularly popular for {Internet Service
        Providers}, and there are ports to both parallel
        supercomputers and {embedded} {microcontrollers}.  {Debian} is
        one popular {open source} distribution.

        Some insist on the anomalous pronunciation /li'nuks/, the
        {Jargon File} prefers the rarely used /lee'nuhks/ because
        "Linus" has an /ee/ sound in Swedish, but normal rules demand
        /li:'nuks/, which is also widely used and agrees with the
        normal english pronunciation of "Linus".  Torvalds and others
        pronounce it /li'nix/, probably after {Minix} and {Unix}.

        {More on pronunciation
        (http://foldoc.doc.ic.ac.uk/pub/linux-pronunciation)}.

        {LinuxHQ (http://www.linuxhq.com/)}.  {slashdot
        (http://slashdot.org/)}.  {freshmeat (http://freshmeat.net/)}.
        {Woven Goods (http://www.fokus.gmd.de/linux/)}.  {Linux
        Gazette (http://www.ssc.com/lg)}.

        {funet Linux Archive (ftp://ftp.funet.fi/pub/Linux)}, {US
        mirror (ftp://sunsite.unc.edu/pub/Linux/)}, {UK Mirror
        (ftp://sunsite.doc.ic.ac.uk/packages/Linux/)}.

        (1999-10-19)

Linux Documentation Project

        <project> (LDP) A team of volunteers developing documentation
        for the {Linux} {operating system}.  The LDP aims to handle
        all of the issues of Linux documentation, ranging from on-line
        documentation to printed manuals, covering topics such as
        installing, using, and running Linux.  The LDP has no central
        organisation; anyone can join in.

        {Home (http://metalab.unc.edu/LDP/)}.

        (1999-06-10)

Linux Network Administrators' Guide

        (NAG) A book on setting up and running {Unix} networks.  NAG
        is freely available in electronic form.  It was produced by
        Olaf Kirch, <okir@monad.swb.de> and others as part of the
        {Linux Documentation Project} with help from {O'Reilly and
        Associates}.

        It includes the following sections: Introduction to
        Networking, Issues of {TCP/IP} Networking, Configuring the
        Networking Hardware, Setting up the Serial Hardware,
        Configuring TCP/IP Networking, {Name Service} and {Resolver}
        Configuraton, {Serial Line IP}, The {Point-to-Point Protocol},
        Various Network Applications, The {Network Information
        System}, The {Network File System}, Managing {Taylor UUCP},
        {Electronic Mail}, Getting {smail} Up and Running,
        {Sendmail+IDA}, {Netnews}, {C} News, A Description of NNTP,
        Newsreader Configuration, Glossary, Annotated Bibliography.

        {FTP from UNC (ftp://sunsite.unc.edu/pub/Linux/docs/LDP)}.
        {FTP from MIT (ftp://tsx-11.mit.edu/pub/linux/docs/LDP)}.

        (1994-12-01)

lion food

        <humour> (IBM) Middle management or HQ staff, or, by
        extension, administrative drones in general.  The term derives
        from an old joke:

        Two lions escape from the zoo and split up to increase their
        chances.  When they finally meet after two months, one is
        skinny and the other overweight.  The thin one says, "How did
        you manage?  I ate a human just once and they turned out a
        small army to chase me with guns and nets, it was terrible.
        Since then I've been reduced to eating mice, insects, even
        grass."  The fat one replies: "Well, *I* hid near an IBM
        office and ate a manager every day.  Nobody even noticed!"

        (1994-12-01)

Lions Book

        <publication> "Source Code and Commentary on Unix level 6", by
        John Lions.

        The two parts of this book contained the entire source listing
        of the {Unix} Version 6 {kernel}, and a commentary on the
        source discussing the {algorithms}.  These were circulated
        internally at the {University of New South Wales} beginning
        1976-77, and were, for years after, the *only* detailed kernel
        documentation available to anyone outside {Bell Labs}.
        Because {Western Electric} wished to maintain trade secret
        status on the kernel, the Lions book was never formally
        published and was only supposed to be distributed to
        affiliates of source licensees (it is still possible to get a
        Bell Labs reprint of the book by sending a copy of a V6 {source
        licence} to the right person at {Bellcore}, but *real* insiders
        have the UNSW edition).  In spite of this, it soon spread by
        {samizdat} to a good many of the early Unix hackers.

        {(http://www.peer-to-peer.com/catalog/history/lions.html)}.

        In 1996 it was reprinted as a "classic":

        [John Lions, "Lions' Comentary on UNIX 6th Edition with Source
        Code", Computer Classics Revisited Series, Peer-to-Peer
        Communications, 1996, ISBN 1-57398-013-7].

        (1997-06-25)

LIPL

        Linear IPL.

        A linearised (i.e. horizontal format) version of IPL-V.

        [Sammet 1969, p. 394].

        [R. Dupchak, "LIPL - Linear Information Processing Language",
        Rand Memo RM-4320-PR, Feb 1965].

        (1994-12-01)

liquid crystal display

        <hardware> (LCD) An electro-optical device used to display
        digits, characters or images, commonly used in digital
        watches, calculators, and portable computers.

        The heart of the liquid crystal display is a piece of {liquid
        crystal} material placed between a pair of transparent
        {electrodes}.  The liquid crystal changes the phase of the
        light passing through it and this phase change can be
        controlled by the {voltage} applied between the electrodes.
        If such a unit is placed between a pair of {plane polariser}
        plates then light can pass through it only if the correct
        voltage is applied.  Liquid crystal displays are formed by
        integrating a number of such cells, or more usually, by using
        a single liquid crystal plate and a pattern of electrodes.

        The simplest kind of liquid crystal displays, those used in
        digital watches and calculators, contain a common electrode
        plane covering one side and a pattern of electrodes on the
        other.  These electrodes can be individually controlled to
        produce the appropriate display.  Computer displays, however,
        require far too many pixels (typically between 50,000 and
        several millions) to make this scheme, in particular its
        wiring, feasible.  The electrodes are therefore replaced by a
        number of row electrodes on one side and column electrodes on
        the other.  By applying voltage to one row and several columns
        the {pixels} at the intersections are set.

        The pixels being set one row after the other, in {passive
        matrix} displays the number of rows is limited by the ratio of
        the setting and fading times.  In the setup described above
        (known as "{twisted nematic}") the number of rows is limited
        to about 20.  Using an alternative "{supertwisted nematic}"
        setup {VGA} quality displays (480 rows) can be easily built.
        As of 1995 most {notebook computers} used this technique.

        Fading can be slowed by putting an active element, such as a
        {transistor}, on the top of each pixel.  This "remembers" the
        setting of that pixel.  These {active matrix} displays are of
        much better quality (as good as {CRTs}) but are much more
        expensive than the passive matrix displays.

        LCDs are slimmer, lighter and consume less power than the
        previous dominant display type, the {cathode ray tube}, hence
        their importance for {portable computers}.

        (1995-12-09)

LIS

        Langage Implementation Systeme.

        A predecessor of {Ada} developed by Ichbiah in 1973.  It was
        influenced by {Pascal}'s data structures and {Sue}'s control
        structures.  A type declaration can have a low-level
        implementation specification.

        ["The System Implementation Language LIS", J.D. Ichbiah et al,
        CII Honeywell-Bull, TR 4549 E/EN, Louveciennes France (Dec
        1974)].

        ["The Two-Level Approach to Data Independent Programming in
        LIS", J.D. Ichbiah et al, in Machine Oriented Higher Level
        Languages, W. van der Poel ed, N-H 1974, pp.161-169].

        (1994-12-01)

LISA

        1. <computer> Local Integrated Software Architecture.

        A {personal computer} made by {Apple Computer, Inc.}  A
        predecessor of the {Macintosh}.

        [Details?]

        2. <tool> A system for statistical data analysis, similar to
        {S}.

        {FTP MIT (ftp://dolphin.mit.edu/)}.

        3. <event> {Large Installation Systems Administration}.

        (1996-01-02)

Liskov substitution principle

        <programming, theory> (LSP) The principle that states that
        {object-oriented} a {functions} that uses {pointers} or
        references to a base {class} must be able to use {objects} of
        derived classes without knowing it.

        Barbara Liskov first wrote it as follows: If for each object
        o1 of type S there is an object o2 of type T such that for all
        programs P defined in terms of T, the behaviour of P is
        unchanged when o1 is substituted for o2 then S is a {subtype}
        of T.

        If a function does not conform to the LSP, then that function
        uses a pointer or reference to a base class, but must know
        about all the derivatives of that base class.  Such a function
        violates the {open/closed principle} because it must be
        modified whenever a new derivative of the base class is
        created.

        [Liskov, B. Data Abstraction and Hierarchy, SIGPLAN
        Notices. 23(5), May 1988].

        (1997-09-24)

Lisp

        <language> LISt Processing language.

        (Or mythically "Lots of Irritating Superfluous Parentheses").
        {Artificial Intelligence}'s mother tongue, a symbolic,
        {functional}, {recursive} language based on the ideas of
        {lambda-calculus}, variable-length lists and trees as
        fundamental data types and the interpretation of code as data
        and vice-versa.

        Data objects in Lisp are lists and {atom}s.  Lists may contain
        lists and atoms.  Atoms are either numbers or symbols.
        Programs in Lisp are themselves lists of symbols which can be
        treated as data.  Most implementations of Lisp allow functions
        with {side-effect}s but there is a core of Lisp which is
        {purely functional}.

        All Lisp functions and programs are expressions that return
        values; this, together with the high memory use of Lisp, gave
        rise to {Alan Perlis}'s famous quip (itself a take on an Oscar
        Wilde quote) that "Lisp programmers know the value of
        everything and the cost of nothing".

        The original version was {LISP 1}, invented by {John McCarthy}
        <jmc@sail.stanford.edu> at {MIT} in the late 1950s.  Lisp is
        actually older than any other {high level language} still in
        use except {FORTRAN}.  Accordingly, it has undergone
        considerable change over the years.  Modern variants are quite
        different in detail.  The dominant {HLL} among hackers until
        the early 1980s, Lisp now shares the throne with {C}.  See
        {languages of choice}.

        One significant application for Lisp has been as a proof by
        example that most newer languages, such as {COBOL} and {Ada},
        are full of unnecessary {crock}s.  When the {Right Thing} has
        already been done once, there is no justification for
        {bogosity} in newer languages.

        See also {Association of Lisp Users}, {Common Lisp}, {Franz
        Lisp}, {MacLisp}, {Portable Standard Lisp}, {Interlisp},
        {Scheme}, {ELisp}, {Kamin's interpreters}.

        (1995-04-16)

*LISP

        (StarLISP) A {data-parallel} extension of {Common LISP} for
        the {Connection Machine}, uses "{pvars}".

        {A *LISP simulator
        (ftp://think.com/public/starsim-f19-sharfile)}.

        E-mail: <customer-support@think.com>,
        <documentation-order@think.com>.

        [Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines
        Corporation  "The Essential *LISP Manual", TM Corp 1986].

LISP 1

        The original {Lisp}.  Invented by John McCarthy et al at {MIT}
        in the late 50's.  Followed by {LISP 1.5}.

LISP 1.5

        The second version of {Lisp}, successor to {LISP 1}.
        Developed at {MIT} in 1959.  Followed by LISP 1.75, LISP 1.9,
        {Lisp 2} and many other versions.

LISP 2

        {LISP 1.5} with an {ALGOL 60}-like surface syntax.  Also
        optional type declarations, new data types including
        integer-indexed {array}s and character strings, partial-word
        extraction/insertion operators and {macro}s.  A
        {pattern-matching} facility similar to {COMIT} was proposed.
        Implemented for the {Q-32} computer.

        ["The LISP 2 Programming Language and System", P.W.  Abrahams
        et al, Proc FJCC 29:661-676, AFIPS (Fall 1966).]

LISP70

        A {Lisp} dialect descended from {MLISP} and {MLISP2}.  Also
        known as PLISP and VEL.  Useful for parsing.  Only the
        pattern-matching system was published and fully implemented.
        According to Alan Kay, LISP70 had an influence on
        {Smalltalk-72}.  "The LISP70 Pattern Matching System, Larry
        Tesler et al, IJCAI 73.

LISP A

        "LISP A: A LISP-like System for Incremental Computing", E.J.
        Sandewall, Proc SJCC 32 (1968).

LISP Extended Algebraic Facility

        <language> (LEAF)

        ["An Algebraic Extension to LISP", P.H. Knowlton, Proc FJCC 35
        1969].

        (1996-06-07)

Lispkit

        <language> A {functional programming} language designed by
        Peter Henderson with Lisp syntax. Designed for portability.
        The Lispkit implementation is an extension to Landin's SECD
        machine that supports lazy evaluation.  See also Stack
        environment control dump machine.

Lispkit Lisp

        Purely functional version of LISP.  "Functional Programming,
        Application and Implementation", P. Henderson, P-H 1980.

Lisp-Linda

        P. Dourish, U Edinburgh 1988.

Lisp Machine

        1. <architecture> Any {machine} (whether notional or actual)
        whose instruction set is {Lisp}.

        2. <hardware, operating system> A line of {workstations} made
        by {Symbolics, Inc.} from the mid-1970s (having grown out of
        the {MIT AI Lab}) to late 1980s.  All system code for
        Symbolics Lisp Machines was written in {Lisp Machine Lisp}.
        Symbolics Lisp Machines were also notable for having had
        {space-cadet keyboards}.

        [More details and historical background?]

        {(http://www.lavielle.com/~joswig/symbolic-computing.html)}.

        (1998-12-13)

LISP Machine LISP

        <language> An extension of {Maclisp}, now called {Zetalisp}.

        (1998-12-13)

Lisp Object-Oriented Programming System

        (LOOPS) An {object-oriented} extension of {Lisp} from the
        {Intelligent Systems Laboratory} at {Xerox} {Palo Alto
        Research Center}.  It is used in the development of
        {knowledge-based system}s.

        See also {CommonLoops}.

        ["The LOOPS Manual", D.G. Bobrow & M. Stefik, Xerox Corp
        1983].

LISP, Objects, and Symbolic Programming

        A book with compiler included by Robert R. Kessler and Amy
        R. Petajan, published by Scott, Foresman and Company,
        Glenview, IL, USA.  (1988).

Lisptalk

        "Concurrent Programming Language Lisptalk", C. Li, SIGPLAN
        Notices 23(4):71-80 (Apr 1988).

LispView

        CLOS based windowing system on OpenWindows.

list

        <data> A data structure holding many values, possibly of
        different types, which is usually accessed sequentially,
        working from the head to the end of the tail - an "ordered
        list".  This contrasts with a (one-dimensional) {array}, any
        element of which can be accessed equally quickly.

        Lists are often stored using a cell and pointer arrangement
        where each value is stored in a cell along with an associated
        pointer to the next cell.  A special pointer, e.g. zero, marks
        the end of the list.  This is known as a (singlely) "linked
        list".  A doublely linked list has pointers from each cell to
        both next and previous cells.

        An unordered list is a {set}.

        (1998-11-12)

list comprehension

        <functional programming> An expression in a {functional
        language} denoting the results of some operation on (selected)
        elements of one or more lists.  An example in {Haskell}:

        [ (x,y) | x <- [1 .. 6], y <- [1 .. x], x+y < 10]

        This returns all pairs of numbers (x,y) where x and y are
        elements of the list 1, 2, ..., 10, y <= x and their sum is
        less than 10.

        A list comprehension is simply "{syntactic sugar}" for a
        combination of applications of the functions, concat, map and
        filter.  For instance the above example could be written:

                filter p (concat (map (\ x -> map (\ y -> (x,y))
                                 [1..x]) [1..6]))
                where
                p (x,y) = x+y < 10

        According to a note by Rishiyur Nikhil <nikhil@crl.dec.com>,
        (August 1992), the term itself seems to have been coined by
        Phil Wadler circa 1983-5, although the programming construct
        itself goes back much further (most likely Jack Schwartz and
        the SETL language).

        The term "list comprehension" appears in the references below.

        The earliest reference to the notation is in Rod Burstall and
        John Darlington's description of their language, NPL.

        David Turner subsequently adopted this notation in his
        languages SASL, KRC and Miranda, where he has called them "{ZF
        expression}s", set abstractions and list abstractions (in his
        1985 FPCA paper [Miranda: A Non-Strict Functional Language
        with Polymorphic Types]).

        ["The OL Manual" Philip Wadler, Quentin Miller and Martin
        Raskovsky, probably 1983-1985].

        ["How to Replace Failure by a List of Successes" FPCA
        September 1985, Nancy, France, pp. 113-146].

        (1995-02-22)

List Enhanced

        <operating system, tool> An {MS-DOS} file browsing utility
        first written by Vern Buerg 1983.  A former {mainframe}
        systems programmer, Buerg wrote DOS utilities when he began
        using an {IBM PC} and missed the file-scanning ability he had
        had on mainframes.  The software became an instant success,
        and his list utility is currently in use on an estimated 5
        million PC's.

        {shareware version (http://buerg.com/ftp.html)}.

        (1997-05-16)

listless

        <programming> In {functional programming}, a property of a
        {function} which allows it to be combined with other functions
        in a way that eliminates intermediate data structures,
        especially lists.

        {Phil Wadler}'s thesis gives the conditions for a function to
        be in listless form: each input list is traversed only once,
        one element at a time, from left to right.  Each output list
        is generated once, one element at a time, from left to right.
        No other lists are generated or traversed.

        Not all functions can be expressed in listless form
        (e.g. reverse).

        (1995-02-22)

Listproc

        A {mailing list} processor owned and developed by {BITNET}
        which runs under {Unix}.

        See also {Listserv}, {Majordomo}.

        [Details?]

        (1995-02-22)

Listserv

        An automatic {mailing list} server, initially written to run
        under {IBM}'s {VM} {operating system} by Eric Thomas.
        Listserv is a {user name} on some computers on {BITNET}/{EARN}
        which processes {electronic mail} requests for addition to or
        deletion from mailing lists.  Examples are listserv@ucsd.edu,
        listserver@nysernet.org.  Some listservs provide other
        facilities such as retrieving files from {archive}s and
        {database} search.  Full details of available services can
        usually be obtained by sending a message with the word HELP in
        the subject and body to the listserv address.

        Eric Thomas, has recently formed an international corporation,
        L-Soft, and has ported Listserv to a number of other platforms
        including {Unix}.  Listserv has simultaneously been enhanced
        to use both the {Internet} and {BITNET}.

        Two other major {mailing list} processors, both of which run
        under {Unix}, are {Majordomo}, a {freeware} system, and
        {Listproc}, currently owned and developed by {BITNET}.

        (1995-02-22)

Liszt

        A {Franz Lisp} compiler in {C} which emits {C}, by Jeff
        W. Dalton <jeff@festival.ed.ac.uk>.

        Mailing list: franz-friends-request@berkeley.edu.

        (1994-10-20)

lite

        <spelling> (Misspelling of "light", when used to mean
        "lightweight") A suffix denoting a scaled-down or crippled
        product, often designed to be distributed without charge,
        e.g. on a magazine {coverdisk}.  An example is {pklite}.

        (1995-10-06)

literal

        <programming> A constant made available to a process, by
        inclusion in the executable text.  Most modern systems do not
        allow texts to modify themselves during execution, so literals
        are indeed constant; their value is written at compile-time
        and is read-only at run-time.

        In contrast, values placed in variables or files and accessed
        by the process via a symbolic name, can be changed during
        execution.  This may be an asset.  For example, messages can
        be given in a choice of languages by placing the translation
        in a file.

        Literals are used when such modification is not desired.  The
        name of the file mentioned above (not its content), or a
        physical constant such as 3.14159, might be coded as a
        literal.  Literals can be accessed quickly, a potential
        advantage of their use.

        (1996-01-23)

literate programming

        <programming, text> Combining the use of a text formatting
        language such as {TeX} and a conventional programming language
        so as to maintain documentation and source together.  The
        program is sometimes marked to distinguish it from the text,
        rather than the other way around as in normal programs (the
        {inverse comment convention}).

        {Perl}'s literate programming system is called {pod}.

        (1998-12-18)

literature

        The literature.  Computer-science journals and other
        publications, vaguely gestured at to answer a question that
        the speaker believes is trivial.  Thus, one might answer an
        annoying question by saying "It's in the literature."  Oppose
        {Knuth}, which has no connotation of triviality.

        (1994-11-04)

LITHE

        Object-oriented with extensible syntax.

        "LITHE: A Language Combining a Flexible Syntax and Classes",
        D. Sandberg, Conf Rec 9th Ann ACM Sym POPL, ACM 1982,
        pp.142-145.

lithium lick

        {NeXT} employees who have had too much attention from their
        esteemed founder, {Steve Jobs}, are said to have "lithium
        lick" when they begin to show signs of Jobsian fervour and
        repeat the most recent catch phrases in normal conversation,
        e.g. "It just works, right out of the box!"

LitProg

        {literate programming}

LITTLE

        A typeless language used to produce machine-independent
        software.  LITTLE has been used to implement SETL.

        "Guide to the LITTLE Language", D. Shields, LITTLE Newsletter
        33, Courant Inst (Aug 1977).

little-endian

        <data, architecture> A computer architecture in which, within
        a given 16- or 32-bit {word}, bytes at lower addresses have
        lower significance (the word is stored "little-end-first").
        The {PDP-11} and {VAX} families of computers and {Intel}
        {microprocessor}s and a lot of communications and networking
        hardware are little-endian.

        The term is sometimes used to describe the ordering of units
        other than bytes; most often, bits within a byte.

        Compare {big-endian}, {middle-endian}.  See {NUXI problem}.

        (1995-08-16)

Little Smalltalk

        A line-oriented near-subset of {Smalltalk-80} written in {C}
        by Tim Budd <budd@cs.orst.edu>.  Version 3 runs on {Unix},
        {IBM PC}, {Atari} and {VMS}.

        {(ftp://cs.orst.edu/pub/budd/)}

        ["A Little Smalltalk", Timothy Budd, A-W 1987].

live data

        1. Data that is written to be interpreted and takes over
        program flow when triggered by some un-obvious operation, such
        as viewing it.  One use of such hacks is to break security.
        For example, some smart terminals have commands that allow one
        to download strings to program keys; this can be used to write
        live data that, when listed to the terminal, infects it with a
        security-breaking {virus} that is triggered the next time a
        hapless user strikes that key.  For another, there are some
        well-known bugs in {vi} that allow certain texts to send
        arbitrary commands back to the machine when they are simply
        viewed.

        2. In {C}, data that includes pointers to functions
        (executable code).

        3. An object, such as a {trampoline}, that is constructed on
        the fly by a program and intended to be executed as code.

        4. Actual real-world data, as opposed to "test data".  For
        example, "I think I have the record deletion module finished."
        "Have you tried it out on live data?"  This usage usually
        carries the connotation that live data is more fragile and
        must not be corrupted, or bad things will happen.  So a more
        appropriate response to the above claim might be: "Well, make
        sure it works perfectly before we throw live data at it."  The
        implication here is that record deletion is something pretty
        significant, and a haywire record-deletion module running amok
        on live data would probably cause great harm.

Live Free Or Die!

        1. The state motto of New Hampshire, which appears on that
        state's automobile licence plates.

        2. A slogan associated with Unix in the romantic days when
        Unix aficionados saw themselves as a tiny, beleaguered
        underground tilting against the windmills of industry.  The
        "free" referred specifically to freedom from the {fascist}
        design philosophies and crufty misfeatures common on
        commercial operating systems.  Armando Stettner, one of the
        early Unix developers, used to give out fake licence plates
        bearing this motto under a large Unix, all in New Hampshire
        colours of green and white.  These are now valued collector's
        items.

livelock

        <parallel> /li:v'lok/ When two or more processes continuously
        change their state in response to changes in the other
        process(es) without doing any useful work.

        This is similar to {deadlock} in that no progress is made but
        differs in that neither process is blocked or waiting for
        anything.

        A human example of livelock would be two people who meet
        face-to-face in a corridor and each moves aside to let the
        other pass, but they end up swaying from side to side without
        making any progress because they always move the same way at
        the same time.

        (1998-07-05)

LiveScript

        {JavaScript}

liveware

        /li:v'weir/ 1. A less common synonym for {wetware}

        2. (Cambridge) Vermin.  "Waiter, there's some liveware in my
        salad."

        (1995-10-30)

lk

        <networking> The {country code} for Sri Lanka.

        (1999-01-27)

LL

        <grammar> A class of language {grammar}s, which can
        be {parse}d without {backtrack}ing.  The first L stands for
        Left-to-right scan, the second for Leftmost derivation.

        Often found in the form LL(k) where k is the number of
        {token}s of {look-ahead} required when parsing a sentence of
        the language.  In particular, LL(1) is a fairly restrictive
        class of grammar, but allows simple {top-down} parsing
        (e.g. {recursive-descent}) to be used without wasteful
        {backtracking}.  A number of programming languages are LL(1)
        (or close).

        (1995-10-30)

LLC

        {Logical Link Control}

LLGen

        <tool> A {BNF}-based {LL1} {parser generator} by Fischer and
        LeBlanc.  It conforms to a subset of {FMQ}.

        {(ftp://csczar.ncsu.edu/)}

        ["Crafting A Compiler", Fischer and LeBlanc].

        (1990-03-31)

LLM3

        /el el em trwa/ The {assembly language} for a {virtual
        machine} used as the implementation language for {Le-Lisp}.
        Developed by J. Chailloux of {INRIA}.

LLNL

        {Lawrence Livermore National Laboratory}

LLP

        {Lower Layer Protocol}

LM3

        The {Larch} interface language for {Modula-3}.

        ["LM3: A Larch/Modula-3 Interface Language", Kevin D. Jones,
        TR 72, DEC SRC, Palo Alto CA].

LMAO

        <chat> laughed my ass off.  Seen on {Compuserve}.

        (1996-02-04)

LML

        1. Lazy ML.

        A {lazy}, {purely functional} variant of {ML} designed by
        Thomas Johnson and Lennart Augustsson at the Chalmers
        University of Technology, Gothenburg, Sweden in 1984.  LML is
        implemented on the {G-machine}, and was used to implement the
        first {Haskell B compiler}.  There is a compiler (lmlc) and
        interpreter.

        {(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers)}

        (1994-12-14)

        2. Logical ML.

        Adds to {Lazy ML} a data type of "theories" whose objects
        represent {logic program}s.

        ["Logic Programming within a Functional Framework", A. Brogi
        et al, in Programming Language Implementation and Logic
        Programming, P. Deransart et al eds, LNCS 456, Springer 1990].

        (1994-12-14)

LM-Prolog

        Lisp Machine Prolog.

        A {Prolog} {interpreter} in {Zetalisp} for the {Lisp Machine}
        developed by Ken Kahn and Mats Carlsson in 1983.

        {(ftp://sics.se/archive/lm-prolog.tar.Z)}

        ["LM-Prolog User Manual", M. Carlsson et al, Uppsala Dec
        1983].

        (1994-12-14)

LNF

        ["A Fully Lazy Higher Order Purely Functional Programming
        Language With Reduction Semantics", K.L. Greene, CASE Center
        TR 8503, Syracuse U 1985].

LO

        Linear Objects.  A {concurrent} {logic programming} language
        based on {linear logic}, an extension of {Horn logic} with a
        new kind of {OR-concurrency}.

        ["LO and Behold! Concurrent Structured Processes", J. Andreoli
        et al, SIGPLAN Notices 25(10):44-56 (OOPSLA/ECOOP '90) (Oct
        1990)].

L&O

        Logic and Objects.  A front end for {IC Prolog}.

        {(ftp://src.doc.ic.ac.uk/computing/programming/languages/pd-ICP-0,90.ta
r.Z)}.
        E-mail: Zacharias Bobolakis <zb@doc.ic.ac.uk>.

        ["Logic and Objects", Frank McCabe, Prentice-Hall].

load balancing

        <operating system, parallel> Techniques which aim to spread
        tasks among the processors in a {parallel processor} to avoid
        some processors being idle while others have tasks queueing
        for execution.  Load balancing may be performed either by
        heavily loaded processors (with many tasks in their queues)
        sending tasks to other processors; by idle processors
        requesting work from others; by some centralised task
        distribution mechanism; or some combination of these.  Some
        systems allow tasks to be moved after they have started
        executing ("{task migration}") others do not.  It is important
        that the {overhead} of executing the load balancing
        {algorithm} does not contribute significantly to the overall
        processing or communications load.

        Distributed scheduling {algorithm}s may be static, dynamic or
        preemptive.  Static algorithms allocate processes to
        processors at run time while taking no account of current
        network load.  Dynamic algorithms are more flexible, though
        more computationally expensive, and give some consideration to
        the network load before allocating the new process to a
        processor.  Preemptive algorithms are more expensive and
        flexible still, and may migrate running processes from one
        host to another if deemed beneficial.  Research to date
        indicates that dynamic algorithms yield significant
        performance benefits, but that further (though lesser) gains
        may be had through the addition of process migration
        facilities.

        (1995-03-13)

lobotomy

        1. What a hacker subjected to formal management training is
        said to have undergone.  At {IBM} and elsewhere this term is
        used by both hackers and low-level management; the latter
        doubtless intend it as a joke.

        2. The act of removing the processor from a {microcomputer} in
        order to replace or upgrade it.  Some very cheap {clone}
        systems are sold in "lobotomised" form - everything but the
        brain.

LOC

        {lines of code}

local area network

        <networking> (LAN) A data communications network which is
        geographically limited (typically to a 1 km radius) allowing
        easy interconnection of terminals, {microprocessor}s and
        computers within adjacent buildings.  {Ethernet} and {FDDI}
        are examples of standard LANs.

        Because the network is known to cover only a small area,
        optimisations can be made in the network signal protocols that
        permit data rates up to 100Mb/s.

        See also {token ring}, {wide area network}, {metropolitan area
        network}..

        {Usenet} newsgroup: {news:comp.dcom.lans.misc}.

        (1995-03-13)

Local Area Transport

        <protocol> (LAT) A {DEC}-specific, non-routable network
        {protocol}.

        [Details?]

        (1999-01-14)

local bus

        <hardware> A {bus} connecting a {processor} to {memory},
        usually on the same {circuit board} as opposed to a
        {backplane} and therefore faster.

        Various proprietary local busses for {personal computers} are
        still in use.  The most common are {Vesa local bus} (VLB or
        VL), and {Peripheral Component Interconnect} (PCI).  Some
        computers, e.g. {notebook computers}, use a local bus with no
        expansion slots.  Previous non-local bus standards include
        {ISA}, {EISA} and {MCA}.

        (1997-08-25)

locale

        <programming> A geopolitical place or area, especially in the
        context of configuring an {operating system} or {application
        program} with its {character sets}, date and time formats,
        currency formats etc.

        Locales are significant for {internationalisation} and
        {localisation}.

        (1999-06-09)

localisation

        <programming> (l10n) Adapting a product to meet the language,
        cultural and other requirements of a specific target market
        "{locale}".

        Localisation includes the translation of the {user interface},
        {on-line help} and {documentation}, and ensuring the images
        and concepts are culturally appropriate and sensitive.  There
        may be subtle cross-cultural considerations, e.g. do the icons
        make sense in other parts of the world?

        {Internationalisation} is the process that occurs during
        application development that makes localisation easier by
        separating the details that differ between locales from the
        rest of the program that stays the same.  If
        internationalisation is thorough, localisation will require no
        programming.

        The abbreviation l10n means "L - 10 letters - N".

        (1999-06-09)

localised

        {localisation}

locality

        1. In sequential architectures programs tend to access data
        that has been accessed recently (temporal locality) or that is
        at an address near recently referenced data (spatial
        locality).  This is the basis for the speed-up obtained with a
        {cache} memory.

        2. In a multi-processor architecture with distributed memory
        it takes longer to access the memory attached to a different
        processor.  This overhead increases with the number of
        communicating processors. Thus to efficiently employ many
        processors on a problem we must increase the proportion of
        references which are to local memory.

        (1995-02-28)

local loop

        <communications> The circuits between a telephone subscriber's
        residence or business and the switching equipment at the local
        {central office}.

        (1995-03-17)

local loopback addresses

        The special {Internet address}, 127.0.0.1, defined by the
        {Internet Protocol}.  A {host} can use local the loopback
        address to send messages to itself.

        (1995-03-21)

locals

        The users on one's local network (as opposed, say, to people
        one reaches via public {Internet} or {UUCP} connections).  The
        marked thing about this usage is how little it has to do with
        real-space distance. "I have to do some tweaking on this mail
        utility before releasing it to the locals."

        (1994-11-29)

LocalTalk

        <networking> An {Apple Computer} {network} {standard} using
        {Apple Computer}'s own networking hardware.

        Compare {EtherTalk}.

        (1994-11-29)

location

        {memory location}

locked and loaded

        [Military slang for an M-16 rifle with magazine inserted and
        prepared for firing] Said of a removable disk volume properly
        prepared for use - that is, locked into the drive and with
        the heads loaded.  Ironically, because their heads are
        "loaded" whenever the power is up, this description is never
        used of {Winchester} drives (which are named after a rifle).

locked up

        Synonym for {hung}, {wedged}.

lock-in

        <standard> When an existing standard becomes almost impossible
        to supercede because of the cost or logistical difficulties
        involved in convincing all its users to switch something
        different and, typically, {incompatible}.

        The common implication is that the existing standard is
        notably inferior to other comparable standards developed
        before or since.

        Things which have been accused of benefiting from lock-in in
        the absence of being truly worthwhile include: the {QWERTY}
        keyboard; any well-known {operating system} or programming
        language you don't like (e.g., see "{Unix conspiracy}"); every
        product ever made by {Microsoft Corporation}; and most
        currently deployed formats for transmitting or storing data of
        any kind (especially the {Internet Protocol}, 7-bit (or even
        8-bit) {character sets}, analog video or audio broadcast
        formats and nearly any file format).

        Because of {network effects} outside of just computer
        networks, {Real World} examples of lock-in include the current
        spelling conventions for writing English (or French, Japanese,
        Hebrew, Arabic, etc.); the design of American money; the
        imperial (feet, inches, ounces, etc.) system of measurement;
        and the various and anachronistic aspects of the internal
        organisation of any government (e.g., the American Electoral
        College).

        Compare with {cruft}, {flag day}.

        (1998-01-15)

Locus

        A distributed system project supporting transparent access to
        data through a network-wide file system.

Loebner Prize

        <artificial intelligence> An annual competition in {artificial
        intelligence} started by Dr. Hugh Gene Loebner
        <loebner@acm.org> of New York City in 1991.  A $100,000 prize
        is offered to the author of the first computer program to pass
        an unrestricted {Turing test}.  Annual competitions are held
        each year with a $2000 prize for the best program on a
        restricted {Turing test}.

        Sponsors of previous competitions include: {Apple Computer},
        {Computerland}, Crown Industries, GDE Systems, {IBM} Personal
        Computer Company's {Center for Natural Computing}, Greenwich
        Capital Markets, {Motorola}, the {National Science
        Foundation}, The Alfred P. Sloan Foundation, and The Weingart
        Foundation.

        The 1995 and 1996 events were unrestricted Turing Tests,
        requiring computer entries to converse indefinitely with no
        topic restrictions.  So far, even the best programs give
        themselves away almost immediately, either by simple
        grammatical mistakes or by repetition.

        Complete transcripts and {IBM compatible} diskettes that play
        the 1991, 1992, and 1993 conversations in real-time are
        available for purchase from the Cambridge Center for
        Behavioral Studies (telephone: +1 (617) 491 9020, Fax: 1072).
        Sponsorship opportunities are available.

        {Home (http://info.acm.org/~loebner/loebner-prize.htmlx)}.

        Dr. Hugh G. Loebner <loebner@acm.org>
        Prize Donor
        Telephone: +1 (201) 672 2277 (fax 7536).

        (1999-06-29)

{log}

        ["{log}: A Logic Programming Language with Finite Sets", A
        Dovier et al, Proc 8th Intl Conf Logic Prog, June 1991,
        pp.111-124].

logarithmus dualis

        <mathematics> (ld) Latin for {logarithm} base two.  More
        commonly written as "log" with a subscript "2".

        Roughly the number of {bits} required to represent an
        {integer}.

        (1999-03-19)

LogC

        A {C} extension incorporating {rule-oriented programming}, for
        {AI} {application program}s.  {Production rule}s are
        encapsulated into functional components called rulesets.  LogC
        uses a {search network algorithm} similar to {RETE}.

        Version 1.6.

        ["LogC: A Language and Environment for Embedded Rule Based
        Systems", F. Yulin et al, SIGPLAN Notices 27(11):27-32 (Nov
        1992)].

logic

        1. <philosophy, mathematics> A branch of philosophy and
        mathematics that deals with the formal principles, methods and
        criteria of validity of {inference}, reasoning and
        {knowledge}.

        Logic is concerned with what is true and how we can know
        whether something is true.  This involves the formalisation of
        logical arguments and {proof}s in terms of symbols
        representing {proposition}s and {logical connective}s.  The
        meanings of these logical connectives are expressed by a set
        of rules which are assumed to be self-evident.

        {Boolean algebra} deals with the basic operations of truth
        values: AND, OR, NOT and combinations thereof.  {Predicate
        logic} extends this with existential and universal
        {quantifier}s and symbols standing for {predicate}s which may
        depend on variables.  The rules of {natural deduction}
        describe how we may proceed from valid premises to valid
        conclusions, where the premises and conclusions are
        expressions in {predicate logic}.

        Symbolic logic uses a {meta-language} concerned with truth,
        which may or may not have a corresponding expression in the
        world of objects called existance.  In symbolic logic,
        arguments and {proof}s are made in terms of symbols
        representing {proposition}s and {logical connective}s.  The
        meanings of these begin with a set of rules or {primitive}s
        which are assumed to be self-evident.  Fortunately, even from
        vague primitives, functions can be defined with precise
        meaning.

        {Boolean logic} deals with the basic operations of {truth
        value}s: AND, OR, NOT and combinations thereof.  {Predicate
        logic} extends this with {existential quantifier}s and
        {universal quantifier}s which introduce {bound variable}s
        ranging over {finite} sets; the {predicate} itself takes on
        only the values true and false.  Deduction describes how we
        may proceed from valid {premise}s to valid conclusions, where
        these are expressions in {predicate logic}.

        Carnap used the phrase "rational reconstruction" to describe
        the logical analysis of thought.  Thus logic is less concerned
        with how thought does proceed, which is considered the realm
        of psychology, and more with how it should proceed to discover
        truth.  It is the touchstone of the results of thinking, but
        neither its regulator nor a motive for its practice.

        See also fuzzy logic, logic programming, arithmetic and logic unit,
        first-order logic,

        See also {Boolean logic}, {fuzzy logic}, {logic programming},
        {first-order logic}, {logic bomb}, {combinatory logic},
        {higher-order logic}, {intuitionistic logic}, {equational
        logic}, {modal logic}, {linear logic}, {paradox}.

        2. <electronics> {Boolean} logic circuits.

        See also {arithmetic and logic unit}, {asynchronous logic},
        {TTL}.

        (1995-03-17)

logical

        (From the technical term "logical device", wherein a physical
        device is referred to by an arbitrary "logical" name) Having
        the role of.  If a person (say, Les Earnest at SAIL) who had
        long held a certain post left and were replaced, the
        replacement would for a while be known as the "logical" Les
        Earnest.  (This does not imply any judgment on the
        replacement).

        Compare {virtual}.

        At Stanford, "logical" compass directions denote a coordinate
        system in which "logical north" is toward San Francisco,
        "logical west" is toward the ocean, etc., even though logical
        north varies between physical (true) north near San Francisco
        and physical west near San Jose.  (The best rule of thumb here
        is that, by definition, El Camino Real always runs logical
        north-and-south.)  In giving directions, one might say: "To
        get to Rincon Tarasco restaurant, get onto {El Camino Bignum}
        going logical north."  Using the word "logical" helps to
        prevent the recipient from worrying about that the fact that
        the sun is setting almost directly in front of him.  The
        concept is reinforced by North American highways which are
        almost, but not quite, consistently labelled with logical
        rather than physical directions.

        A similar situation exists at MIT: Route 128 (famous for the
        electronics industry that has grown up along it) is a
        3-quarters circle surrounding Boston at a radius of 10 miles,
        terminating near the coastline at each end.  It would be most
        precise to describe the two directions along this highway as
        "clockwise" and "counterclockwise", but the road signs all say
        "north" and "south", respectively.  A hacker might describe
        these directions as "logical north" and "logical south", to
        indicate that they are conventional directions not
        corresponding to the usual denotation for those words.  (If
        you went logical south along the entire length of route 128,
        you would start out going northwest, curve around to the
        south, and finish headed due east, passing along one infamous
        stretch of pavement that is simultaneously route 128 south and
        Interstate 93 north, and is signed as such!)

        (1995-01-24)

logical address

        {virtual address}

Logical Block Addressing

        <storage> (LBA) A method used on {IBM PC}s and compatibles to
        increase the size limit for a single {hard disk} from 528
        {megabytes} to 8.4 {gigabytes}.  An addressing conversion is
        performed on the {IDE} {disk controller} card.  Most modern
        PCs will select this mode automatically, some older PCs allow
        you to select LBA mode manually in the {BIOS}.

        [What sets the limits?  Does LBA only affect IDE?]

        (1997-01-07)

logical complement

        <logic> In {Boolean algebra}, the logical complement or
        negation of a Boolean value is the opposite value, given by
        the following {truth table}:

                A | -A
                --+---
                T | F
                F | T

        -A is also written as A with a bar over it or with a small
        vertical line hanging from the right-hand end of the "-"
        ({LaTeX} \neg) or as A'.  In the {C} programming language, it
        is !A and in digital circuit design, /A.

        (1995-01-24)

Logical Link Control

        <networking> (LLC) The upper portion of the {data link layer},
        as defined in {IEEE 802.2}.  The LLC sublayer presents a
        uniform interface to the user of the data link service, usually
        the {network layer}.  Beneath the LLC sublayer is the {Media
        Access Control} (MAC) sublayer.

        (1995-02-14)

logical relation

        A {relation} R satisfying

        f R g  <=>  For all a, b,  a R b => f a R g b

        This definition, by Plotkin, can be used to extend the
        definition of a relation on the types of a and b to a relation
        on functions.

logical shift

        <programming> (Either shift left logical or shift right
        logical) Machine-level operations available on nearly all
        processors which move each bit in a word one or more bit
        positions in the given direction.  A left shift moves the bits
        to more significant positions (like multiplying by two), a
        right shift moves them to less significant positions (like
        dividing by two).  The comparison with multiplication and
        division breaks down in certain circumstances - a logical
        shift may discard bits that are shifted off either end of the
        word and does not preserve the sign of the word (positive or
        negative).

        Logical shift is approriate when treating the word as a {bit
        string} or a sequence of {bit fields}, whereas {arithmetic
        shift} is appropriate when treating it as a binary number.
        The word to be shifted is usually stored in a {register}, or
        possibly in memory.

        (1996-07-02)

logical shift left

        {logical shift}

logical shift right

        {logical shift}

Logical Unit

        <networking> (LU) A primary component of {SNA}, an {LU} is a
        type of {NAU} that enables end users to communicate with each
        other and gain access to SNA network resources.

        (1997-04-30)

Logical Unit 6.2

        <networking> (LU6.2) A type of {logical unit} that governs
        peer-to-peer {SNA} communications.  LU6.2 supports general
        communication between programs in a distributed processing
        environment.

        LU6.2 is characterised by a {peer} relationship between
        {session partners}, efficient use of a session for multiple
        {transactions}, comprehensive end-to-end error processing and
        a generic {application program interface} consisting of
        {structured verbs} that are mapped into a product
        inplementation.

        LU6.2 is used by {IBM}'s {TPF} {operating system}.

        [IBM Dictionary of Computing, McGraw-Hill 1993].

        (1996-08-26)

Logical Unit Number

        <storage> (LUN) A 3-bit identifier used on a {SCSI} bus to
        distinguish between up to eight devices ({logical units}) with
        the same {SCSI ID}.

        (1999-02-11)

logic bomb

        <programming, security> Code surreptitiously inserted into an
        application or {operating system} that causes it to perform
        some destructive or security-compromising activity whenever
        specified conditions are met.

        Compare {back door}.

        (1996-07-02)

Logic Design Language

        <language> A language for computer design.

        ["A System Description Language Using Parametric Text
        Generation", R.H. Williams, TR 02.487, IBM San Jose, Aug
        1970].

        (1994-11-29)

logic emulator

        A system of {FPGA}s, programmable interconnect and software
        which automatically configures itself into an operating
        prototype of a large-scale logic design, such as a
        {microprocessor}.  An emulated design can be connected into
        the target system and really operated and tested before the
        design is made into an {integrated circuit}.

        {Quickturn} is the leading logic emulation system.

        (1994-11-29)

Logic for Computable Functions

        <language> (LCF) Part of the {Edinburgh proof assistant}.

        [What is it?  Address?]

        (1995-01-06)

logic gate

        An {integrated circuit} or other device whose inputs and
        outputs represent {Boolean} or binary values as voltages
        ({TTL} uses 0V for False or 0, +5V for True or 1).  Different
        gates implement different Boolean functions: {AND}, {OR},
        {NAND}, {NOR} (these may take two or more inputs) {NOT} (one
        input), {XOR} (two inputs).  NOT, NAND and NOR are often
        constructed from single {transistor}s and the other gates made
        from combinations of these basic ones.  These functions are
        all {combinatorial logic} functions, i.e. their outputs depend
        only on their inputs and there is no internal state.  Gates
        with state, such as {latches} and {flip-flop}s, are
        constructed by feeding some of their outputs back to their
        inputs.

        (1995-02-08)

logic programming

        <artificial intelligence, programming, language> A
        {declarative}, {relational} style of programming based on
        {first-order logic}.  The original logic programming language
        was {Prolog}.  The concept is based on {Horn clauses}.

        The programmer writes a "database" of "{facts}", e.g.

                wet(water).

        ("water is wet") and "{rules}", e.g.

                mortal(X) :- human(X).

        ("X is mortal is implied by X is human").  Facts and rules are
        collectively known as "{clauses}".

        The user supplies a "{goal}" which the system attempts to
        prove using "{resolution}" or "{backward chaining}".  This
        involves matching the current goal against each fact or the
        left hand side of each rule using "{unification}".  If the
        goal matches a fact, the goal succeeds; if it matches a rule
        then the process recurses, taking each sub-goal on the right
        hand side of the rule as the current goal.  If all sub-goals
        succeed then the rule succeeds.

        Each time a possible clause is chosen, a "{choice point}" is
        created on a {stack}.  If subsequent {resolution} fails then
        control eventually returns to the choice point and subsequent
        clauses are tried.  This is known as "{backtracking}".

        Clauses may contain {logic variable}s which take on any value
        necessary to make the fact or the left hand side of the rule
        match a goal.  Unification binds these variables to the
        corresponding subterms of the goal.  Such bindings are
        associated with the {choice point} at which the clause was
        chosen and are undone when backtracking reaches that choice
        point.

        The user is informed of the success or failure of his first
        goal and if it succeeds and contains variables he is told what
        values of those variables caused it to succeed.  He can then
        ask for alternative solutions.

        (1997-07-14)

Logic Replacement Technology

        (LRT) Reading, BERKS. Tel: (0734) 751087.  Marketing Director
        Bob Barrett.  Manufacturers of the Ethernet hardware including
        the Filtabyte Ethernet controller card and EtherGate open
        access gateway.

logic variable

        <programming> A variable in a {logic programming} language
        which is initially undefined ("unbound") but may get bound to
        a value or another logic variable during {unification} of the
        containing clause with the current {goal}.  The value to which
        it is bound may contain other variables which may themselves
        be bound or unbound.

        For example, when unifying the clause

                sad(X) :- computer(X, ibmpc).

        with the goal

                sad(billgates).

        the variable X will become bound to the atom "billgates"
        yeilding the new subgoal "computer(billgates, ibmpc)".

        (1995-03-14)

LOGIN

        1. An {object-oriented} {deductive language} and {database}
        system integrating {logic programming} and {inheritance}.

        ["LOGIN: A Logic Programming Language with Built-In
        Inheritance", H. Ait-Kaci et al, J Logic Programming
        3(3):185-215 (1986)].

login

        <jargon> (Or "log in", "log on", "logon") To start a {session}
        with a system, usually by giving a {user name} and {password}
        as a means of user {authentication}.  The term is also used to
        mean the ability to access a service (also called an account),
        e.g. "Have you been given a login yet?"

        "Log in/on" is occasionally misused to refer to starting a
        session where no authorisation is involved, or to access where
        there is no session involved.  E.g. "Log on to our {Web
        site}!"

        "login" is also the {Unix} program which reads and verifies a
        user's user name and password and starts an {interactive}
        session.

        (1997-08-03)

LOGISCOPE

        Software quality analysis tools from {Verilog} SA, used to
        evaluate the quality of software, both statically (based on
        {software metric}s) and dynamically.

Loglan

        <human language> (Later "Lojban" /lozh'bahn/) An artificial
        human language designed by James Cooke Brown in the late
        1950s.

        Most artificial human languages devised in the 19th and 20th
        centuries (e.g. Esperanto) were designed to be easy to learn.
        Loglan, however, is unique in that its chief design goal was
        to avoid synactic ambiguity -- the kind that arises when
        trying to {parse} sentences like "The blind man picked up the
        hammer and saw".

        Loglan is thus the only human language unambiguously parseable
        by a formal grammar (assuming you count Loglan as a human
        language; its grammar is not at all like that of any natural
        human language).

        Most later development on Loglan continued under the name
        "Lojban".

        The Loglan Institute, Inc. is a non-profit research
        corporation.

        Loglan is apparently unrelated to the programming languages
        {Loglan'82} or {Loglan-88}.

        {Halcyon Loglan (http://www.halcyon.com/loglan/welcome.html)}.

        {Helsinki Lojban (http://xiron.pc.helsinki.fi/lojban/)}.

        Address: The Loglan Institute, Inc., 3009 Peters Way, San
        Diego, CA, 92117-4313 U.S.A.

        E-mail: loglan@compuserve.com

        Telephone: +1 (619) 270 1691.

        ["Scientific American", June 1960].

        (1999-01-14)

Loglan'82

        <language> A teaching language including all the programming
        tools used in {object-oriented programming}, {modular
        programming}, and {structured programming} as well as
        programming by rules and {functional programming}.

        Supported {object-oriented programming} features include
        {classes}, {objects}, {coroutines}, processes (in Loglan'82
        {processes} are {objects} which are able to act in parallel),
        {inheritance}, {exception handling}, and {dynamic arrays}.

        Loglan'82 is apparently unrelated to {Loglan}.

        {Home (http://www.univ-pau.fr/~salwicki/loghome.html)}.

        A {cross-compiler} to {C} is {here
        (ftp://infpc1.univ-pau.fr/pub/Loglan82)}.

        [Related to {Loglan-88}?]

        (1999-07-02)

Loglan-88

        <language> An {object-oriented} language from the Institute of
        Informatics at {Warsaw University}.

        Loglan-88 is apparently unrelated to {Loglan}.

        [Loglan-88, "Report on the Programming Language, LNCS 414,
        Springer-Verlag, 1990, ISBN 3-540-52325-1].

        [Related to {Loglan'82}?]

        (1997-08-01)

LOGLISP

        A version of {Prolog} implemented by Robinson in {Lisp} which
        allows Prolog programs to call Lisp and vice versa.

        ["LOGLISP: An Alternative to Prolog", J. Alan Robinson et al
        in Machine Intelligence 10, D. Michie ed, Ellis Horwood 1982].

LOGO

        Developed 1966-1968 by a group at {Bolt, Beranek & Newman}
        headed by Wally Fuerzeig <fuerzeig@bbn.com> and including
        Seymour Papert <seymour@media.mit.edu>.  A {Lisp}-like
        language aimed at children and other beginning programmers,
        noted for its "turtle graphics" used to draw geometric shapes.

        There are Logo {interpreter}s for {Macintosh}, {Unix}, {IBM
        PC}, {X Window System}
        {(ftp://anarres.cs.berkeley.edu/pub/logo27)} and in the
        comp.sources.Unix archive volume 10.

        See also {Berkeley Logo}, {MswLogo}.

LOGOL

        Strings are stored on cyclic lists or 'tapes', which are
        operated upon by finite automata.  J. Mysior et al, "LOGOL, A
        String manipulation Language", in Symbol Manipulations
        Languages and Techniques, D.G. Bobrow ed, N-H 1968,
        pp.166-177.

logon

        1. <jargon> {login}.

        2. <networking> In {ACF}/{VTAM}, an unformatted
        session-initiation request for a session between two {logical
        units}.

        (1996-03-07)

Lojban

        {Loglan}

LOL

        <chat> "laughing out loud" or "lots of luck".

        (1998-09-17)

LOLITA

        Language for the On-Line Investigation and Transformation of
        Abstractions.  Extension of Culler-Fried system for symbolic
        math.  "An On- line Symbol Manipulation System",
        F.W. Blackwell, Proc ACM 22nd Natl Conf (1967).  Sammet 1969,
        p.464.

Lolli

        (Named after the "lollipop" operator "-o") An {interpreter}
        for {logic programming} based on {linear logic}, written by
        Josh Hodas <hodas@saul.cis.upenn.edu>.

        Lolli can be viewed as a refinement of the the {Hereditary
        Harrop formula}s of {Lambda-Prolog}.  All the operators
        (though not the {higher order unification}) of Lambda-Prolog
        are supported, but with the addition of linear variations.
        Thus a Lolli program distinguishes between clauses which can
        be used as many, or as few, times as desired, and those that
        must be used exactly once.  Lolli is implemented in {SML/NJ}.

        {(ftp://ftp.cis.upenn.edu/pub/Lolli/Lolli-0.7.tar.Z)}

        [Josh Hodas et al, "Logic Programming in a Fragment of
        Intuitionistic Linear Logic", Information and Computation, to
        appear].

        (1992-11-18)

LOM

        Toulouse, early 1980's.  Language for data processing.

        (1996-03-01)

longitudinal parity

        <storage, communications> An extra {byte} (or word) appended
        to a block of data in order to reveal corruption of the data.
        Bit n of this byte indicates whether there was an even or odd
        number of "1" bits in bit position n of the bytes in the
        block.  The parity byte is computed by {XOR}ing the data bytes
        in the block.  Longitudinal parity allows single bit errors to
        be detected.

        (1996-03-01)

LOOK

        A specification language.

        ["A Look at Algebraic Specifications", S.N. Zilles et al, IBM
        RR, 1982].

        (1994-11-16)

look and feel

        <operating system> The appearance and function of a program's
        {user interface}.  The term is most often applied to
        {graphical user interface}s (GUI) but might also be used by
        extension for a textual command language used to control a
        program.

        Look and feel includes such things as the {icon}s used to
        represent certain functions such as opening and closing files,
        directories and {application program}s and changing the size
        and position of windows; conventions for the meaning of
        different buttons on a {mouse} and keys on the keyboard; and
        the appearance and operation of menus.

        A {user interface} with a consistent look and feel is
        considered by many to be an important factor in the ease of
        use of a computer system.  The success of the {Macintosh user
        interface} was partly due to its consistency.

        Because of the perceived importance of look and feel, there
        have been several legal actions claiming breech of {copyright}
        on the look and feel of user interfaces, most notably by
        {Apple Computer} against {Microsoft} and {Hewlett-Packard} (which Apple
        lost) and, later, by {Xerox} against {Apple Computer}.  Such legal
        action attempts to force suppliers to make their interfaces
        inconsistent with those of other vendors' products.  This can
        only be bad for users and the industry as a whole.

        (1995-03-03)

Looking Glass

        A {desktop} manager for {Unix} from {Visix}.

LOOKS

        ["LOOKS: Knowledge-Representation System for Designing Expert
        Systems in a Logical Programming Framework", F. Mizoguchi,
        Proc Intl Conf 5th Gen Comp Sys, ICOT 1984].

loop

        <programming> A sequence of {instructions} that the
        {processor} repeats, either until some condition is met, or
        indefinitely.

        In an {structured language} (e.g. {C}, {Pascal}, {BASIC}, or
        {FORTRAN}), a loop is usually achieved with {for loop}, {while
        loop} or {repeat loop} constructs.

        In other languages these constructs may be synthesised with a
        {jump} ({assembly language}) or a {GOTO} (early FORTRAN or
        BASIC).

        (1999-05-06)

loop combination

        A {program transformation} where the bodies of two loops are
        merged into one thus reducing the overhead of manipulating and
        testing the control variable and branching.  Further
        optimisation of the merged code may then become possible.

        In {horizontal loop combination} the bodies of the loops are
        largely independent so only the loop overhead is saved.
        {Vertical loop combination} applies where the results of the
        first loop are used by the second.  Combining the two allows
        the intermediate results to be used immediately (in
        {register}s) rather than requiring them to be stored in an
        {array}.

        The functional equivalent of horizontal and vertical loop
        combination are {tupling} and {fusion}.

loop fusion

        See {loop combination}.

LOOPN

        from the {University of Tasmania}.

        A {compiler}, {simulator} and associated source control for an
        {object-oriented} {Petri net} language called LOOPN by Charles
        Lakos <charles@probitas.cs.utas.edu.au> of the {University of
        Tasmania}.  In LOOPN, a Petri net is an extension of a
        {coloured timed Petri net}.  The extension means firstly that
        token types are {class}es.  In other words, they consist of
        both data fields and functions, they can be declared by
        inheriting from other token types, and they can be used
        {polymorphic}ally.  The object-oriented extensions also mean
        that module or subnet types are classes.

        LOOPN has been developed over a period of about 5 years at the
        University of Tasmania, where it has been used in teaching
        computer simulation and the modelling of {network}
        {protocol}s.

        {(ftp://ftp.utas.edu.au/departments/computer_science/loopn.tar.Z)}

        (1992/12/20)

LOOPS

        {Lisp Object-oriented Programming System}

loop through

        To process each element of a list of things.  "Hold on, I've
        got to loop through my paper mail."  Derives from the
        computer-language notion of an iterative loop; compare "cdr
        down" (under {cdr}), which is less common among C and Unix
        programmers.  ITS hackers used to say "IRP over" after an
        obscure pseudo-op in the MIDAS PDP-10 assembler.

loose bytes

        Commonwealth hackish term for the padding bytes or {shim}s
        many compilers insert between members of a {record} or
        {structure} to cope with alignment requirements imposed by the
        machine architecture.

LOP

        A language based on {first-order logic}.

        ["SETHEO - A High-Perormance Theorem Prover for First-Order
        Logic", Reinhold Letz et al, J Automated Reasoning
        8(2):183-212 (1992)].

lord high fixer

        [Primarily British, from Gilbert & Sullivan's "Lord High
        Executioner"] The person in an organisation who knows the most
        about some aspect of a system.  See {wizard}.

Lore

        1. Object-oriented language for knowledge representation.
        "Etude et Realisation d'un Language Objet: LORE", Y. Caseau,
        These, Paris-Sud, Nov 1987.

        2. CGE, Marcoussis, France.  Set-based language [same as 1?]
        E-mail: Christophe Dony <chd.ibp.fr>

Lorem ipsum

        <text> (Or "{greek}" A common piece of text used as
        mock-{content} when testing a given page layout or {font}.
        The most common bit of greek (or "greeking" or "greeked text")
        is:

        "Lorem ipsum dolor sit amet, consectetaur adipisicing elit,
        sed do eiusmod tempor incididunt ut labore et dolore magna
        aliqua. Ut enim ad minim veniam, quis nostrud exercitation
        ullamco laboris nisi ut aliquip ex ea commodo consequat.  Duis
        aute irure dolor in reprehenderit in voluptate velit esse
        cillum dolore eu fugiat nulla pariatur. Excepteur sint
        occaecat cupidatat non proident, sunt in culpa qui officia
        deserunt mollit anim id est laborum."

        This continues at length and variously.  This is not really
        Greek, but badly garbled Latin.  It started life as extracted
        phrases from sections 1.10.32 and 1.10.33 of Cicero's "De
        Finibus et Malorum" ("The Extremes of Good and Evil"), which
        read:

        Sed ut perspiciatis unde omnis iste natus error sit voluptatem
        accusantium doloremque laudantium, totam rem aperiam, eaque
        ipsa quae ab illo inventore veritatis et quasi architecto
        beatae vitae dicta sunt explicabo.  Nemo enim ipsam voluptatem
        quia voluptas sit aspernatur aut odit aut fugit, sed quia
        consequuntur magni dolores eos qui ratione voluptatem sequi
        nesciunt.  Neque porro quisquam est, qui dolorem ipsum quia
        dolor sit amet, consectetur, adipisci velit, sed quia non
        numquam eius modi tempora incidunt ut labore et dolore magnam
        aliquam quaerat voluptatem.  Ut enim ad minima veniam, quis
        nostrum exercitationem ullam corporis suscipit laboriosam,
        nisi ut aliquid ex ea commodi consequatur?  Quis autem vel eum
        iure reprehenderit qui in ea voluptate velit esse quam nihil
        molestiae consequatur, vel illum qui dolorem eum fugiat quo
        voluptas nulla pariatur?

        At vero eos et accusamus et iusto odio dignissimos ducimus qui
        blanditiis praesentium voluptatum deleniti atque corrupti quos
        dolores et quas molestias excepturi sint occaecati cupiditate
        non provident, similique sunt in culpa qui officia deserunt
        mollitia animi, id est laborum et dolorum fuga.  Et harum
        quidem rerum facilis est et expedita distinctio.  Nam libero
        tempore, cum soluta nobis est eligendi optio cumque nihil
        impedit quo minus id quod maxime placeat facere possimus,
        omnis voluptas assumenda est, omnis dolor repellendus.
        Temporibus autem quibusdam et aut officiis debitis aut rerum
        necessitatibus saepe eveniet ut et voluptates repudiandae sint
        et molestiae non recusandae.  Itaque earum rerum hic tenetur a
        sapiente delectus, ut aut reiciendis voluptatibus maiores
        alias consequatur aut perferendis doloribus asperiores
        repellat.

        Translation:

        But I must explain to you how all this mistaken idea of
        will give you a complete account of the system, and expound
        the actual teachings of the great explorer of the truth, the
        master-builder of human happiness.  No one rejects, dislikes,
        or avoids pleasure itself, because it is pleasure, but because
        those who do not know how to pursue pleasure rationally
        encounter consequences that are extremely painful.  Nor again
        is there anyone who loves or pursues or desires to obtain pain
        of itself, because it is pain, but because occasionally
        circumstances occur in which toil and pain can procure him
        some great pleasure.  To take a trivial example, which of us
        ever undertakes laborious physical exercise, except to obtain
        some advantage from it?  But who has any right to find fault
        with a man who chooses to enjoy a pleasure that has no
        annoying consequences, or one who avoids a pain that produces
        no resultant pleasure?

        On the other hand, we denounce with righteous indignation and
        dislike men who are so beguiled and demoralized by the charms
        of pleasure of the moment, so blinded by desire, that they
        cannot foresee the pain and trouble that are bound to ensue;
        and equal blame belongs to those who fail in their duty
        through weakness of will, which is the same as saying through
        shrinking from toil and pain.  These cases are perfectly
        simple and easy to distinguish.  In a free hour, when our
        power of choice is untrammelled and when nothing prevents our
        being able to do what we like best, every pleasure is to be
        welcomed and every pain avoided.  But in certain circumstances
        and owing to the claims of duty or the obligations of business
        is will frequently occur that pleasures have to be repudiated
        and annoyances accepted.  The wise man therefore always holds
        in these matters to this principle of selection: he rejects
        pleasures to secure other greater pleasures, or else he
        endures pains to avoid worse pains.

        -- Translation by H. Rackham, from his 1914 edition of De
        Finibus.

        However, since textual fidelity was unimportant to the goal of
        having {random} text to fill a page, it has degraded over the
        centuries, into "Lorem ipsum...".

        The point of using this text, or some other text of incidental
        intelligibility, is that it has a more-or-less normal (for
        English and Latin, at least) distribution of ascenders,
        descenders, and word-lengths, as opposed to just using "abc
        123 abc 123", "Content here content here", or the like.

        (1999-06-27)

Lorenz attractor

        <mathematics> (After {Edward Lorenz}, its discoverer) A region
        in the {phase space} of the solution to certain systems of
        (non-linear) {differential equations}.  Under certain
        conditions, the motion of a particle described by such as
        system will neither converge to a steady state nor diverge to
        infinity, but will stay in a bounded but chaotically defined
        region.  By {chaotic}, we mean that the particle's location,
        while definitely in the attractor, might as well be randomly
        placed there.  That is, the particle appears to move randomly,
        and yet obeys a deeper order, since is never leaves the
        attractor.

        Lorenz modelled the location of a particle moving subject to
        atmospheric forces and obtained a certain system of {ordinary
        differential equations}.  When he solved the system
        numerically, he found that his particle moved wildly and
        apparently randomly.  After a while, though, he found that
        while the momentary behaviour of the particle was chaotic, the
        general pattern of an attractor appeared.  In his case, the
        pattern was the butterfly shaped attractor now known as the
        {Lorenz attractor}.

        (1996-01-13)

lose

        <jargon> ({MIT}) 1. To fail.  A program loses when it
        encounters an exceptional condition or fails to work in the
        expected manner.

        2. To be exceptionally unesthetic or crocky.

        3. Of people, to be obnoxious or unusually stupid (as opposed
        to ignorant).

        4. Refers to something that is {losing}, especially in the
        phrases "That's a lose!" and "What a lose!"

        (1995-04-19)

loser

        <jargon> An unexpectedly bad situation, program, programmer,
        or person.  Someone who habitually loses.  (Even winners can
        lose occasionally).  Someone who knows not and knows not that
        he knows not.  Emphatic forms are "real loser", "total loser",
        and "complete loser" (but not **"moby loser", which would be a
        contradiction in terms).

        See {luser}.

        (1995-04-19)

losing

        <jargon> Said of anything that is or causes a {lose} or
        {lossage}.

loss

        <jargon> Something (not a person) that loses; a situation in
        which something is losing.  Emphatic forms include "moby
        loss", and "total loss", "complete loss".  Common
        interjections are "What a loss!"  and "What a moby loss!"
        Note that "moby loss" is OK even though **"moby loser" is not
        used; applied to an abstract noun, moby is simply a magnifier,
        whereas when applied to a person it implies substance and has
        positive connotations.

        Compare {lossage}.

        (1995-04-19)

lossage

        <jargon> /los'*j/ The result of a {bug} or malfunction.  This
        is a mass or collective noun.  "What a loss!" and "What
        lossage!"  are nearly synonymous.  The former is slightly more
        particular to the speaker's present circumstances; the latter
        implies a continuing {lose} of which the speaker is currently
        a victim.  Thus (for example) a temporary hardware failure is
        a loss, but bugs in an important tool (like a compiler) are
        serious lossage.

        (1995-04-19)

lossless

        <algorithm, compression> A term describing a data
        {compression} {algorithm} which retains all the information in
        the data, allowing it to be recovered perfectly by
        decompression.

        {Unix} {compress} and {GNU} {gzip} perform lossless
        compression.

        Opposite: {lossy}.

        (1995-03-29)

lossy

        <algorithm> A term describing a data {compression} {algorithm}
        which actually reduces the amount of information in the data,
        rather than just the number of bits used to represent that
        information.  The lost information is usually removed because
        it is subjectively less important to the quality of the data
        (usually an {image} or {sound}) or because it can be recovered
        reasonably by {interpolation} from the remaining data.

        {MPEG} and {JPEG} are examples of lossy compression
        techniques.

        Opposite: {lossless}.

        (1995-03-29)

lost in the noise

        Synonym {lost in the underflow}.  This term is from signal
        processing, where signals of very small amplitude cannot be
        separated from low-intensity noise in the system.  Though
        popular among hackers, it is not confined to hackerdom;
        physicists, engineers, astronomers, and statisticians all use
        it.

lost in the underflow

        <jargon> Too small to be worth considering; more specifically,
        small beyond the limits of accuracy or measurement.  This is a
        reference to "{floating point underflow}".

        The {Hacker's Jargon File} claimed that it is also a pun on
        "undertow" (a kind of fast, cold current that sometimes runs
        just offshore and can be dangerous to swimmers).

        "Well, sure, photon pressure from the stadium lights alters
        the path of a thrown baseball, but that effect gets lost in
        the underflow".

        Compare {epsilon}, {epsilon squared}; see also {overflow bit}.

        (1997-09-05)

LOTIS

        LOgic, TIming, Sequencing.  A language which describes a
        computer via its data flow.

        [Sammet 1969, p. 620].

LOTOS

        {Language Of Temporal Ordering Specification}

lots of MIPS but no I/O

        Used to describe a person who is technically brilliant but
        can't seem to communicate with human beings effectively.
        Technically it describes a machine that has lots of processing
        power but is bottlenecked on input-output (in 1991, the IBM
        Rios, a.k.a. RS/6000, is a notorious recent example).

Lotus 1-2-3

        <tool, product> A {spreadsheet} for {MS-DOS} from {Lotus
        Development Corporation}.  It can be programmed using
        "{macro}s" and comes with a separate program to produce graphs
        and charts but this cannot be run at the same time as the
        spreadsheet.  It has keyboard-driven {pop-up menu}s as well as
        one-key commands, making it fast to operate.  Lotus 1-2-3
        supported {EGA} and later {VGA} graphics.  Early versions used
        the {filename extension} "WK1".

        Version: 4.

        Lotus 1-2-3 has been the subject of several {user interface
        copyright} court cases in the US.

        {Home (http://www.nyweb.com/lotus/123.html)}

        1-2-3's successor, {Symphony}, had simultaneous update of
        spreadsheet, graph and {word processor} windows.

        (1995-11-28)

Lotus Development Corporation

        <company> A software company who produced {Lotus 1-2-3}, the
        {Symphony} {spreadsheet} and {Lotus Notes} for the {IBM PC}.

        Disliked by the {League for Programming Freedom} on account of
        their lawsuits.

        Quarterly sales $224M, profits $10M (Aug 1994).

        Telephone: +1 (617) 225 1284.

        [Where are they?  Founded when?  Other products?  E-mail?
        Internet?]

        (1994-11-16)

Lotus Notes

        A group of {application program}s from {Lotus Development
        Corporation} which allows organisations to share documents and
        exchange {electronic mail} messages.  Notes supports
        {replication}.

        (1994-10-27)

Lout

        Lout is a batch text formatting system and an embedded
        language by Jeffrey H. Kingston <jeff@cs.su.oz.au>.  The
        language is procedural, with {Scribe}-like {syntax}.

        Lout features equation formatting, tables, diagrams, rotation
        and scaling, sorted indexes, bibliographic databases, running
        headers and odd-even pages and automatic cross-referencing.
        Lout is easily extended with definitions which are very much
        easier to write than {troff} of {TeX} {macro}s because Lout is
        a {high-level language}, the outcome of an eight-year research
        project that went back to the beginning.

        Version 2.05 includes a translator from Lout to {PostScript}
        and documentation. and runs under {Unix} and on the {Amiga}.

        {Author's site (ftp://ftp.cs.su.oz.au/jeff/lout.2.03.tar.Z)},
        {(ftp://ftp.uu.net/tmp/lout.tar.Z)}.  {Amiga
        (ftp://ftp.wustl.edu/pub/aminet/text/dtp/loutBin203.lha)}.

        (1993-07-30)

love

        What many users feel for computers.

        "I don't really love computers, I just say that to get them
        into bed with me". (Terry Pratchet)

        [What did you expect in a computing dictionary?]

        (1995-05-10)

low-bandwidth

        [communication theory] Used to indicate a talk that, although
        not {content-free}, was not terribly informative.  "That was a
        low-bandwidth talk, but what can you expect for an audience of
        {suit}s!"  Compare {zero-content}, {bandwidth}, {math-out}.

low earth orbit

        <communications> (LEO) The kind of orbit used by
        communications satellites that will offer high {bandwidth} for
        {video on demand}, television and other {Internet}
        communications.  A satellite in LEO, in contrast to one in a
        geostationary orbit, is not in a fixed position relative the
        the Earth's surface so several satellites are required to
        provide continuous service.

        [Ovum report, "Applications for the superhighway", John
        Moroney].

        (1996-02-06)

Lower Layer Protocol

        <networking, protocol> (LLP, or lower-layer protocol)
        Any {protocol} residing in {OSI} layers one to four.

        These protocols package, {route}, verify and transmit
        {datagrams}.  A prime example would be {TCP/IP}.  Lower layer
        protocols support the {upper layer protocols}.

        (1999-02-17)

lower set

        <mathematics> A {finite} non-empty {downward closed} subset of
        a {partial order}.

        (1999-03-17)

Low Insertion Force

        <hardware> (LIF) {PGA}/{SPGA} sockets with no handle.  The
        {integrated circuit} is simply pushed into the socket, and
        levered out to remove.  Most {motherboard} {processor} sockets
        are now {ZIF} rather than LIF.
        
        (1999-08-05)

LOWL

        <language> The {abstract machine} for {bootstrapping} {ML/1},
        developed by P.J. Brown of the {University of Kent at
        Canterbury}.

        ["Macro Processors and Techniques for Portable Software",
        P.J. Brown, published by Wiley, ISBN 0.471.11005.1].

        [Mentioned in "Machine Oriented Higher Level Languages",
        W. van der Poel, N-H 1974, p. 271].

        [What does LOWL stand for?]

        (1997-11-04)

Low Voltage Differential

        <hardware> (LVD) A method of driving {SCSI} cables that will
        be formalised in the {SCSI-3} specifications.  LVD uses less
        power than the current differential drive ({HVD}), is less
        expensive and will allow the higher speeds of {Ultra-2 SCSI}.
        LVD requires 3.3 Volts DC instead of 5 Volts DC for HVD.

        (1999-02-16)

LPAC

        {London Parallel Applications Centre}

LPC

        <language> A variant of {C} designed ca 1988 to program
        {LP MUD}s.

        (1995-04-18)

LPF

        {League for Programming Freedom}

LPG

        1. Linguaggio Procedure Grafiche (Italian for "Graphical
        Procedures Language").  dott. Gabriele Selmi.  Roughly a cross
        between FORTRAN and APL, with graphical-oriented extensions
        and several peculiarities.  Underlies the products of CAD.LAB
        Spa.  "Graphical Procedure Language User's Guide and Reference
        Manual", CAD.LAB, Bologna, Italy, 1989, order code GO89/9.

        2. Langage de Programmation Generique.  An applicative
        language, both specification and functional.  Special emphasis
        on parametrised declarations.  "Design and Implementation of a
        Generic, Logic and Functional Programming Language", D. Bert
        et al, ESOP 86, LNCS 213, Springer 1986.

LPI

        <language> A {PL/I} {interpreter} for {IBM PC}s and
        {workstations}.

        {(ftp://ftp.wustl.edu/mirrors/msdos/pli/runpli1a.arc)}.

        E-mail: <rcg@lpi.liant.com>.

        (1999-09-03)

LPL

        List Programming Language.  LISP-like language with ALGOL-like
        syntax, for IBM 360.  "LPL - LISP Programming Language",
        F.W. Blair et al, RC 3062, IBM TJWRC, Sep 1970.

lpm

        {lines per minute}

LP MUD

        <games> A kind of player-programmable multi-user adventure
        game.

        [More details?]

        See {MUD}.

lpr

        Line printer.  The {Unix} print command.  This does not
        actually print files but rather copies (or links) them to a
        {spool} area from where a {daemon} copies them to the printer.

LPS

        Sets with restricted {universal quantifier}s.

        ["Logic Programming with Sets", G. Kuper, J Computer Sys Sci
        41:44-64 (1990)].

LPT

        /L-P-T/ or /lip'it/ or /lip-it'/ Line printer.  Rare under
        {Unix}, more common among hackers who grew up with {ITS},
        {MS-DOS}, {CP/M} and other {operating system}s that were
        strongly influenced by early {DEC} conventions.

lr

        <networking> The {country code} for Liberia.

        (1999-01-27)

LRLTRAN

        Lawrence Radiation Laboratory TRANslator.

        A {FORTRAN} extension with vector arithmetic and {dynamic
        storage}, used for scientific work and systems programming,
        including the {LTSS} {operating system}.

        ["The LRLTRAN Compiler", S.F. Mendicino, CACM 11(11):747-775
        (Nov 1969)].

LRU

        {Least Recently Used}

ls

        <networking> The {country code} for Lesotho.

        (1999-01-27)

LSA

        {Link State Advertisement}

LSB

        1. {Least Significant Bit}.

        2. (Rarely) Least Significant Byte.

LSE

        {Language Sensitive Editor}

LSL

        1. Larch Shared Language.  An assertion language.  (See
        Larch).

        2. Link and Selector Language.  Graphic query language.  "LSL:
        A Link and Selector Language", D.C. Tsichritzis, Proc Intl
        Conf Management of Data, ACM 1976, pp.123-134.

LSML

        {Lazy Standard ML}

L-Soft

        An international corporation formed by Eric Thomas, the author
        of {Listserv}, to develop it and port it to platforms other
        than the {IBM} {VM} {operating system}, including {Unix}.
        Listserv has been enhanced to use both the {Internet} and
        {BITNET}.

        (1995-02-22)

LSP

        {Label Switched Path}

LSR

        {Label Switching Router}

LSSD

        {level-sensitive scan design}

LSYD

        Language for SYstems Development.

        A {PL/I}-like language with data structure and character
        extensions.

        ["Systems Programming Languages", R.D. Bergeron et al, in
        Advances in Computers 1971, A-P].

        (1995-01-31)

lt

        <networking> The {country code} for Lithuania.

        (1999-01-27)

LT-2

        An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-31)

LTL

        {Linear Temporal Logic}

LTR

        Langage Temps-Rel.

        (French for "real-time language") A French predecessor to
        {Ada}, LTR is {Modula}-like with a set of special-purpose
        {real-time} constructs based on an event model.  It was
        mentioned in the reference below.

        ["An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp
        10:851-887 (1980)].

        (1995-01-31)

LTR3

        Version three of {LTR}, by A. Parayre of Delegation Generale
        pour l'Armement, France.  LTR3 was widely used by the French
        military and avionics companies.

        ["The LTR3 Reference Manual", A. Parayre, Delegation Generale
        pour l'Armement, France].

        (1995-01-31)

lu

        <networking> The {country code} for Luxembourg.

        (1999-01-27)

LU6.2

        {Logical Unit 6.2}

lub

        {least upper bound}

Lubarsky's Law of Cybernetic Entomology

        There is always one more {bug}.

LUCID

        1. Early query language, ca. 1965, System Development Corp,
        Santa Monica, CA.  [Sammet 1969, p.701].

        2. A family of dataflow languages descended from {ISWIM},
        {lazy} but {first-order}.

        Ashcroft & Wadge <wwadge@csr.uvic.ca>, 1981.

        They use a dynamic {demand driven} model.  Statements are
        regarded as equations defining a network of processors and
        communication lines, through which the data flows.  Every data
        object is thought of as an infinite {stream} of simple values,
        every function as a {filter}.  Lucid has no {data
        constructor}s such as {array}s or {record}s.  {Iteration} is
        simulated with 'is current' and 'fby' (concatenation of
        sequences).  Higher-order functions are implemented using pure
        dataflow and no closures or heaps.

        ["Lucid: The Dataflow Language" by Bill Wadge
        <wwadge@csr.UVic.CA> and Ed Ashcroft, c. 1985].  ["Lucid, the
        Dataflow Programming Language", W. Wadge, Academic Press
        1985].

        (1995-02-16)

Lucid Emacs

        (Or "Xemacs")

        A text editor for the {X Window System}, based on an early
        version of {Emacs} version 19 from the {Free Software
        Foundation}, produced by a collaboration of {Lucid, Inc.} with
        {SunPro} (a division of {Sun Microsystems, Inc.}) and the
        {University of Illinois}.

        Lucid chose to build part of {Energize}, their {C}/{C++}
        development environment on top of GNU Emacs.  Though their
        product is commercial, the work on GNU Emacs is {free
        software}, and is useful without having to purchase the
        product.  They needed a version of Emacs with mouse-sensitive
        regions, multiple fonts, the ability to mark sections of a
        buffer as read-only, the ability to detect which parts of a
        buffer has been modified, and many other features.

        The existing version of {Epoch} was not sufficient; it did not
        allow arbitrary {pixmap}s and icons in buffers, "undo" did not
        restore changes to regions, regions did not overlap and merge
        their attributes.  Lucid spent some time in 1990 working on
        Epoch but later decided that their efforts would be better
        spent improving Emacs 19 instead.

        Lucid did not have time to get their changes accepted by the
        {FSF} so they released Lucid Emacs as a forked branch of
        Emacs.  Roughly a year after Lucid Emacs 19.0 was released, a
        beta version of the FSF branch of Emacs 19 was released.  The
        FSF version is better in some areas, and worse in others.
        Lucid continue to develop and support Lucid Emacs, merging in
        bug fixes and new features from the FSF branch as appropriate.
        They feel that Lucid Emacs has a cleaner and more extensible
        substrate, and that it would be easier to merge the FSF
        changes into their version than the other way around.

        Epoch and Lucid Emacs will soon be one and the same thing.
        Work is being done on a compatibility package which will allow
        Epoch 4 code to run in Lemacs with little or no change.  (As
        of 19.8, Lucid Emacs is running a descendant of the Epoch
        redisplay engine.)

Lucinda

        <language> A language which combines {Russell}-like
        {polymorphism} with {Linda}-like {concurrency}.  Lucinda is
        implemented as a {threaded interpreter} written in {C}, for a
        {Sun} network and a {Meiko Computing Surface}.

        ["Lucinda - An Overview", P. Butcher, U York et al, SIGPLAN
        Notices 26(8):90-100, Aug 1991].

        E-mail: Alan Wood <wood@cs.york.ac.uk>.

        (1996-08-20)

Lucy

        Distributed constraint programming language.  An actor subset
        of Janus.  "Actors as a Special Case of Concurrent Constraint
        Programming", K.  Kahn <kahn@parc.xerox.com> et al, SIGPLAN
        Notices 25(10):57-66 (OOPSLA/ ECOOP '90) (Oct 1990).

luminance

        {brightness}

lump uncurrying

        Chin's generalisation of {uncurrying}.  A curried function
        taking several {tuple}s as arguments can be transformed to
        take a single tuple containing all the components of the
        original tuples.

LUN

        {Logical Unit Number}

lunatic fringe

        [IBM] Customers who can be relied upon to accept release 1
        versions of software.

Lund Simula

        <language> A version of {SIMULA} from {Lund Software House}.

        Version 4.07.

        (FTP: rascal.ics.utexas.edu/misc/mac/programming/ no longer
        exists).

        (1995-03-29)

Lund Software House AB

        <company> The company who produced {Lund Simula}.

        Address: Box 7056, S-22007 Lund, Sweden.

        (1995-03-29)

lurk

        {lurking}

lurker

        {lurking}

lurking

        <messaging, jargon> The activity of one of the "silent
        majority" in a electronic forum such as {Usenet}; posting
        occasionally or not at all but reading the group's postings
        regularly.  This term is not pejorative and indeed is casually
        used reflexively: "Oh, I'm just lurking".  Often used in "the
        lurkers", the hypothetical audience for the group's
        {flamage}-emitting regulars.

        Lurking and reading the {FAQ} are recommended {netiquette} for
        beginners who need to learn the history and practises of the
        group before posting.

        (1997-06-14)

luser

        /loo'zr/ A {user}; especially one who is also a {loser}.
        ({luser} and {loser} are pronounced identically.)  This word
        was coined around 1975 at {MIT}.

        Under {ITS}, when you first walked up to a terminal at MIT and
        typed Control-Z to get the computer's attention, it printed
        out some status information, including how many people were
        already using the computer; it might print "14 users", for
        example.  Someone thought it would be a great joke to patch
        the system to print "14 losers" instead.  There ensued a great
        controversy, as some of the users didn't particularly want to
        be called losers to their faces every time they used the
        computer.  For a while several hackers struggled covertly,
        each changing the message behind the back of the others; any
        time you logged into the computer it was even money whether it
        would say "users" or "losers".  Finally, someone tried the
        compromise "lusers", and it stuck.

        Later one of the ITS machines supported "luser" as a
        request-for-help command.  ITS died the death in mid-1990,
        except as a museum piece; the usage lives on, however, and the
        term "luser" is often seen in program comments.

        See: also {LART}.  Compare: {tourist}, {weenie}.

        (1998-07-01)

Luser Attitude Re-adjustment Tool

        <jargon> (LART) Something large, heavy and painful, used to
        respond appropriately to particularly annoying {lusers}.

        The alt.sysadmin.recovery {FAQ} recommends the following
        LARTs.  A 2x4 works fine, but a real professional needs
        something a little more effective.  Unfortunately, this is a
        very personal thing, and no consensus has yet been reached on
        the group.  Everything from a simple, 7.65mm Walther (for the
        Bond fans only, it's not a very good gun) to a 155mm with
        depleted Uranium rounds has been suggested, some even going
        for exotic things like Thermite, nukes or flamethrowers.  For
        further info, look at the rec.guns home page.

        {alt.sysadmin.recovery FAQ
        (http://www.ctrl-c.liu.se/~ingvar/asr/overview.html)}.

        (1998-12-09)

LUSTRE

        (A French acronym for Synchronous real-time Lucid).  Real-time
        dataflow language for synchronous systems, especially
        automatic control and signal processing.  A {Lucid} subset,
        plus timing operators and user-defined clocks.

        Designed for automatic control applications.  It is based on
        the idea that automatic control engineers use to analyse, and
        specify their systems in terms of functions over sequences
        (sampled signals).  It thus seems both safe and cost effective
        to try to compile directly those descriptions into executable
        code.  A lot of work has been done, so as to get efficient
        compilation, and also in formal verification.  The language
        has been used in nuclear plant control, and will be used in
        aircraft control.

        ["Outline of a Real-Time Data-Flow Language", J.-L. Bergerand
        et al, Proc IEE-CS Real Time Systems Symp, San Diego, IEEE Dec
        1985, pp. 33-42].

        ["LUSTRE: A Declarative Language for Programming Synchronous
        Systems", P. Caspi et al, Conf Rec 14th Ann ACM Symp on Princ
        Prog Langs, 1987].

        (1994-10-12)

lv

        <networking> The {country code} for Latvia.

        (1999-01-27)

lvalue

        <programming> A reference to a location, an expression which
        can appear as the destination of an {assignment} operator
        indicating where a value should be stored.  For example, a
        variable or an array element are lvalues but the constant 42
        and the expression i+1 are not.  A constant string may or may
        not be an lvalue (it usually is in {C}).

        (1995-04-28)

LVD

        {Low Voltage Differential}

LWP

        <programming> {light-weight process}.

        (1996-02-22)

ly

        <networking> The {country code} for Libya.

        (1999-01-27)

LYaPAS

        (Russian acronym for "Logical Language for the Representation
        of Synthesis Algorithms")

        A language for the {URAL-1} computer.  It was coded in
        {octal}!

        ["LYaPAS: A Programming Language for Logic and Coding
        Algorithms", M.A. Gavrilov et al eds, Academic Press 1969].

        (1995-02-16)

Lycos

        <World-Wide Web> A {World-Wide Web} index, served by {Carnegie
        Mellon University}.  It allows you to search on document title
        and content for a list of keywords.  Lycos is probably the
        biggest such index on the web.  By April 1995, the Lycos
        database contained 2.95 million unique documents.

        The Lycos database is built by a {Web crawler} that can bring
        in 5000 documents per day.  The index searches document title,
        headings, links, and keywords it locates in these documents.

        The Lycos servers are efficient but overloaded.  Failure to
        connect or "please try later" messages are common.

        {Home (http://lycos.cs.cmu.edu/)}

        (1995-04-06)

lynix

        <spelling> Misspelling of "{Linux}" (the {Unix} {clone}), or
        possibly "{lynx}" (the {World-Wide Web} {browser}).

        (1995-04-06)

LYNX

        A language for large distributed {network}s, using {remote
        procedure call}s, developed by the {University of Wisconsin}
        in 1984.

        ["The Lynx Distributed Programming Language: Motivation,
        Design and Experience", M.L. Scott, Computer Langs 16:209-233
        (1991)].

        (1994-10-12)

Lynx

        1. A {WWW} {browser} from the {University of Kansas} for use
        on {cursor-addressable}, {character cell} {terminals} or
        {terminals emulators} under {Unix} or {VMS}.  Lynx is a
        product of the Distributed Computing Group within Academic
        Computing Services of The {University of Kansas}.  Lynx was
        originally developed by Lou Montulli, Michael Grobe and
        Charles Rezac.  Garrett Blythe created {DosLynx} and later
        joined the Lynx effort as well.  Foteos Macrides ported much
        of Lynx to VMS and is now maintaining it.

        Version: 2.4-FM (1995-10-25).

        {Home (http://www.cc.ukans.edu/about_lynx/about_lynx.html)}

        Mailing list: lynx-dev@ukanaix.cc.ukans.edu (send "subscribe
        lynx-dev <your-name>" in the message body to
        listserv@ukanaix.cc.ukans.edu).

        (1994-12-07)

        2. {Lynx Real-Time Systems}.

        (1996-03-25)

LynxOS

        A {POSIX} compliant {real-time} {operating system} from {Lynx
        Real-Time Systems}.  It has a {Unix}-like interface to
        {application program}s.

        (1994-10-12)

Lynx Real-Time Systems

        A company in Los Gatos, California who distribute {LynxOS}.

        {Home (http://lynx.com/)}

        E-mail: <sales@lynx.com>, <support@lynx.com>.

        Address: 16780 Lark Avenue, Los Gatos, CA 95030, USA.

        Telephone:: +1 (408) 354 7770, +1 (800) 255 LYNX. Fax: +1
        (408) 354 7085.

        (1995-01-18)

LYRIC

        Language for Your Remote Instruction by Computer.  A {CAI}
        language implemented as a {FORTRAN} {preprocessor}.

        ["Computer Assisted Instruction: Specification of Attributes
        for CAI Programs and Programmers", G.M. Silvern et al, Proc
        ACM 21st Natl Conf (1966)].

        (1994-10-12)

LZ77 compression

        The first {algorithm} to use the {Lempel-Ziv} {substitutional
        compression} schemes, proposed in 1977.  LZ77 compression
        keeps track of the last n bytes of data seen, and when a
        phrase is encountered that has already been seen, it outputs a
        pair of values corresponding to the position of the phrase in
        the previously-seen buffer of data, and the length of the
        phrase.  In effect the compressor moves a fixed-size "window"
        over the data (generally referred to as a "sliding window"),
        with the position part of the (position, length) pair
        referring to the position of the phrase within the window.

        The most commonly used {algorithm}s are derived from the
        {LZSS} scheme described by James Storer and Thomas Szymanski
        in 1982.  In this the compressor maintains a window of size N
        bytes and a "lookahead buffer", the contents of which it tries
        to find a match for in the window:

         while (lookAheadBuffer not empty)
         {
             get a pointer (position, match) to the longest match in
             the window for the lookahead buffer;

             if (length > MINIMUM_MATCH_LENGTH)
             {
               output a (position, length) pair;
               shift the window length characters along;
             }
             else
             {
               output the first character in the lookahead buffer;
               shift the window 1 character along;
             }
          }

        Decompression is simple and fast: whenever a (POSITION,
        LENGTH) pair is encountered, go to that POSITION in the window
        and copy LENGTH bytes to the output.

        Sliding-window-based schemes can be simplified by numbering
        the input text characters mod N, in effect creating a circular
        buffer.  The sliding window approach automatically creates the
        {LRU} effect which must be done explicitly in {LZ78} schemes.
        Variants of this method apply additional compression to the
        output of the LZSS compressor, which include a simple
        variable-length code ({LZB}), dynamic {Huffman} coding
        ({LZH}), and {Shannon-Fano} coding ({ZIP} 1.x), all of which
        result in a certain degree of improvement over the basic
        scheme, especially when the data are rather random and the
        LZSS compressor has little effect.  An algorithm was developed
        which combines the ideas behind LZ77 and LZ78 to produce a
        hybrid called {LZFG}.  LZFG uses the standard sliding window,
        but stores the data in a modified {trie} data structure and
        produces as output the position of the text in the trie.
        Since LZFG only inserts complete *phrases* into the
        dictionary, it should run faster than other LZ77-based
        compressors.

        All popular archivers ({arj}, {lha}, {zip}, {zoo}) are
        variations on LZ77.

        [comp.compression {FAQ}].

        (1995-04-07)

LZ78 compression

        A {substitutional compression} scheme which works by entering
        phrases into a dictionary and then, when a reoccurrence of
        that particular phrase is found, outputting the dictionary
        index instead of the phrase.  Several {algorithms} are based
        on this principle, differing mainly in the manner in which
        they manage the dictionary.

        The most well-known Lempel-Ziv scheme is Terry Welch's
        {Lempel-Ziv Welch} variant of LZ78.

        [comp.compression {FAQ}].

LZ compression

        {Lempel-Ziv compression}

lzexe

        An executable file {compression} utility for {MS-DOS}.  It
        adds a minimal header to the executable to decompress it when
        it is executed.  See also {pklite}.

LZH compression

        <algorithm> (After Lempel-Ziv and Haruyasu, the inventors) A
        {compression} {algorithm} derived from the {LZSS} scheme with
        a sliding window and additional compression applied to the
        output of the LZSS compressor by {dynamic Huffman coding}.

        (1995-04-07)

LZW compression

        {Lempel-Ziv Welch compression}

M

        1. Alternative name for {MUMPS}.

        2. A {C}-like language from {Silicon Compiler Systems} for
        multilevel {hardware description}.  It is currently available
        in the {GDT} package from {Mentor Graphics}.

        (1994-10-26)

        3. <unit> The abbreviated for of {mega-}.

        (1995-01-10)

m2

        A {Modula-2} {compiler} for {VAX} and {MIPS}.  A {Pascal}
        compiler for VAX is also included.  The Pascal compiler
        accepts a language that is almost identical to {Berkeley
        Pascal}.  It was originally designed and built by Michael L.
        Powell in 1984.  Joel McCormack made it faster, fixed lots of
        bugs, and swiped/wrote a User's Manual.  Len Lattanzi ported
        it to the MIPS.

        It has the following extensions: {foreign function} and data
        interface, {dynamic array} variables, {subarray parameter}s,
        multi-dimensional {open array parameter}s, {inline
        procedure}s, longfloat type, type-checked interface to {C}
        library I/O routines.

        It runs on {VAX} ({Ultrix}, {BSD}) and {MIPS} ({Ultrix}).

        {(ftp://gatekeeper.dec.com/pub/DEC/Modula-2/m2.tar.Z)}.

        E-mail: <modula-2@decwrl.pa.dec.com>.

        (1992-07-06)

M2toM3

        A simple {Modula-2} to {Modula-3} translator by Peter Klein
        <pk@i3.informatik.rwth-aachen.de> which covers most of the
        syntactic differences between those languages.  No context
        sensitive analysis is done, so WITH statements, local
        {modules}, {enumeration type} literals and {variant RECORD}S
        have to be dealt with by hand.  Part of the {Sun} Modula 2
        library is emulated by the Modula 3 library.

        Version 1.01.

        {(ftp://martha.informatik.rwth-aachen.de/pub/Modula3)}

        (1992-12-01)

M3

        A {macro} processor, forerunner of {M4}, for the {AP-3}
        {minicomputer}.

m4

        A {macro} processor for {Unix} and {GCOS} which is more
        flexible than {cpp}.  m4 copies its input to the output,
        expanding macros which can be either built-in or user-defined.
        m4 has built-in functions for including files, running {Unix}
        commands, doing integer arithmetic, manipulating text in
        various ways and recursing.  m4 can be used either as a
        {front-end} to a compiler or as a stand-alone tool.

        {sendmail}'s configuration file (/etc/sendmail.cf) is writen
        in m4 macros.

        There is a {GNU m4 v1.1
        (ftp://prep.ai.mit.edu/pub/gnu/m4-1.0.tar.Z)} by Francois
        Pinard <pinard@iro.umontreal.ca> and a {public domain} version
        by Ozan Yigit <oz@sis.yorku.ca> and Richard A. O'Keefe
        <ok@goanna.cs.rmit.OZ.AU> (FTP from any {386BSD}, {NetBSD} or
        {FreeBSD} archive).  A {Macintosh} version is {here
        (ftp://nic.switch.ch/pub/software/mac/src/mpw-c/)}.

        See also {m3}, {m5}.

        ["The M4 Macro Processor",
        Kernighan & Ritchie, Jul 1977].

M5

        Macro processor, a generalisation of {M4} by A. Dain, U
        Cincinnati, 1992.  For Unix and DOS.

        {(ftp://thor.exe.u.edu/pub/dain/m5)}

ma

        <networking> The {country code} for Morocco.

        (1999-01-27)

MAC

        1. {Media Access Control}.

        2. Early system on {Ferranti} {Mercury}.  Listed in CACM
        2(5):16 (May 1959).

Mac

        {Macintosh}

Mac-1

        <language> The {assembly language} used in the book cited
        below.

        See {Mic-1}.

        ["Structured Computer Organization", A.S. Tanenbaum, 3rd
        Edition, P-H 1989, Sect. 4.3].

        (1996-04-07)

MAC-360

        A system for solving numerical problems using equation-like
        input.  Developed around 1967.

        ["User's Guide to MAC-360", Charles Stark Draper Lab,
        Cambridge MA (Aug 1973)].

        [Sammet 1969, p. 264].

MAC address

        The hardware address of a device connected to a shared
        {network} medium.  See also {Media Access Control}.

MACAnalyst

        An analysis {CASE} tool for the {Macintosh} from {Excel
        Software, Inc.}

Macaulay

        A {symbolic mathematics} package for {commutative algebra},
        {algebraic geometry} and {cohomology}, written in {C} by Mike
        Stillman <mike@mssun7.msi.cornell.edu> and Dave Bayer
        <bayer@cUnixa.columbia.edu> in 1977.  Version 3 runs on {Sun},
        {Macintosh} and {Amiga}.

        {(ftp://zariski.harvard.edu/)}

        (1994-10-12)

MacBinary

        <file format> An eight-bit wide representation of the data and
        {resource fork}s of an {Macintosh} file and of relevant
        {Finder} information.  MacBinary files are recognised as
        "special" by several MacIntosh {terminal emulator}s.  These
        emulators, using {Kermit} or {XMODEM} or any other file
        transfer protocol, can separate the incoming file into {fork}s
        and appropriately modify the {Desktop} to display {icon}s,
        types, creation dates, and the like.

        (1995-03-08)

MACDesigner

        A design CASE tool for the Mac from {Excel Software, Inc.}

macdink

        /mak'dink/ To make many incremental and unnecessary cosmetic
        changes to a program or file.  Often the subject of the
        macdinking would be better off without them.  The {Macintosh}
        is said to encourage such behaviour.

        See also {fritterware}, {window shopping}.

        (1994-11-22)

MACE

        A concurrent {object-oriented} language.

Mach

        An operating system kernel under development at
        Carnegie-Mellon University to support distributed and parallel
        computation.  Mach is designed to support computing
        environments consisting of networks of uniprocessors and
        multiprocessors.  Mach is the kernel of the {OSF}/1.

Machiavelli

        An extension of {Standard ML} developed by Peter Buneman &
        Atsushi Ohori of the {University of Pennsylvania} in 1989,
        based on {orthogonal persistence}.

        ["Database Programming in Machiavelli: A Polymorphic Language
        with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM,
        June 1989].

        (1995-02-21)

machinable

        {Machine-readable}.  Having the {softcopy} nature.

machine

        Common term for "computer", usually when considered at the
        hardware level.  The {Turing Machine}, an early example of
        this usage, was however neither hardware nor software, but
        only an idea.

        [Earlier use?]

        (1995-02-15)

machine code

        The representation of a computer program which is actually
        read and interpreted by the computer.  A program in machine
        code consists of a sequence of machine instructions (possibly
        interspersed with data).  Instructions are binary strings
        which may be either all the same size (e.g. one 32-bit word for
        many modern {RISC} {microprocessor}s) or of different sizes,
        in which case the size of the instruction is determined from
        the first word (e.g. {Motorola} {68000}) or byte (e.g. {Inmos}
        {transputer}).  The collection of all possible instructions
        for a particular computer is known as its "{instruction set}".

        Execution of machine code may either be {hard-wired} into the
        {central processing unit} or it may be controlled by
        {microcode}.  The basic execution cycle consists of fetching
        the next instruction from main memory, decoding it
        (determining which operation it specifies and the location of
        any arguments) and executing it by opening various {gate}s
        (e.g. to allow data to flow from main memory into a CPU
        {register}) and enabling {functional unit}s (e.g. signalling to
        the {ALU} to perform an addition).

        Humans almost never write programs directly in machine code.
        Instead, they use a programming language which is translated
        by the computer into machine code.  The simplest kind of
        programming language is {assembly language} which usually has
        a one-to-one correspondence with the resulting machine code
        instructions but allows the use of {mnemonic}s (ASCII strings)
        for the "{op code}s" (the part of the instruction which
        encodes the basic type of operation to perform) and names for
        locations in the program (branch labels) and for variables and
        constants.

        (1995-02-15)

machine cycle

        <processor> The four steps which the {CPU} carries out for
        each {machine language} instruction: fetch, decode, execute,
        and store.  These steps are performed by the {control unit},
        and may be fixed in the logic of the CPU or may be programmed
        as {microcode} which is itself usually fixed (in {ROM}) but
        may be (partially) modifiable (stored in {RAM}).

        The fetch cycle places the current {program counter} contents
        (the address of the next instruction to execute) on the
        {address bus} and reads in the word at that location into the
        {instruction register} (IR).  In {RISC} CPUs instructions are
        usually a single word but in other architectures an
        instruction may be several words long, necessitating several
        fetches.

        The decode cycle uses the contents of the IR to determine
        which {gates} should be opened between the CPU's various
        {functional units} and busses and what operation the {ALU}(s)
        should perform (e.g. add, {bitwise and}).  Each gate allows
        data to flow from one unit to another (e.g. from {register} 0
        to ALU input 1) or enables data from one output onto a certain
        {bus}.  In the simplest case ("{horizontal encoding}") each
        bit of the instruction register controls a single gate or
        several bits may control the ALU operation.  This is rarely
        used because it requires long instruction words (such an
        architecture is sometimes called a {very long instruction
        word} architecture).  Commonly, groups of bits from the IR are
        fed through {decoder}s to control higher level aspects of the
        CPU's operation, e.g. source and destination registers,
        {addressing mode} and {ALU} operation.  This is known as
        {vertical encoding}.  One way {RISC} processors gain their
        advantage in speed is by having simple instruction decoding
        which can be performed quickly.

        The execute cycle occurs when the decoding logic has settled
        and entails the passing of values between the various function
        units and busses and the operation of the ALU.  A simple
        instruction will require only a single execute cycle whereas a
        complex instruction (e.g. subroutine call or one using memory
        {indirect addressing}) may require three or four.
        Instructions in a RISC typically (but not invariably) take
        only a single cycle.

        The store cycle is when the result of the instruction is
        written to its destination, either a {register} or a memory
        location.  This is really part of the execute cycle because
        some instructions may write to multiple destinations as part
        of their execution.

        (1995-04-13)

machine language

        {machine code}

machine learning

        The ability of a machine to improve its performance based on
        previous results.

        {Neural network}s are one kind of machine learning.

        [More examples?  Net resources?  Web page?]

        (1995-02-15)

Mach Interface Generator

        <tool, programming> (MIG) An implementation of a subset of
        {Matchmaker} that generates {C} and {C++} {remote procedure
        call} interfaces for {interprocess communication} between
        {Mach} tasks.

        ["MIG - The Mach Interface Generator", R.P. Draves et al, CS
        CMU, (1989-08-4)].

        (1994-11-22)

machoflops

        /mach'oh-flops/ A pun on "{megaflops}" referring to the
        inflated performance figures often quoted by computer
        manufacturers.  Real {application program}s are lucky to get
        half the quoted speed.

        See {Your mileage may vary}, {benchmark}.

        (1995-02-15)

Mac II

        {Macintosh II}

Mac IIcx

        {Macintosh IIcx}

Macintosh

        <computer> (Mac, Beige Toaster, Maggotbox, Macintoy,
        Macintrash) A range of single user, 32-bit {personal
        computer}s manufactured by {Apple Computer, Inc.} originally
        based on the {Motorola 68000} {microprocessor} family and a
        proprietary {operating system}.  The Mac was Apple's successor
        to the {Lisa}.

        The project was proposed by {Jef Raskin} some time before
        {Steve Jobs}'s famous visit to {Xerox PARC}.  Jobs tried to
        scuttle the Macintosh project and was only joined it later
        because he wasn't trusted to manage the {Lisa} project.

        The {Macintosh user interface} was notable for popularising
        the {graphical user interface}, with its easy to learn and
        easy to use {desktop} metaphor.

        The {Macintosh Operating System} is now officially called
        Mac OS.

        The first Macintosh, introduced in January 1984, had a
        {Motorola 68000} {CPU}, 128K of {RAM}, a small {monochrome}
        screen, and one built-in {floppy disk} drive with an external
        slot for one more, two {serial port}s and a four-voice sound
        generator.  This was all housed in one small plastic case,
        including the screen.  When more memory was available later in
        the year, a 512K Macintosh was nicknamed the "Fat Mac."

        The standard Macintosh screen {resolution} is 72 {dpi} (making
        one {point} = one {pixel}), exactly half the 144 dpi
        resolution of the ancient {Apple Imagewriter} {dot matrix}
        printer.

        The Mac Plus (January 1986) added expandability by providing
        an external {SCSI} port for connecting {hard disk}s, {magnetic
        tape} and other high-speed devices.

        The Mac SE (March 1987) provides from one to four megabytes of
        {RAM}, an optional built-in 20 megabyte hard disk and one
        internal expansion slot for connecting a third-party device.

        The Mac II (March 1987) uses the faster {Motorola 68020} {CPU}
        with a 32-bit bus.

        In 1994 {PowerPC} based Macs, {PowerMacs}, were launched.

        See also {Macintosh file system}, {Macintosh user interface}.

        {Brock Kyle's Macintosh Guide Book
        (http://www.everymac.com/)}.

        (1998-11-02)

Macintosh Common Lisp

        <language> (MCL) {Common Lisp} for the {Apple Macintosh}.

        Guillaume Cartier <cartier@math.uqam.ca> has written some
        libraries.  Version 1.2.

        {(ftp://cambridge.apple.com/pub/mcl2/contrib/)}

        (1992-11-30)

Macintosh file system

        <file system> A file on the {Macintosh} consists of two parts,
        called forks.  The "data fork" contains the data which would
        normally be stored in the file on other operating systems.
        The "resource fork" contains a collection of arbitrary
        attribute/value pairs, including program segments, {icon}
        {bitmaps}, and parametric values.  Yet more information
        regarding Macintosh files is stored by the {Finder} in a
        hidden file, called the "Desktop Database".

        Because of the complications in storing different parts of a
        Macintosh file in non-Macintosh file systems that only handle
        consecutive data in one part, it is common to only send the
        Data fork or to convert the Macintosh file into some other
        format before transferring it.

        (1996-03-03)

Macintosh II

        <computer> (Mac II) A version of {Apple}'s {Macintosh}
        {personal computer}, released in March 1987, using the
        {Motorola 68020} {CPU}, which runs at a higher {clock rate}
        than the {Motorola 68000} used in the original Mac.  The Mac
        II has a full 32-bit data bus instead of a 16-bit bus.  Mac II
        models have built-in 40 to 160 megabyte {hard disks} and can
        take up to eight megabytes of {RAM} (and more as denser memory
        chips arive).

        The Mac II was the first Macintosh to provide a colour
        graphics option, with up to 256 colours on screen at a 640x480
        resolution.  Mac II models are designed for expandability with
        three ({Macintosh IIcx}) or six (II & IIx) built-in {NuBus}
        {expansion slots} for additional {peripheral} and
        {coprocessor} boards.

        (1996-05-25)

Macintosh IIcx

        <computer> (Mac IIcx) A version of {Apple}'s {Macintosh II}
        {personal computer}, introduced in 1989, with a {Motorola
        68030} processor running at 16 MHz and up to 128 MB of {RAM}
        (120 ns, 30-pin {DRAM} chips).  The IIcx requires System 6.0.3
        or later and requires "Mode 32" or "32-bit Enabler" to use
        more than 8MB of RAM.  It was discontinued 1991, and in 1996
        is still considered one of the best-designed Macs ever.

        (1996-05-25)

Macintosh Operating System

        <operating system> (Mac OS) {Apple Computer, Inc.}'s
        proprietary {operating system} for their {Macintosh} family of
        {personal computers}.

        The part of the operating system that simulates the desktop is
        called "{Finder}."  The {multitasking} version of Finder was
        called "{MultiFinder}" until {multitasking} was integrated
        into the core of the OS with the introduction of System 7.0 in
        1990.

        The Macintosh series provides a built-in graphics language,
        called "{QuickDraw}", which provides a {standard} for software
        developers.

        Mac OS 8, scheduled for delivery in July 1997, contains a
        number of significant improvements, including new
        human-interface features, increased system stability and
        performance, a {PowerPC} processor-native Finder, tighter
        integration of {Internet} access through panel-based
        "assistants," Personal Web Sharing, and the ability to run
        {Java applets} and programs through Mac OS Runtime for {Java}.

        See also {Macintosh file system}, {Macintosh user interface}.

        (1997-10-15)

Macintosh user interface

        <operating system> The {graphical user interface} used by
        {Apple Computer}'s {Macintosh} family of {personal computers},
        based on graphical representations of familiar office objects
        (sheets of paper, files, wastepaper bin, etc.) positioned on a
        two-dimensional "{desktop}" workspace.

        Programs and data files are represented on screen by small
        pictures ({icon}s).  An object is selected by moving a {mouse}
        over the real desktop which correspondingly moves the
        {pointer} on screen.  When the pointer is over an icon on
        screen, the icon is selected by pressing the button on the
        mouse.

        A {hierarchical file system} is provided that lets a user
        "{drag}" a document (a file) icon into and out of a {folder}
        (directory) icon.  Folders can also contain other folders and
        so on.  To delete a document, its icon is dragged into a
        {trash can} icon.  For people that are not computer
        enthusiasts, managing files on the Macintosh is easier than
        using the {MS-DOS} or {Unix} {command line interpreter}.

        The Macintosh always displays a row of menu titles at the top
        of the screen.  When a mouse button is pressed over a title, a
        {pull-down menu} appears below it.  With the mouse button held
        down, the option within the menu is selected by pointing to it
        and then releasing the button.

        Unlike the {IBM PC}, which, prior to {Microsoft Windows} had
        no standard {graphical user interface}, Macintosh developers
        almost always conform to the Macintosh interface.  As a
        result, users are comfortable with the interface of a new
        program from the start even if it takes a while to learn all
        the rest of it.  They know there will be a row of menu options
        at the top of the screen, and basic tasks are always performed
        in the same way.  Apple also keeps technical jargon down to a
        minimum.

        Although the Macintosh user interface provides consistency; it
        does not make up for an {application program} that is not
        designed well.  Not only must the application's menus be clear
        and understandable, but the locations on screen that a user
        points to must be considered.  Since the mouse is the major
        selecting method on a Macintosh, mouse movement should be kept
        to a minimum.  In addition, for experienced typists, the mouse
        is a cumbersome substitute for well-designed keyboard
        commands, especially for intensive text editing.

        {Urban legned} has it that the Mac user interface was copied
        from {Xerox}'s {Palo Alto Research Center}.  Although it is
        true that Xerox's {smalltalk} had a GUI and Xerox introduced
        some GUI concepts commercially on the {Xerox Star} computer in
        1981, and that {Steve Jobs} and members of the Mac and {Lisa}
        project teams visited PARC, Jef Raskin, who created the Mac
        project, points out that many GUI concepts which are now
        considered fundamental, such as dragging objects and pull-down
        menus with the mouse, were actually invented at Apple.

        {Pull-down menu}s have become common on {IBM}, {Commodore} and
        {Amiga} computers.  {Microsoft Windows} and {OS/2}
        {Presentation Manager}, {Digital Research}'s {GEM},
        {Hewlett-Packard}'s {New Wave}, the {X Window System}, {RISC
        OS} and many other programs and operating environments also
        incorporate some or all of the desktop/mouse/icon features.

        {Apple Computer} have tried to prevent other companies from
        using some {GUI} concepts by taking legal action against them.
        It is because of such restrictive practises that organisations
        such as the {Free Software Foundation} previously refused to
        support ports of their software to Apple machines, though this
        ban has now been lifted.  [Why?  When?]

        (1996-07-19)

Macintoy

        /mak'in-toy/ The Apple {Macintosh}, considered as a {toy}.
        Less pejorative than {Macintrash}.

Macintrash

        /mak'in-trash"/ The Apple {Macintosh}, as described by a
        hacker who doesn"t appreciate being kept away from the *real
        computer* by the interface.  The term {maggotbox} has been
        reported in regular use in the Research Triangle area of North
        Carolina.  Compare {Macintoy}.

        See also {beige toaster}, {WIMP environment}, {point-and-drool
        interface}, {drool-proof paper}, {user-friendly}.

        (1995-05-02)

MACL

        {Macintosh} {Allegro CL}.

        E-mail: <info-macl@cambridge.apple.com>.

MacLisp

        A dialect of {Lisp} developed at {MIT} AI Lab in 1966, known
        for its efficiency and programming facilities.  Later used by
        {Project MAC}, {Mathlab} and {Macsyma}.  Ran on the {PDP-10}.
        Introduced the {LEXPR} (a function with variable {arity}),
        {macro}s, {array}s, and {CATCH/THROW}.  Was once one of two
        main branches of LISP (the other being {Interlisp}).  In 1981
        {Common LISP} was begun in an effort to combine the best
        features of both.

        ["MACLISP Reference Manual", D.A. Moon
        <moon@cambridge.apple.com>, TR Project MAC, MIT 1974].

MacMinix

        <operating system> The {Macintosh} version of {MINIX}.

        [Details?  URL?]

        (1997-06-17)

Mac OS

        {Macintosh Operating System}

Mac Playmate

        <games> An early example of a pornographic computer game.  Mac
        Playmate runs on the {Macintosh} and involves trying to
        stimulate a simulated woman to orgasm by applying various
        implements to her erogenous zones.

        (1995-02-27)

MACRO

        1. Assembly language for {VAX/VMS}.

        2. {PL/I}-like language with extensions for string processing.
        "MACRO: A Programming Language", S.R. Greenwood, SIGPLAN
        Notices 14(9):80-91 (Sep 1979).

macro

        A name (possibly followed by a {formal argument} list) that is
        equated to a text or symbolic expression to which it is to be
        expanded (possibly with the substitution of {actual
        arguments}) by a macro expander.

        The term "macro" originated in early {assembler}s, which
        encouraged the use of macros as a structuring and
        information-hiding device.  During the early 1970s, macro
        assemblers became ubiquitous, and sometimes quite as powerful
        and expensive as {HLL}s, only to fall from favour as improving
        {compiler} technology marginalised {assembly language}
        programming (see {languages of choice}).  Nowadays the term is
        most often used in connection with the {C preprocessor},
        {Lisp}, or one of several special-purpose languages built
        around a macro-expansion facility (such as {TeX} or {Unix}'s
        {troff} suite).

        Indeed, the meaning has drifted enough that the collective
        "macros" is now sometimes used for code in any special-purpose
        application control language (whether or not the language is
        actually translated by text expansion), and for macro-like
        entities such as the "keyboard macros" supported in some text
        editors (and {PC} {TSR}s or {Macintosh} INIT/CDEV keyboard
        enhancers).

        (1994-12-06)

macro-

        Prefix large.  Opposite of {micro-}.  In the mainstream and
        among other technical cultures (for example, medical people)
        this competes with the prefix {mega-}, but hackers tend to
        restrict the latter to quantification.

macrology

        /mak-rol'*-jee/ 1. Set of usually complex or {crufty}
        {macro}s, e.g. as part of a large system written in {Lisp},
        {TECO}, or (less commonly) {assembler}.

        2. The art and science involved in comprehending a macrology.
        Sometimes studying the macrology of a system is not unlike
        archaeology, ecology, or {theology}, hence the sound-alike
        construction.  See also {boxology}.

Macromedia

        A company supplying {multimedia} and interactive television
        services and digital arts software tools in the US and
        worldwide.  They produce products for {Microsoft Windows} and
        the {Macintosh} including: Macromedia FreeHand, a tool for
        design and illustration; Macromedia Director, an animation and
        authoring tool for multimedia production; Authorware
        Professional, a multiplatform authoring tool for interactive
        learning; MacroModel, a 3D modeling tool for multimedia,
        graphics and product design; SoundEdit 16, a digital sound
        recording and editing system; Fontographer, a typeface editing
        programme; and Action!, a multimedia presentation application.

        Chief Executive Officer: Bud Colligan.

        (1995-01-10)

Macro SAP

        Macro processing modification of SAP.  D.E. Eastwood and D.M.
        McIlroy, unpublished memorandum, Bell Labs 1959.  Led to TRAC.

macrotape

        <storage> /mak'roh-tayp/ An industry-standard reel of
        {magnetic tape}, as opposed to a {microtape}.

        See also {round tape}.

        (1994-10-20)

MACSYMA

        {Project MAC}'s SYmbolic MAnipulator.  The first comprehensive
        {symbolic mathematics} system, written in {Lisp} by Joel Moses
        <moses@larch.lcs.mit.edu> of {MIT} in 1969, later {Symbolics},
        Inc.

        Versions include {Symbolics Macsyma}, {DOE Maxima} (ANL, in
        Common LISP) and {Vaxima}.

        {(ftp://rascal.ics.utexas.edu/pub/maxima-4-155.tar.Z)}.
        E-mail: <macsyma-service@symbolics.com>.

        ["MACSYMA - The Fifth Year", J. Moses, SIGSAM Bulletin 8(3)
        (Aug 1974)].

        (1994-11-01)

MacTcp

        A product providing the {Macintosh} with access to {TCP/IP}
        services.

        [How does it work?  Where is it from?]

MacX

        A package allowing the {Macintosh} to be used as an {X}
        server.

MAD

        1. Michigan Algorithm Decoder.  Developed at U Michigan by
        R. Graham, Bruce Arden <arden@hopper.ee.rochester.edu> and
        Bernard Galler, 1959.  Based on IAL.  For the IBM 704, 709 and
        7090, later ported to Philco, Univac and CDC machines.  MAD
        was one of the first extensible languages: the user could
        define his own operators and data types.  "Michigan Algorithm
        Decoder (The MAD Manual)", U Michigan Computing Center, 1966.
        Sammet 1969, p.205.

        2. Dataflow language.  "Implementation of Data Structures on a
        Data Flow Computer", D.L. Bowen, Ph.D. Thesis, Victoria U
        Manchester, Apr 1981.

Mad/1

        A later, much enhanced version of {MAD}, for the {IBM 360}.
        Michigan's answer to {PL/I}.

Madaline

        A structure of many ADALINE units.

MADCAP

        Math and set problems, for the Maniac II and CDC 6600.
        "MADCAP - A Scientific Compiler for a Displayed Formula
        Texbook Language", M.B.  Wells, CACM 4(1):31-36 (Jan 1961).
        Sammet 1969, pp.271-281.  Versions: Madcap 5 (1964), Madcap 6.
        "The Unified Data Structure Capability in Madcap 6",
        M.B. Wells et al, Intl J Comp Info Sci 1(3) (sep 1972).

MADTRAN

        Early preprocessor that translated FORTRAN to MAD, for gain in
        speed.

maggotbox

        <abuse> /mag'*t-boks/ An even more derogatory term than
        {Macintrash}.

        (1995-01-25)

MAGIC

        An early system on the {Midac} computer.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-25)

magic

        1. As yet unexplained, or too complicated to explain; compare
        {automagically} and (Arthur C.) Clarke's Third Law:

                Any sufficiently advanced technology is
                indistinguishable from magic.

        "TTY echoing is controlled by a large number of magic bits."
        "This routine magically computes the parity of an 8-bit byte
        in three instructions."

        2. Characteristic of something that works although no one
        really understands why (this is especially called {black
        magic}).

        3. (Stanford) A feature not generally publicised that allows
        something otherwise impossible or a feature formerly in that
        category but now unveiled.

        Compare {wizardly}, {deep magic}, {heavy wizardry}.

        For more about hackish "magic" see {Magic Switch Story}.

        (1995-01-25)

magic bullet

        <jargon> (Or "silver bullet" from vampire legends) A term
        widely used in software engineering for a supposed quick,
        simple cure for some problem.  E.g. "There's no silver bullet
        for this problem".

        (1999-01-13)

magic cookie

        1. Something passed between routines or programs that enables
        the receiver to perform some operation; a {capability} ticket
        or {opaque identifier}.  Especially used of small data objects
        that contain data encoded in a strange or intrinsically
        machine-dependent way.  E.g. on non-{Unix} {operating system}s
        with a non-byte-stream model of files, the result of "{ftell}"
        may be a magic cookie rather than a byte offset; it can be
        passed to "{fseek}", but not operated on in any meaningful
        way.  The phrase "it hands you a magic cookie" means it
        returns a result whose contents are not defined but which can
        be passed back to the same or some other program later.

        2. An in-band code for changing graphic rendition (e.g. inverse
        video or underlining) or performing other control functions.
        Some older terminals would leave a blank on the screen
        corresponding to mode-change magic cookies; this was also
        called a {glitch} (or occasionally a "turd"; compare {mouse
        droppings}).

        See also {cookie}.

        (1995-01-25)

magic number

        (Unix, C) 1. In source code, some non-obvious constant whose
        value is significant to the operation of a program and that is
        inserted inconspicuously in-line ({hard-coded}), rather than
        expanded in by a symbol set by a commented "#define".  Magic
        numbers in this sense are bad style.

        2. A number that encodes critical information used in an
        {algorithm} in some opaque way.  The classic examples of these
        are the numbers used in {hash} or {CRC} functions or the
        coefficients in a {linear congruential generator} for
        {pseudo-random} numbers.  This sense actually predates, and
        was ancestral to, the more common sense 1.

        3. Special data located at the beginning of a binary data file
        to indicate its type to a utility.  Under {Unix}, the system
        and various {applications program}s (especially the {linker})
        distinguish between types of executable file by looking for a
        magic number.  Once upon a time, these magic numbers were
        {PDP-11} branch instructions that skipped over header data to
        the start of executable code; 0407, for example, was {octal}
        for "branch 16 bytes relative".  Nowadays only a {wizard}
        knows the spells to create magic numbers.  How do you choose a
        fresh magic number of your own?  Simple - you pick one at
        random.  See?  It's magic!

        *The* magic number, on the other hand, is 7+/-2.  See "The
        magical number seven, plus or minus two: some limits on our
        capacity for processing information" by George Miller, in the
        "Psychological Review" 63:81-97 (1956).  This classic paper
        established the number of distinct items (such as numeric
        digits) that humans can hold in short-term memory.  Among
        other things, this strongly influenced the interface design of
        the phone system.

        (1995-01-25)

Magic Paper

        An early interactive {symbolic mathematics} system.

        [Sammet 1969, p. 510].

        (1995-01-25)

magic smoke

        <electronics, humour> A substance trapped inside {integrated
        circuit} packages that enables them to function (also called
        "blue smoke"; this is similar to the archaic "phlogiston"
        hypothesis about combustion).  Its existence is demonstrated
        by what happens when a chip burns up - the magic smoke gets
        let out, so it doesn't work any more.

        See {Electing a Pope}, {smoke test}.

        {Usenet}ter Jay Maynard tells the following story:

        "Once, while hacking on a dedicated {Zilog Z80} system, I was
        testing code by blowing {EPROM}s and plugging them in the
        system, then seeing what happened.  One time, I plugged one in
        backwards.  I only discovered that *after* I realised that
        {Intel} didn't put power-on lights under the quartz windows on
        the tops of their EPROMs - the die was glowing white-hot.
        Amazingly, the EPROM worked fine after I erased it, filled it
        full of zeros, then erased it again.  For all I know, it's
        still in service.  Of course, this is because the magic smoke
        didn't get let out."

        Compare the original phrasing of {Murphy's Law}.

        (1995-01-25)

Magic Switch Story

        Some years ago, I was snooping around in the cabinets that
        housed the {MIT AI Lab}'s {PDP-10}, and noticed a little
        switch glued to the frame of one cabinet.  It was obviously a
        homebrew job, added by one of the lab's hardware hackers
        (no-one knows who).

        You don't touch an unknown switch on a computer without
        knowing what it does, because you might crash the computer.
        The switch was labelled in a most unhelpful way.  It had two
        positions, and scrawled in pencil on the metal switch body
        were the words "magic" and "more magic".  The switch was in
        the "more magic" position.

        I called another hacker over to look at it.  He had never seen
        the switch before either.  Closer examination revealed that
        the switch had only one wire running to it!  The other end of
        the wire did disappear into the maze of wires inside the
        computer, but it's a basic fact of electricity that a switch
        can't do anything unless there are two wires connected to it.
        This switch had a wire connected on one side and no wire on
        its other side.

        It was clear that this switch was someone's idea of a silly
        joke.  Convinced by our reasoning that the switch was
        inoperative, we flipped it.  The computer instantly crashed.

        Imagine our utter astonishment.  We wrote it off as
        coincidence, but nevertheless restored the switch to the "more
        magic" position before reviving the computer.

        A year later, I told this story to yet another hacker, {David
        Moon} as I recall.  He clearly doubted my sanity, or suspected
        me of a supernatural belief in the power of this switch, or
        perhaps thought I was fooling him with a bogus saga.  To prove
        it to him, I showed him the very switch, still glued to the
        cabinet frame with only one wire connected to it, still in the
        "more magic" position.  We scrutinized the switch and its lone
        connection, and found that the other end of the wire, though
        connected to the computer wiring, was connected to a ground
        pin.  That clearly made the switch doubly useless: not only
        was it electrically nonoperative, but it was connected to a
        place that couldn't affect anything anyway.  So we flipped the
        switch.

        The computer promptly crashed.

        This time we ran for Richard Greenblatt, a long-time {MIT}
        hacker, who was close at hand.  He had never noticed the
        switch before, either.  He inspected it, concluded it was
        useless, got some diagonal cutters and {dike}d it out.  We
        then revived the computer and it has run fine ever since.

        We still don't know how the switch crashed the machine.  There
        is a theory that some circuit near the ground pin was
        marginal, and flipping the switch changed the electrical
        capacitance enough to upset the circuit as
        millionth-of-a-second pulses went through it.  But we'll never
        know for sure; all we can really say is that the switch was
        {magic}.

        I still have that switch in my basement.  Maybe I'm silly, but
        I usually keep it set on "more magic".

        {GLS}

        (1995-02-22)

Magma2

        <language> A language that allows programmability of the
        control environment, e.g. {recursion}, {backtracking},
        {coroutine}s, {nondeterminism}, etc.  Magma2 was the successor
        to {MagmaLISP}.

        ["Magma2: A Language Oriented Toward Experiments in Control",
        Franco Turini, ACM TOPLAS 6(4):468-486 (Oct 1984)].

        (1995-07-30)

MagmaLISP

        <language> The predecessor of {Magma2}.

        ["MagmaLISP: A Machine Language for Artificial Intelligence",
        C. Mantagero et al, Proc 4th Intl Joint Conf Artif Intell,
        1975, pp. 556-561].

        (1995-07-30)

magnetic disk

        <storage> A flat rotating disc covered on one or both sides
        with some magnetisable material.  The two main types are the
        {hard disk} and the {floppy disk}.

        Small areas or "zones" on a magnetic disk are magnetised.  The
        magnetisation is aligned in one of two opposing orientations
        with respect to the recording {head}.  Each zone of
        magnetisation.  The {head} writes data by altering the
        alignment and reads data by detecting current pulses induced
        in a coil as zones with different magnetic alignment pass
        underneath it.

        Data is stored on either or both surfaces of discs in
        concentric rings called "{tracks}".  Each track is divided
        into a whole number of "{sectors}".  Where multiple (rigid)
        discs are mounted on the same axle the set of tracks at the
        same radius on all their surfaces is known as a "{cylinder}".

        Data is read and written by a {disk drive} which rotates the
        discs and positions the read/write "{heads}" over the desired
        track(s).  The latter radial movement is known as "{seeking}".
        There is usually one head for each surface that stores data
        though, for increased performance (from reduced {rotational
        latency}), it is possible, though expensive, to position
        multiple heads at equally spaced angles around the discs.

        Therefore there are two states that can be detected for each
        zone - a change in alignment, or no change.

        Ideally a data bit of one or zero can be recorded in each zone
        of magnetisation, however, if a zero represents an absence of
        magnetic change, the detection of several consecutive zeros
        would imply accurately measuring the length of time of the
        absence, i.e., measuring the time between two magnetic
        changes.  However, the variability of motor speed limits the
        number of consecutive zeros which can be read reliably.

        The best recording methods accurately follow the
        characteristics of the magnetic and rotational aspects in
        recording the disk, to be as dense as possible in recording
        bits.

        Compare {magnetic drum}, {compact disc}, {optical disk},
        {magneto-optical disk}.

        (1997-06-07)

Magnetic Ink Character Recognition

        (MICR) A {character recognition} system using special ink and
        characters which can be magnetised and read automatically.

        MICR is used almost exclusively in the banking industry where
        it is used to print details on cheques to enable automatic
        processing.

        (1995-04-13)

magnetic tape

        <storage> (Or "magtape", "tape" - {paper tape} is now
        obsolete) A data storage medium consisting of a magnetisable
        oxide coating on a thin plastic strip, commonly used for
        {backup} and {archiving}.

        Early industry-standard magnetic tape was half an inch wide
        and wound on removable reels 10.5 inches in diameter.
        Different lengths were available with 2400 feet and 4800 feet
        being common.  {DECtape} was a variation on this "{round
        tape}".

        In modern magnetic tape systems the reels are much smaller and
        are fixed inside a {cartridge} to protect the tape and for
        ease of handling ("{square tape}" - though it's really
        rectangular).  Cartridge formats include {QIC}, {DAT}, and
        {Exabyte}.

        Tape is read and written on a tape drive (or "deck") which
        winds the tape from one reel to the other causing it to move
        past a read/write head.  Early tape had seven parallel tracks
        of data along the length of the tape allowing six bit
        characters plus {parity} written across the tape.  A typical
        recording density was 556 characters per inch.  The tape had
        reflective marks near its end which signaled beginning of tape
        (BOT) and end of tape (EOT) to the hardware.

        Data is written to tape in {blocks} with {inter-block gaps}
        between them.  Each block is typically written in a single
        operation with the tape running continuously during the write.
        The larger the block the larger the data {buffer} required in
        order to supply or receive the data written to or read from
        the tape.  The smaller the block the more tape is wasted as
        inter-block gaps.  Several logical {records} may be combined
        into one physical block to reduce wastage ("{blocked
        records}").  Finding a certain block on the tape generally
        involved reading sequentially from the beginning, in contrast
        to {magnetic disks}.  Tape is not suitable for {random
        access}.  The exception to this is that some systems allow
        {tape marks} to be written which can be detected while winding
        the tape forwards or rewinding it at high speed.  These are
        typically used to separate logical files on a tape.

        Most tape drives now include some kind of {data compression}.
        There are several {algorithms} which provide similar results:
        {LZ} (most), {IDRC} ({Exabyte}), {ALDC} ({IBM}, {QIC}) and
        {DLZ1} ({DLT}).

        See also {cut a tape}, {flap}, {Group Code Recording},
        {spool}, {macrotape}, {microtape}, {Non Return to Zero
        Inverted}, {Phase Encoded}.

        (1997-04-05)

magnetic tape drive

        <storage> (Or "tape drive") A {peripheral} device that reads
        and writes {magnetic tape}.

        (1996-05-25)

magneto-optical disk

        <hardware, storage> Plastic or glass disks coated with a
        compound (often TbFeCo) with special properties.  The disk is
        read by bouncing a low-intensity laser off the disk.
        Originally the laser was infrared, but frequencies up to blue
        may be possible; the shorter the wavelength the higher the
        possible density.  The polarisation of the reflected light
        depends on the polarity of the stored magnetic field.

        To write, a higher-intensity laser is used to heat the
        material up to its Curie point, allowing its magnetisation to
        be altered and "frozen" as it cools.

        {Storage FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/arch-storage/part1/
faq.html)}.

        (1995-03-15)

MAGNUM

        A {database} language for {DEC-10}'s, used internally by
        {Tymshare, Inc.}.  MAGNUM was designed in the late 1970's by
        Dale Jordan, Rich Strauss and Dave McQuoid originally, and was
        written in {BLISS-10}.  It was the world's first commercial
        {relational database}.  It was in the process of being written
        in 1976.

        (1995-01-25)

Magritte

        A {constraint} language for interactive graphical layout by
        J. Gosling.  It solves constraints using algebraic
        transformations.

        ["Algebraic Constraints", J. Gosling, PhD Thesis, TR
        CS-83-132, CMU, May 1983].

        (1994-10-20)

mail

        <messaging> 1. {electronic mail}.

        2. The {Berkeley Unix} program for composing and reading
        {electronic mail}.  It normally uses {sendmail} to handle
        delivery.

        {Unix manual page}: mail(1)

        (1997-12-03)

Mail Application Programming Interface

        {Messaging Application Programming Interface}

mail bomb

        <messaging> To send, or urge others to send, massive amounts
        of {electronic mail} to a single system or person, with intent
        to crash or {spam} the recipient's system.  A successful mail
        bomb may cause the victim's {disk quota} to be exhausted, the
        disk holding his mailbox to fill up, or his computer to spend
        a large proportion of its time processing mail.

        Mail-bombing is sometimes done in retaliation against someone
        persistently abusing {Usenet} and violating {netiquette}.
        While it may inconvenience the intended victim (if they gave
        their real address), it will probably also inconvenience other
        users and administrators of the computers and networks
        involved.  Mailbombing is thus a serious offense itself.

        See {netiquette} for the correct way to respond to perceived
        violations.

        Compare {letterbomb}, {nastygram}.

        (1995-04-04)

mailbox

        1. <messaging> A file belonging to a particular user on a
        particular computer in which recieved {electronic mail}
        messages are stored ready for the user to read them.  A
        mailbox may be just an {electronic mail address} to which
        messages are sent and may not actually correspond to a file if
        the messages are processed automatically, e.g. a {mail server}
        or {mailing list}.

        2. <programming> A destination for interprocess messages in a
        {message passing} system.  A mailbox is a {message} queue,
        usually stored in the memory of the processor on which the
        receiving process is running.  {Primitives} are provided for
        sending a message to a named mailbox and for reading messages
        from a mailbox.

        (1994-10-20)

mail bridge

        <messaging> A {mail gateway} that {forward}s {electronic mail}
        messages between two or more networks if they meet certain
        administrative criteria.

        (1996-02-26)

Mail Exchange Record

        <messaging> (MX Record) A {DNS} resource record type indicating
        which host can handle {electronic mail} for a particular
        {domain}.

        (1996-02-26)

mail exploder

        <messaging> Part of an {electronic mail} delivery system which
        allows a message to be delivered to a list of addresses.  Mail
        exploders are used to implement {mailing list}s.  Users send
        messages to a single address and the mail exploder takes care
        of delivery to the individual {mailboxes} in the list.

        (1996-02-26)

mail filter

        <messaging> A program which sorts and processes incoming
        {mail} based on patterns found in the mail {headers}.

        {procmail} is an example for {Unix}.

        (1996-12-09)

mail gateway

        <messaging> A machine that connects two or more {electronic mail}
        systems (including dissimilar mail systems) and transfers
        messages between them.  Sometimes the mapping and translation
        can be quite complex, and it generally requires a
        {store and forward} scheme whereby the message is received
        from one system completely before it is transmitted to the
        next system, after suitable translations.

        (1996-02-26)

mail hub

        {mail server}

mailing list

        <messaging> (Often shortened in context to "list") 1. An
        {e-mail} address that is an alias (or {macro}, though that
        word is never used in this connection) which is expanded by a
        {mail exploder} to yield many other e-mail addresses.  Some
        mailing lists are simple "reflectors", redirecting mail sent
        to them to the list of recipients.  Others are filtered by
        humans or programs of varying degrees of sophistication; lists
        filtered by humans are said to be "moderated".

        2. The people who receive your e-mail when you send it to such
        an address.

        Mailing lists are one of the primary forms of hacker
        interaction, along with {Usenet}.  They predate {Usenet},
        having originated with the first {UUCP} and {ARPANET}
        connections.  They are often used for private
        information-sharing on topics that would be too specialised
        for or inappropriate to public {Usenet} groups.  Though some
        of these maintain almost purely technical content (such as the
        {Internet Engineering Task Force} mailing list), others (like
        the "sf-lovers" list maintained for many years by Saul Jaffe)
        are recreational, and many are purely social.  Perhaps the
        most infamous of the social lists was the eccentric bandykin
        distribution; its latter-day progeny, {lectroid}s and
        {tanstaafl}, still include a number of the oddest and most
        interesting people in hackerdom.

        Mailing lists are easy to create and (unlike {Usenet}) don't
        tie up a significant amount of machine resources (until they
        get very large, at which point they can become interesting
        torture tests for mail software).  Thus, they are often
        created temporarily by working groups, the members of which
        can then collaborate on a project without ever needing to meet
        face-to-face.

        Requests to subscribe to, or leave, a mailing list should
        ALWAYS be sent to the list's "-request" address (e.g.
        ietf-request@cnri.reston.va.us for the IETF mailing list).
        This prevents them being sent to all recipients of the list
        and ensures that they reach the maintainer of the list, who
        may not actually read the list.  {BITNET} mailing lists are
        different; they are usually maintained by an automatic
        program, {listserv}.  Membership requests for all lists at
        host FOO should be sent to listserv@FOO.

mail path

        {source route}

.mailrc

        <messaging> (mail run commands) The configuration file for the
        standard {Unix} {mail} program.  This file is found in a
        user's {home directory} and can contain special commands to
        set options and define mail aliases.

        See also {rc}.

        (1996-04-09)

mail server

        1. <tool, messaging> A program that distributes files or
        information in response to requests sent via {electronic
        mail}.  Examples on the {Internet} include {Almanac} and
        {netlib}.  Mail servers are also used on {Bitnet}.

        In the days before {Internet} access was widespread and {UUCP}
        mail links were common, mail servers could be used to provide
        remote services which might now be provided via {FTP} or
        {WWW}.

        2. <messaging> (Or "mail hub") A computer used to store and/or
        forward {electronic mail}.

        (1995-05-05)

mail user agent

        <messaging> (MUA) The program that allows the user to compose
        and read {electronic mail} messages.  The MUA provides the
        interface between the user and the {Message Transfer Agent}.
        Outgoing mail is eventually handed over to an MTA for delivery
        while the incoming messages are picked up from where the MTA
        left it (although MUA's running on single-user machines may
        pick up mail using {POP}).

        Popular MUAs for {Unix} include {elm}, {mush}, {pine}, and
        {RMAIL}.

        {FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/setup/unix/par
t2/faq-doc-3.html)}.

        (1996-03-21)

Mail Users' Shell

        <messaging> (mush) A {MUA} for {Unix} and {MS-DOS}.  It has both
        {line-mode} and {full-screen} interfaces as well as a
        {SunView} interface.

        mush provides a very powerful shell interface with a
        {csh}-like {scripting language}, plenty of {environment
        variables}, command-line {aliases}, filename {completion},
        {conditionals}, and command {piping}.

        {z-mail} is a more recent commercial version of mush.

        {Usenet} newsgroup: {news:comp.mail.mush}.

        (1996-02-26)

MAINBOL

        <language> MAcro ImplementatioN of {SNOBOL4}.

        (1997-09-14)

Main Distribution Frame

        <networking> (MDF) The {network closet} containing the main
        {hub}.

        (1995-05-05)

mainframe

        <computer> A term originally referring to the cabinet
        containing the central processor unit or "main frame" of a
        room-filling {Stone Age} batch machine.  After the emergence
        of smaller "{minicomputer}" designs in the early 1970s, the
        traditional {big iron} machines were described as "mainframe
        computers" and eventually just as mainframes.  The term
        carries the connotation of a machine designed for batch rather
        than interactive use, though possibly with an interactive
        {time-sharing} operating system retrofitted onto it; it is
        especially used of machines built by {IBM}, {Unisys} and the
        other great {dinosaurs} surviving from computing's {Stone
        Age}.

        It has been common wisdom among hackers since the late 1980s
        that the mainframe architectural tradition is essentially dead
        (outside of the tiny market for {number crunching}
        {supercomputer}s (see {Cray})), having been swamped by the
        recent huge advances in {integrated circuit} technology and
        low-cost personal computing.  As of 1993, corporate America is
        just beginning to figure this out - the wave of failures,
        takeovers, and mergers among traditional mainframe makers have
        certainly provided sufficient omens (see {dinosaurs mating}).

        Supporters claim that mainframes still house 90% of the data
        major businesses rely on for mission-critical applications,
        attributing this to their superior performance, reliability,
        scalability, and security compared to microprocessors.

        (1996-07-22)

main loop

        The top-level control flow construct in an input- or
        {event-driven} program, the one which receives and acts or
        dispatches on the program's input.  See also {driver}.

main memory

        <storage, architecture> The storage device used by a computer
        to hold the currently executing program and its working data.
        A modern computer's main memory is built from {random access
        memory} {integrated circuits}.  In the old days {ferrite core
        memory} was one popular form of main memory, leading to the
        use of the term "{core}" for main memory.

        Computers have several other sorts of memory, distinguished by
        their access time, storage capicity, cost, and the typical
        lifetime or rate of change of the data they hold.  {Registers}
        in the {CPU} are fast, few, expensive and typically change
        every few machine instructions.  Other kinds are {cache},
        {PROM}, {magnetic disk} (which may be used for {virtual
        memory}), and {magnetic tape}.

        (1996-11-04)

MAINSAIL

        MAchine INdependent SAIL.  From XIDAK, Palo Alto CA, (415)
        855-9271.

maintenance

        <programming> The modification of a software product, after
        delivery, to correct faults, to improve performance or other
        attributes, or to adapt the product to a changed environment.

        Maintenance is an important part of the {software life-cycle}.
        It is expensive in manpower and resources, and one of the aims
        of {software engineering} is to reduce its cost.

        (1996-12-27)

Maisie

        A {C}-based parallel programming language by Wen-Toh Liao
        <wentoh@may.CS.UCLA.EDU>.  Maisie extends C with
        {asynchronous} typed {message passing} and {lightweight
        process}es.  Programs can define, create and destroy
        processes, send and receive messages and manipulate the system
        clock.

        Maisie has been ported to {PVM}/3.1, {Cosmic} Environment and
        {SUN} {socket}s.

        {Version 2.1.1.3 (ftp://cs.ucla.edu/pub/maisie.2.1.1.3.tar.Z)}

        (1993-06-14)

major delivery

        <programming> A (chiefly British) synonym for {major release}.
        E.g, the ninth major release of a piece of software might be
        called MD9.  The {release} notation would be "v9.0".

        (1996-08-04)

Majordomo

        <messaging, tool> A popular {freeware} {mailing list}
        processor which runs under {Unix}.

        See also {Listserv}, {Listproc}.

        [Details?  FTP?]

        (1995-02-22)

major release

        <programming> A {release} of a piece of software which is not
        merely a {revision} or a {bug fix release} but which contains
        substantial changes (e.g., an overhaul of the {interface},
        change in compatibility).

        Traditionally, major releases are numbered as X.0; for
        example, WordPerfect 6.0 is a major release, significantly
        different from any previous version; whereas WordPerfect 6.1
        has only minor changes, and is, thus, only a {revision}.

        See also {major delivery}.

        (1996-08-04)

Make

        <programming, tool> The {Unix} tool to automate the
        recompilation, linking etc. of programs, taking account of the
        interdependencies of {modules} and their modification times.
        Make reads instructions from a "makefile" which specifies a
        set of targets to be built, the files they depend on and the
        commands to execute in order to produce them.

        Most {C} systems come with a make. There is also one produce
        by {GNU}.

        ["Make - A Program for Maintaining Computer Programs",
        A.I. Feldman, TR No 57, Bell Labs Apr 1977].

        (1995-01-05)

Makedoc

        A program from Carleton University, Ottawa that generates
        documentation for Objective C programs.  It will also generate
        a class hierarchy diagram.  The output format is similar to
        that used by StepStone.

makefile

        A script which tells the Unix program "{make}" how to build a
        particular computer program or set of programs.  A makefile
        contains variable assignments and rules of the form

                target: inputs
                        commands

        which say if any of the files in "inputs" has been modified
        more recently than file "target" (or if the target does not
        exist) then execute "commands", which will normally bulid
        "target" from "inputs".

        If make is run with no arguments, it looks for a makefile
        called "Makefile" or "makefile".

        (1995-01-05)

Maker Interchange Format

        (MIF) A language used to describe a {FrameMaker} document in a
        text file.  MIF is used to exchange information between
        FrameMaker and other applications.

        ["Using FrameMaker 4," Windows and Macintosh Version,
        c. 1986-1993 Frame Technology Corporation].

        (1995-01-30)

MAL

        {Micro Assembly Language}

Malamud

        <publication> The book:

        [Malamud, C., "Analyzing Sun Networks", Van Nostrand Reinhold,
        New York, NY, 1992.]

        (1995-04-10)

MALI

        A hardware memory device for {logic programming} computers
        with {real time} {garbage collection}.

mall

        <World-Wide Web> A collection of {World-Wide Web} documents
        featuring commercial products and services, usually served by
        one particualr {Internet} {access provider}.

        (1995-04-10)

malloc

        {C}'s standard library routine for storage allocation.  It
        takes the number of bytes required and returns a pointer to a
        block of that size.  Storage is allocated from a heap which
        lies after the end of the program and data areas.  Memory
        allocated with malloc must be freed explicitly using the
        "free" routine before it can be re-used.

        {gc} is a storage allocator with {garbage collection} that is
        intended to be used as a plug-in replacement for malloc.

MAN

        {Metropolitan Area Network}

man

        <tool> (manual) The {Unix} command for reading on-line
        {documentation}.

        See {Unix manual page}.

        (1997-01-19)

management

        1. Corporate power elites distinguished primarily by their
        distance from actual productive work and their chronic failure
        to manage (see also {suit}).  Spoken derisively, as in
        "*Management* decided that ...".

        2. Mythically, a vast bureaucracy responsible for all the
        world's minor irritations.  Hackers' satirical public notices
        are often signed "The Mgt"; this derives from the
        "Illuminatus!" novels.

        (1995-02-28)

Management Information Base

        (MIB) A {database} of managed objects acessed by {network
        management} {protocol}s.  An {SNMP} MIB is a set of parameters
        which an {SNMP} {management station} can query or set in the
        {SNMP agent} of a network device (e.g. {router}).

        {SNMP} has two {standard} MIBs.  The first, MIB I, was
        established in {RFC 1156}, was defined to manage
        {TCP/IP}-based {internet}s.  MIB II, defined in {RFC 1213}, is
        basically an update to MIB I.

        Standard minimal MIBs have been defined, and many hardware
        (and certain software, e.g. {DBMS}) providers have developed
        private MIBs in {ASN.1} format allowing them to be compiled
        for use in a {Nework Management System}.  In theory, any {SNMP
        manager} can talk to any {SNMP agent} with a properly defined
        MIB.

        See also {client-server model}.

        (1994-11-14)

Management Information System

        <application> (MIS) A computer system, usually based on a
        {mainframe} or {minicomputer}, designed to provide management
        personnel with up-to-date information on an oraganisation's
        performance, e.g. inventory and sales.  These systems output
        information in a form that is useable by managers at all
        levels of the organisation: strategic, tactical, and
        operational.  A good example of an MIS report is an annual
        report for a stockholder (a scheduled report).

        {Boyd & Fraser's home page (http://www.bf.com/bf.html)}

        [Que's Computer User's Dictionary Second Edition, 1992].

        (1995-10-22)

Management Information Systems

        {Management Information System}

Manchester Autocode

        The predecessor of {Mercury Autocode}.

        ["The Programming Strategy Used with the Manchester University
        Mark I Computer", R.A.  Brooker, Proc IEE 103B Suppl:151-157,
        1956].

        (1995-02-08)

Manchester encoding

        <communications, protocol> A method of transmitting bits which
        enables the receiver to easily synchronise with the sender.

        A simple way of signalling bits might be to transmit a high
        voltage for some period for a 1-bit and a low voltage for a 0
        bit:

         Bits Sent:             1     1     0     0

         Signal:      High    ___________
                      Low                |___________

         Time: ->            .     .     .     .     .

        However, when several identical bits are sent in succession,
        this provides no information to the receiver about when each
        bit starts and stops.

        Manchester encoding splits each bit period into two, and
        ensures that there is always a transition between the signal
        levels in the middle of each bit.  This allows the receiver to
        synchronise with the sender.

        In normal Manchester encoding, a 1-bit is transmitted with a
        high voltage in the first period, and a low voltage in the
        second, and vice verse for the 0 bit:

         Bits Sent:             1     1     0     0

         Signal:      High    __    __       __    __
                      Low       |__|  |_____|  |__|

         Time: ->            .  '  .  '  .  '  .  '  .

        In Differential Manchester encoding, a 1-bit is indicated by
        making the first half of the signal equal to the last half of
        the previous bit's signal and a 0-bit is indicated by making
        the first half of the signal opposite to the last half of the
        previous bit's signal.  That is, a zero bit is indicated by a
        transition at the beginning of the bit.

        Like normal Manchester encoding, there is always a transition
        in the middle of the transmission of the bit.

               Differential Manchester Encoding

         Bits Sent:            1     1    0     0

         Signal:      High  ____       __    __    __
                      Low       |_____|  |__|  |__|

         Time: ->            .  '  .  '  .  '  .  '  .

        With each bit period half as long, twice as much {bandwidth}
        is required when using either of the Manchester encoding
        schemes.

        (1995-11-23)

Mandala

        <language> A system based on {Concurrent Prolog}, developed at
        {ICOT}, Japan.

        ["Mandala: A Logic Based Knowledge Programming System",
        K. Furukawa et al, Intl Conf 5th Gen Comp Sys 1984].

        (1995-11-23)

Mandelbrot, Benoit

        {Benoit Mandelbrot}

Mandelbrot set

        <mathematics, graphics> (After its discoverer, {Benoit
        Mandelbrot}) The set of all {complex numbers} c such that

                | z[N] | < 2

        for arbitrarily large values of N, where

                z[0] = 0
                z[n+1] = z[n]^2 + c

        The Mandelbrot set is usually displayed as an {Argand
        diagram}, giving each point a colour which depends on the
        largest N for which | z[N] | < 2, up to some maximum N which
        is used for the points in the set (for which N is infinite).
        These points are traditionally coloured black.

        The Mandelbrot set is the best known example of a {fractal} -
        it includes smaller versions of itself which can be explored
        to arbitrary levels of detail.

        {The Fractal Microscope
        (http://www.ncsa.uiuc.edu/Edu/Fractal/Fractal_Home.html/)}.

        (1995-02-08)

mandelbug

        <jargon, programming> /man'del-buhg/ (From the {Mandelbrot
        set}) A {bug} whose underlying causes are so complex and
        obscure as to make its behaviour appear chaotic or even
        {nondeterministic}.  This term implies that the speaker thinks
        it is a {Bohr bug}, rather than a {heisenbug}.

        See also {schroedinbug}.

        (1995-02-08)

manged

        /mahnjd/ [probably from the French "manger" or Italian
        "mangiare", to eat; perhaps influenced by English "mange",
        "mangy"] Refers to anything that is mangled or damaged,
        usually beyond repair.  "The disk was manged after the
        electrical storm."  Compare {mung}.

mangle

        Used similarly to {mung} or {scribble}, but more violent
        in its connotations; something that is mangled has been
        irreversibly and totally trashed.

mangler

        [DEC] A manager.  Compare {mango}; see also {management}.
        Note that {system mangler} is somewhat different in
        connotation.

mango

        <jargon> /mang'go/ (Originally in-house jargon at {Symbolics})
        A manager.

        Compare {mangler}.  See also {devo} and {doco}.

        (1995-03-21)

man page

        {Unix manual page}

mantissa

        1. <programming> The part of a {floating point} number which,
        when multiplied by its {radix} raised to the power of its
        {exponent}, gives its value.  The mantissa may include the
        number's sign or this may be considered to be a separate part.

        2. <mathematics> The fractional part of a {logarithm}.

        (1996-06-15)

manual testing

        <testing> That part of software testing that requires human
        input, analysis, or evaluation.

        (1996-12-27)

Manufacturer Resource Planning

        <application> (MRP II) A system based on {MRP} which allows
        manufacturers to optimise materials, procurement,
        manufacturing processes, etc., and provide financial and
        planning reports.

        In the late 1970s and early 1980s, manufacturers integrated
        MRP and other manufacturing and business functions.  This
        renaissance is commonly known as Manufacturing Resource
        Planning (MRP II).  According to the American Production and
        Inventory Control Society, Inc. (APICS), MRP II is a method
        for the effective planning of all resources of a manufacturing
        company.  Ideally, it addresses operational planning in units,
        financial planning in dollars, and has a simulation capability
        to answer "what if" questions.  It is made up of a variety of
        linked functions: business planning, sales and operations
        planning, production scheduling, material requirements
        planning (MRP), capacity requirements planning and the
        execution support systems for capacity and material.  Output
        from these systems is integrated with financial reports such
        as the business plan, purchase commitment report, shipping
        budget and inventory projections in dollars.  Manufacturing
        resource planning is a direct outgrowth and extension of
        closed-loop MRP.

        See also {Enterprise Resource Planning}, {SAP} R/2, R/3, and
        {Baan}.

        (1999-02-16)

Manufacturers Automation Protocol

        {Manufacturing Automation Protocol}

Manufacturing Automation Protocol

        <protocol> (MAP) A set of {protocols} developed by General
        Motors based on {Token Bus} ({IEEE 802.4}) and giving
        predictable {real-time} response.

        (1994-10-21)

manularity

        /man"yoo-la"ri-tee/ ("manual" + "granularity") A notional
        measure of the manual labor required for some task,
        particularly one of the sort that {automation} is supposed to
        eliminate.  "Composing English on paper has much higher
        manularity than using a text editor, especially in the
        revising stage."  Hackers tend to consider manularity a
        symptom of primitive methods; in fact, a true hacker
        confronted with an apparent requirement to do a computing task
        {by hand} will inevitably seize the opportunity to build
        another tool (see {toolsmith}).

        (1994-10-26)

MAO

        An early {symbolic mathematics} system.

        [A. Rom, Celest Mech 1:309-319 (1969)].

        (1995-02-10)

MAP

        1. <protocol> {Manufacturing Automation Protocol}.

        2. {Mathematical Analysis without Programming}.

        (1996-12-01)

map

        1. <mathematics> {function}.

        2. <programming> In {functional programming}, the most common
        {higher-order function} over lists.  Map applies its first
        argument to each element of its second argument (a list) and
        returns the list of results.

                map :: (a -> b) -> [a] -> [b]
                map f []     = []
                map f (x:xs) = f x : map f xs

        This can be generalised to types other than lists.

        (1997-11-05)

MAPI

        {Messaging Application Programming Interface}

Maple

        A {symbolic mathematics} package by B. Char, K. Geddes,
        G. Gonnet, M. Monagan and S. Watt of the {University of
        Waterloo}, Canada and {ETH} Zurich, Switzerland in 1980.
        Version: Maple V.

        E-mail: <wmsi@daisy.waterloo.edu>.  Mailing list:
        glabahn@daisy.waterloo.edu.

        (1994-10-21)

mapping

        {function}

marbles

        <jargon> (From the mainstream "lost his marbles") The minimum
        needed to build your way further up some hierarchy of tools or
        abstractions.  After a bad system {crash}, you need to
        determine if the machine has enough marbles to come up on its
        own, or enough marbles to allow a rebuild from {backups}, or
        if you need to rebuild from scratch.  "This {compiler} doesn't
        even have enough marbles to compile {hello, world}."

        (1998-05-21)

Marc Andreessen

        <person> The man who founded {Netscape Communications
        Corporation} in April 1994 with {Dr. James H. Clark}.
        Andreessen has been a director since September 1994.

        As an undergraduate at the {University of Illinois} in
        Champaign, Andreessen created the {Mosaic} {web browser}
        prototype with a team of students and staff at the
        university's {National Center for Supercomputing Applications}
        (NCSA).  With a friendly, {point-and-click} method for
        {navigating} the {Internet} and free distribution to network
        users, NCSA Mosaic gained an estimated two million users
        worldwide in just over one year.  Andreessen earned his
        bachelor of science degree in computer science at the
        University of Illinois in 1993.

        {Home
        (http://www.netscape.com/columns/techvision/index.html)}.

        (1999-04-12)

marginal

        <jargon> 1. Extremely small.  "A marginal increase in {core}
        can decrease {GC} time drastically."  In everyday terms, this
        means that it is a lot easier to clean off your desk if you
        have a spare place to put some of the junk while you sort
        through it.

        2. Of extremely small merit.  "This proposed new feature seems
        rather marginal to me."

        3. Of extremely small probability of {win}ning.  "The power
        supply was rather marginal anyway; no wonder it fried."

        (1994-10-21)

Marginal Hacks

        <humour> Margaret Jacks Hall, a building into which the
        {Stanford AI Lab} was moved near the beginning of the 1980s
        (from the {D.C. Power Lab}).

        (1998-05-21)

Maril

        Machine description language used by the {Marion} code
        generator.

        ["The Marion System for Retargetable Instruction Scheduling",
        D.G. Bradlee et al, SIGPLAN Notices 26(6):229-240 (June
        1991)].

Mark 1

        <computer> (Or "Automatic Sequence Controlled Calculator") A
        {first generation computer} developed in 1944 by {Howard
        Aiken} of {Harvard University}.  The Mark 1 is seen as the
        first full-sized digital computer.  It weighed 5 tons, had 500
        miles of wiring, was used only for numeric calculations, and
        took three seconds to carry out one multiplication.

        [Mechanism?  Capacity?  Programmability?]

        (1996-11-24)

marketroid

        /mar'k*-troyd/ (Or "marketing slime", "marketeer", "marketing
        droid", "marketdroid") A member of a company's marketing
        department, especially one who promises users that the next
        version of a product will have features that are not actually
        scheduled for inclusion, are extremely difficult to implement,
        and/or are in violation of the laws of physics; and/or one who
        describes existing features (and misfeatures) in ebullient,
        buzzword-laden adspeak.  Derogatory.

        Compare {droid}.

        (1995-02-23)

Markov

        See {Andrei Markov}, {Markov chain}, {Markov model}, {Markov
        process}.

        (1995-02-23)

Markov chain

        <probability> (Named after {Andrei Markov}) A model of
        sequences of events where the probability of an event
        occurring depends upon the fact that a preceding event
        occurred.

        A {Markov process} is governed by a Markov chain.

        In {simulation}, the principle of the Markov chain is applied
        to the selection of samples from a probability density
        function to be applied to the model.  {Simscript} II.5 uses
        this approach for some modelling functions.

        [Better explanation?]

        (1995-02-23)

Markov model

        A model or {simulation} based on {Markov chain}s.

Markov process

        A process in which the sequence of events can be described by
        a {Markov chain}.

        (1995-02-23)

Markowitz

        The author of the original {Simscript} language.

mark-sweep garbage collection

        Each cell has a bit reserved for marking which is clear
        initially.  During garbage collection all active cells are
        traced from the root and marked.  Then all cells are examined.
        Unmarked cells are freed.

markup

        <text> In computerised document preparation, a method of
        adding information to the text indicating the logical
        components of a document, or instructions for layout of the
        text on the page or other information which can be interpreted
        by some automatic system.

        For example, the source of {this dictionary} is marked up by
        enclosing cross-references in curly braces which are
        significant to the {World-Wide Web} server software.

        (1995-03-30)

Marlais

        Version 0.2a

        interpreter

        Brent Benson <brent@ssd.csd.harris.com>

        Marlais is a simple-minded interpreter for a programming
        language strongly resembling Dylan [1].  It is not intended as
        a final release, but rather to fill a perceived void where
        Dylan implementations are concerned.  This is a "hackers
        release" and is intended as a vehicle for education,
        experimentation and also to encourage people to port it to
        different architectures, add features, and fix bugs.  Marlais
        is alpha software and should not be used by people desiring
        reliability!

        ports: Sun-3, Sun-4, VAX/BSD, OS/2, Linux, Sequent Symmetry,
        Encore, HP-UX, Ultrix, SGI, Sony News, A/UX

        {(ftp://travis.csd.harris.com/pub/marlais-0.2a.tar.gz)}

        (1993/09/23)

Mars

        A legendary tragic failure, the archetypal Hacker Dream Gone
        Wrong.  Mars was the code name for a family of PDP-10
        compatible computers built by Systems Concepts (now, The SC
        Group): the multi-processor SC-30M, the small uniprocessor
        SC-25M, and the never-built superprocessor SC-40M.  These
        machines were marvels of engineering design; although not much
        slower than the unique {Foonly} F-1, they were physically
        smaller and consumed less power than the much slower DEC KS10
        or Foonly F-2, F-3, or F-4 machines.  They were also
        completely compatible with the DEC KL10, and ran all KL10
        binaries (including the operating system) with no
        modifications at about 2--3 times faster than a KL10.

        When DEC cancelled the Jupiter project in 1983, Systems
        Concepts should have made a bundle selling their machine into
        shops with a lot of software investment in PDP-10s, and in
        fact their spring 1984 announcement generated a great deal of
        excitement in the PDP-10 world.  {TOPS-10} was running on the
        Mars by the summer of 1984, and {TOPS-20} by early fall.

        Unfortunately, the hackers running Systems Concepts were much
        better at designing machines than at mass producing or selling
        them; the company allowed itself to be sidetracked by a bout
        of perfectionism into continually improving the design, and
        lost credibility as delivery dates continued to slip.  They
        also overpriced the product ridiculously; they believed they
        were competing with the KL10 and VAX 8600 and failed to reckon
        with the likes of Sun Microsystems and other hungry startups
        building workstations with power comparable to the KL10 at a
        fraction of the price.

        By the time SC shipped the first SC-30M to Stanford in late
        1985, most customers had already made the traumatic decision
        to abandon the PDP-10, usually for VMS or Unix boxes.  Most of
        the Mars computers built ended up being purchased by
        {CompuServe}.

        This tale and the related saga of {Foonly} hold a lesson for
        hackers: if you want to play in the {Real World}, you need to
        learn Real World moves.

Marseille Prolog

        <language> One of the two main dialects of {Prolog}, the other
        being {Edinburgh Prolog}.  The difference is largely {syntax}.
        The original Marseille Interpreter (1973) was written in
        {FORTRAN}.

        [Developed by?]

        (1998-03-16)

marshaling

        <spelling> Alternative US spelling of "{marshalling}".

        (1998-03-16)

marshalling

        <communications> (US -ll- or -l-) The process of packing one
        or more items of data into a {message buffer}, prior to
        transmitting that message buffer over a communication channel.
        The packing process not only collects together values which
        may be stored in non-consecutive memory locations but also
        converts data of different types into a standard
        representation agreed with the recipient of the message.

        (1994-12-02)

MARSYAS

        MARshall SYstem for Aerospace Simulation.

        A software system for digital simulation of large physical
        systems.

        ["MARSYAS - A Software System for the Digital Simulation of
        Physical Systems", H. Trauboth et al, Proc SJCC, 36 (1970)].

        (1994-12-02)

Martian

        {Packet}s that turn up unexpectedly on the wrong {network}
        because of bogus {routing} entries.  Also a packet which has
        an altogether bogus (non-registered or ill-formed) {internet
        address}, such as the test loopback interface [127.0.0.1].
        Such a packet will come back labelled with a source address
        that is clearly not of this earth.  "The domain server is
        getting lots of packets from Mars.  Does that gateway have a
        martian filter?"

Martin Marietta Laboratories Moorestown

        {(http://atlgw.atl.ge.com/)}

        Address: Building 145, Moorestown Corporate Center,
        Moorestown, NJ 08057, USA.

        (1995-02-06)

MARVIN

        U Dortmund, 1984.  Applicative language based on Modula-2,
        enhanced by signatures (grammars) terms (trees) and attribute
        couplings (functions on trees).  Used for specification of
        language translators.

        ["MARVIN - A Tool for Applicative and Modular Compiler
        Specification", H.  Ganziger et al, Forsch 220, U Dortmund,
        Jul 1986].

Mary

        <language> An extensible, machine-oriented superset of
        {ALGOL68} developed by Mark Rain.

        Mary is maintained (and used) by {Kvatro Telecom AS}.
        Although dated, it still offers a nice strongly typed {3GL}
        with {macros} but without most of {C}'s flaws.

        It runs on {SPARC} and {x86} computers.

        Hidden on the back cover of the manual: MARY HAD A LITTLE LAMB
        - COERCION IMPOSSIBLE.

        ["Mary Programmer's Reference Manual", M. Rain et al, R Unit,
        Trondheim Norway, 1974].

        ["Operator Expressions in Mary", M. Rain, SIGPLAN Notices
        8(1), Jan 1973].

        (1998-11-10)

MAS

        Modula-2 Algebra System.  Runs on {IBM PC}, {Atari}, {Amiga}.

        {(ftp://alice.fmi.uni-passau.de)}

        ["Modula-2 Algebra System", H. Kredel, Proc DISCO 90 Capri,
        LNCS 429, Springer 1990, pp270-271].

MASCOT

        Modular Approach to Software Construction Operation and Test:
        a method for software design aimed at real-time embedded
        systems from the Royal Signals and Research Establishment, UK.

Mask Read Only Memory

        <storage> (MROM) A kind of {ROM} in which the memory contents
        are determined by one of the masks used to manufacture the
        {integrated circuit}.  MROM can give high storage density
        (bits per millimeter squared) making it a cheap solution for
        high volume applications.

        [Other ROM types?]

        (1995-04-22)

MASM

        {Microsoft} {Assembler} for {MS-DOS}.

        (1995-04-22)

MasPar Unity

        A translator from {UNITY} to {MPL} by Martin Huber, University
        of Karlsruhe, Germany.  Version 1.0.

        {(ftp://SanFrancisco.ira.uka.de/pub/maspar/maspar_unity.tar.Z)}.
        E-mail: Lutz Prechelt <prechelt@ira.uka.de>.

masquerading

        1. <networking> "{NAT}" ({Linux} {kernel} name).

        2. <messaging> Hiding the names of internal e-mail {client}
        and {gateway} machines from the outside world by rewriting the
        "From" address and other {headers} as the message leaves the
        organisation.

        This is good practise because external users do not need to
        know about internal changes in message routing.  The external
        mail gateway needs to know how to route incoming replies back
        to the original sender.

        (1998-03-03)

Massachusetts Institute of Technology

        (MIT) An independent, coeducational university located in
        Cambridge, MA, USA.  Its best-known computer-related labs are
        the {Artificial Intelligence Lab}, the {Lab for Computer
        Science} and the Media Lab.  It is also known for its {hack}s
        or practical jokes, such as {The Great Dome Police Car Hack
        (http://the-tech.mit.edu/Bulletins/hack.html)}.  Resident
        computer {hacker}s include {Richard Stallman}, {Gerald
        Sussman} and {Tom Knight}.

        See also {6.001}.

        {(http://web.mit.edu/)}

massage

        Vague term used to describe "smooth" transformations of a data
        set into a different form, especially transformations that do
        not lose information.  Connotes less pain than {munch} or
        {crunch}.  "He wrote a program that massages {X bitmap} files
        into {GIF} format."  Compare {slurp}.

Massey Hope

        <language, functional programming> A refinement of {Hope+C} by
        Nigel Perry <N.Perry@massey.ac.nz> of {Massey University}, NZ,
        with improved {syntax}.

        {Concurrent Massey Hope} is derived directly from Massey
        Hope.

        (1999-08-04)

master

        {botmaster}

Matchmaker

        A language for specifying and automating the generation of
        multi-lingual interprocess communication interfaces.  {MIG} is
        an implementation of a subset of Matchmaker.

        (1994-11-22)

Material Resource Planning

        <application> (MRP) A system for effectively managing material
        requirements in a manufacturing process.

        Information Systems have long been an important part of the
        manufacturing environment.  In the 1960s, manufacturers
        developed Material Resource Planning (MRP).  According to the
        American Production and Inventory Control Society,
        Inc. (APICS), MRP is a set of techniques that uses bill of
        material data, inventory data, and the master production
        schedule to calculate requirements for materials.  It makes
        recommendations to release replenishment orders for materials.
        Furthermore, because it it time-phased, it makes
        recommendations to reschedule open orders when due dates and
        need dates are not in phase.  Time-phased MRP begins with the
        items listed on the Master Production Schedule and determines
        the quantity of all components and materials required to
        fabricate those items and the date that the components and
        material are required.  Time-phased MRP is accomplished by
        exploding the bill of material, adjusting for inventory
        quantities on hand or on order and offsetting the net
        requirements by the appropriate lead times.

        See also {Manufacturer Resource Planning}

        (1999-02-16)

Mathcad

        A {symbolic mathematics} environment.

Mathematica

        <tool, mathematics> A popular {symbolic mathematics} and
        graphics system, developed in 1988 by Stephen Wolfram and sold
        by {Wolfram Research}.  The language emphasises rules and
        {pattern-matching}.  The name was suggested by {Steve Jobs}.

        {Home (http://www.wri.com/mathematica/)}

        {Stanford FTP (ftp://otter.stanford.edu/)}, {NCSA FTP
        (ftp://ftp.ncsa.uiuc.edu/)}.

        Mailing list: mathgroup-request@yoda.ncsa.uiuc.edu.

        {Usenet} newsgroup: {news:comp.soft-sys.math.mathematica}.

        ["Mathematica: A System for Doing Mathematics by Computer",
        Stephen Wolfram, A-W 1988].

        (1995-05-01)

Mathematical Analysis without Programming

        (MAP) An On-line system for mathematics under {CTSS}.

        [Sammet 1969, p. 240].

        (1995-02-10)

Mathematics in Recognizable Form Automatically Compiled

        <language> (MIRFAC) An early interactive system resembling
        {BASIC} using typewriter output with special mathematical
        symbols.

        [Sammet 1969, pp. 281-284].

        (1997-08-01)

MATHLAB

        Symbolic math system, MITRE, 1964.  Later version: MATHLAB 68
        (PDP-6, 1967).

        ["The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on
        Symbolic and Algebraic Manip, ACM (Mar 1971)].

        [Sammet 1969, p. 498].

MATH-MATIC or MATHMATIC

        Alternate name for AT-3.  Early, pre-FORTRAN
        language for UNIVAC I or II.  Sammet 1969.

math-out

        (Possibly from "white-out", the blizzard variety) A paper or
        presentation so encrusted with mathematical or other formal
        notation as to be incomprehensible.  This may be a device for
        concealing the fact that it is actually {content-free}.

        See also {numbers}, {social science number}.

        (1994-12-14)

MathWorks

        {The MathWorks, Inc.}

MATLAB

        An interactive program from {The MathWorks} for
        high-performance numeric computation and {visualisation}.
        MATLAB integrates {numerical analysis}, {matrix} computation,
        {signal processing}, and graphics in an easy-to-use
        environment.  MATLAB is built on sophisticated matrix software
        for analysing {linear equation}s.  The tools supplied can be
        used for applied mathematics, physics, chemistry, engineering,
        finance and other areas dealing with complex numerical
        calculations.

        {(http://www.mathworks.com/matlab.html)}

        (1994-12-14)

Matrix

        [FidoNet]  1. What the Opus BBS software and sysops call
        {FidoNet}.

        2. Fanciful term for a {cyberspace} expected to emerge from
        current networking experiments (see {network, the}).

        3. The totality of present-day computer networks.

Matrix Compiler

        Early matrix computations on UNIVAC.  Sammet 1969, p.642.

MATRIX MATH

        <language> An early system on the {UNIVAC I} or II.

        [Listed in CACM 2(5):1959-05-16].

        (1997-02-27)

Matrix Math eXtensions

        <processor> (MMX) (NOT an acronym for "MultiMedia eXtension",
        according to Intel, but an Intel brand name) A set of 57 extra
        instructions built into some versions of {Intel}'s {Pentium}
        {microprocessors} for supporting {SIMD} operations on
        {multimedia} and communications data types.

        MMX-enhanced processors are due to be released early in 1997.
        They will be fully compatible with previous Intel processors
        and software but software will only benefit if it is written
        to use the new instructions.  They can handle many common
        multimedia operations, such as {digital signal processing},
        normally handled by a separate {sound card} or {video card}.

        (1996-12-21)

MAU

        {Media Access Unit}

mawk

        <language, tool> An faster implementation of {nawk} written by
        Mike Brennan <brennan@bcsaic.boeing.com> in 1991 and
        distributed under {GPL} but distinct from {GNU}'s {gawk}.

        Interpreter version 1.1.3 has been ported to {Sun 3}, {Sun
        4}/{SunOS} 4.0.3; {Vax}/{BSD} 4.3, {ULTRIX} 4.1; {Stardent}
        3000/{SYSV}R3; {DECStation}/{ULTRIX} 4.1, {MS-DOS}/{Turbo
        C++}.

        {(ftp://oxy.edu/public/mawk)}

        (1993-03-01)

maximal free expression

        (MFE) A {free expression} is sub-expression of a {lambda
        abstraction} not containing the {bound variable}.  A maximal
        free expression is a free expression not contained within any
        other free expression.  See {full laziness}.

MAXIMOP

        "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc
        BCS Symp on Job Control Languages--Past Present and Future,
        NCC, Manchester, ENgland 1974.

maximum Maytag mode

        <storage, humour> (From the US brand of washing machine) What
        a {washing machine} or, by extension, any {hard disk} is in
        when it's being used so heavily that it's shaking like an old
        Maytag with an unbalanced load.  If prolonged for any length
        of time, can lead to disks becoming {walking drives}.

        (1997-07-22)

maximum seek time

        <storage> (Or full stroke seek time) The time it takes to
        {seek} over all {tracks}, i.e., from the innermost to the
        outermost or vice versa.  The maximum seek time gives a
        worst-case measure of the speed of the drive which is useful
        in some {real-time} applications where it is important that
        data flows continuously (such as video editing or CD
        recording).

        (1997-07-15)

maximum segment size

        <networking> (MSS) The maximum amount of {TCP} data that a
        {node} can send in one {segment}.  This should be the size of
        the receiver's reassembly buffer to try to avoid
        {fragmentation}.

        The equivalent at the {physical layer} is "{Maximum
        Transmission Unit}".

        (1998-03-06)

Maximum Transmission Unit

        <networking> (MTU) The largest {frame} which may be sent on a
        physical medium.

        See also {fragmentation}.

        (1995-02-08)

Maxis Software

        The developers of {SimCity} and {SimCity 2000}.

        {Home (http://www.maxis.com/)}.

        Address: 2 Theatre Square, Suite 230, Orinda, CA 94563-3346,
        USA.

        Telephone: +1 (800) 33-MAXIS.

        (1995-02-08)

MB

        <unit> (Or "Mb") {megabytes} or {megabits}.  When referring to
        the size or data transfer rate of a storage device which is
        accessed in multiples of eight bits (e.g. {RAM}, {hard disk})
        this almost certainly means megabytes, but when referring to
        the data transfer rate of a communications system it probably
        means {megabits}.  Some years ago, it is claimed, "MB" always
        meant megabytes and "Mb" meant megabits but recently this
        useful distinction has been lost.

        (1996-09-22)

MBASIC

        {Microsoft} BASIC.

Mbogo, Dr. Fred

        /*m-boh'goh, dok'tr fred/ [Stanford] The archetypal man you
        don't want to see about a problem, especially an incompetent
        professional; a shyster.  "Do you know a good eye doctor?"
        "Sure, try Mbogo Eye Care and Professional Dry Cleaning."  The
        name comes from synergy between {bogus} and the original
        Dr. Mbogo, a witch doctor who was Gomez Addams' physician on
        the old "Addams Family" TV show.  Compare {Bloggs Family,
        the}, see also {fred}.

MBONE

        Virtual Internet Backbone for Multicast IP.

        {IP-Multicast} is the {class-D} addressing scheme in {IP}
        implemented by Steve Deering at {Xerox PARC}.  It was adopted
        at the {IETF} March 1992 meeting and acquired the name MBONE
        after the July 1992 IETF meeting.

        IP Multicast-based routing allows distributed applications to
        achieve {real-time} communication over {IP} {wide area
        network}s through a lightweight, highly {thread}ed model of
        communication.

        Each network-provider participant in the MBONE provides one or
        more IP multicast routers to connect with tunnels to other
        participants and to customers.  The multicast routers are
        typically separate from a network's production routers since
        most production routers don't yet support IP multicast.  Most
        sites use workstations running the mrouted program, but the
        experimental MOSPF software for Proteon routers is an
        alternative.

        It is best if the workstations can be dedicated to the
        multicast routing function to avoid interference from other
        activities and so there will be no qualms about installing
        kernel patches or new code releases on short notice.  Since
        most MBONE nodes other than endpoints will have at least three
        tunnels, and each tunnel carries a separate (unicast) copy of
        each packet, it is also useful, though not required, to have
        multiple network interfaces on the workstation so it can be
        installed parallel to the unicast router for those sites with
        configurations like this:

                        +----------+
                        | Backbone |
                        |   Node   |
                        +----------+
                             |
         ------------------------------------------ External DMZ Ethernet
                  |               |
             +----------+    +----------+
             |  Router  |    |  mrouted |
             +----------+    +----------+
                  |               |
         ------------------------------------------ Internal DMZ Ethernet

        This configuration allows the mrouted machine to connect with
        tunnels to other regional networks over the external {DMZ} and
        the physical backbone network, and connect with tunnels to the
        lower-level mrouted machines over the internal {DMZ}, thereby
        splitting the load of the replicated packets.  The mrouted
        machine would not do any unicast forwarding.

        Note that end-user sites may participate with as little as one
        workstation that runs the packet audio and video software and
        has a tunnel to a network-provider node.

        {RFC 1112} gives the details.

        {FAQ (http://www.eit.com/techinfo/mbone/mbone.html)}

        (1994-11-11)

mbps

        {megabits per second}

MBS

        {mobile broadband services}

MC

        <language> An extension of {C} with {modules}.  Symbols in
        other modules can be referenced using a dot notation.

        ["Design and Implementation of a C-Based Language for
        Distributed Real-Time Systems", A. Rizk et al, SIGPLAN Notices
        22(6):83-96 (June 1987)].

        (1995-10-06)

mc

        <networking> The {country code} for Monaco.

        (1999-01-27)

MC68000

        {Motorola 68000}

MC6809

        {Motorola 6809}

MCA

        {Micro Channel Architecture}

MCC

        1. {Mosaic Communications Corporation}.

        2. The {Microelectronics and Computer Technology Corporation}.

McCulloch-Pitts neuron

        <artificial intelligence> The basic building block of
        {artificial neural networks}.  It receives one or more inputs
        and produces one or more identical outputs, each of which is a
        simple non-linear function of the sum of the inputs to the
        neuron.  The non-linear function is typically a threshhold or
        step function which is usually smoothed (i.e. a {sigmoid}) to
        facilitate {learning}.

        (1997-10-11)

McG360

        Interactive, similar to PAL[5], for IBM 360.

        "McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969.

MCI

        <company> A United States long-distance telecommunications
        company.  Recently bought from {British Telecom} [by ?].

        (1998-05-18)

MCL

        {Macintosh Common LISP}

M-Code

        <language> 1. {Intermediate language} produced by some
        {Modula-2} compilers.

        [Which compilers?]

        2. The {intermediate language} for an {SECD}-like machine,
        used by the {Concert} implementation of {MultiLISP}.

        (1996-01-22)

MCP

        {motion compensated prediction}

MCP-1600

        A processor made by {Western Digital}, consisting of at least
        four separate {integrated circuit}s, including the control
        circuitry unit, the {ALU}, two or four {ROM} chips with
        {microcode}, and timing circuitry.

        The ALU chip contained twenty-six 8-bit {register}s and an
        8-bit {ALU}, while the control unit supervised the moving of
        data, memory access, and other control functions.  The {ROM}
        allowed the chip to function as either an 8- or 16-bit chip,
        with clever use of the 8-bit {ALU}.  Further, {microcode}
        allowed the addition of {floating-point} routines (40 + 8 bit
        format), simplifying programming (and possibly producing a
        floating-point coprocessor).

        Two standard {microcode} {ROM}s were available.  This
        flexibility was one reason it was also used to implement the
        {DEC} {LSI-11} processor as well as the {WD} {Pascal
        Microengine}.

        (1994-11-18)

MCS

        Meta Class System.

        A portable {object-oriented} extension of {Common Lisp} from
        {GMD}.  It integrates the functionality of {CLOS} and {TELOS}.

        {(ftp://gmdzi.gmd.de/pub/lisp/mcs)}

        (1994-10-21)

MCSD

        {Microsoft Certified Systems Developer}

MCSE

        {Microsoft Certified System Engineer}

mcvax

        mcvax.cwi.nl used to be the international {backbone} node of
        {EUnet}, the European Unix network.  It was located in
        Amsterdam, Netherlands and belonged to "Centrum voor Wiskunde
        en Informatica" (Centre for Mathematics and Computer Science)
        which is an institute belonging to a foundation called
        "Mathematisch Centrum".  Since the first mcvax was on of the
        first {VAXen} in Europe and one of it's first {uucp}
        connections was to a machine called decvax it was quickly
        christened mcvax.  Some also say this was done to give Jim
        McKie a nice mail address: mcvax!mckie.  But this is certainly
        not true at all.  The function of EUnet international backbone
        moved to another VAX later but the name moved with it, because
        in those days of mainly uucp based mail and before widespread
        use of {pathalias} it was simply not feasible to rename the
        machine to "europa" as was suggested at one stage.

        Mcsun (or relay.eu.net or net.eu.relay in some parts of
        Europe) replaced the international backbone host of EUnet
        around 1990.  This machine was donated by {Sun Microsystems}
        owned by the {European Unix Systems User Group} (EUUG).  It
        was located about 5m from where mcvax used to be and operated
        by the same people.

        Mcvax has finally ceased to exist in the {domain} and {uucp}
        {namespace}s.  It still exists in the {EARN}/{BITNET}
        namespace.

        [Posting by Daniel Karrenberg <dfk@eu.net> to eunet.general].

        (1990-03-02)

mcvert

        <tool> A {Unix} program for reading and writing {Apple Computer}
        {Macintosh} {binary file}s.  It was written by Doug Moore, now
        at {Rice University} (Jan 1990).

        See {BinHex}, {HQX}, {MacBinary}.

        (1995-04-22)

MD

        1. <programming> {major delivery}.

        2. {message digest function}.

md

        <networking> The {country code} for Moldova.

        (1999-01-27)

MD5

        {Message Digest 5}

MDF

        {Main Distribution Frame}

MDI

        {Multiple Document Interface}

MDL

        (Originally "Muddle").  C. Reeve, {Carl Hewitt} and {Gerald
        Sussman}, Dynamic Modeling Group, MIT ca. 1971.  Intended as a
        successor to Lisp, and a possible base for Planner-70.
        Basically LISP 1.5 with data types and arrays.  Many of its
        features were advanced at the time (I/O, interrupt handling
        and coroutining), and were incorporated into later LISP
        dialects ("optional", "rest" and "aux" markers).  In the mid
        80's there was an effort to use bytecoding to make the
        language portable.  CLU was first implemented in MDL.  Infocom
        wrote Zork in MDL, and used it as the basis for the ZIL
        interpreter.

        Implementations exist for ITS, {TOPS-20}, BSD 4.3, Apollo
        Domain, SunOS and A/UX.

        ["The MDL Programming Language", S.W. Galley et al, Doc
        SYS.11.01, Project MAC, MIT (Nov 1975)].

Mean Time Between Failures

        <specification> (MTBF, or "Mean Time Between Faults") The
        {average} time (usually expressed in hours) that a {component}
        works without failure.  It is calculated by dividing the total
        number of failures into the total number of operating hours
        observed.  The term can also mean the length of time a user
        may reasonably expect a device or system to work before an
        incapacitating fault occurs.

        See also {Mean Time To Recovery}.

        (1998-05-01)

Mean Time Between Faults

        {Mean Time Between Failures}

Mean Time To Recovery

        <specification> (MTTR) The average time that a device will
        take to recover from a non-terminal failure.  Examples of such
        devices range from self-resetting fuses (where the MTTR would
        be very short, probably seconds), up to whole systems which
        have to be replaced.

        The MTTR would usually be part of a maintenance contract,
        where the user would pay more for a system whose MTTR was 24
        hours, than for one of, say, 7 days.  This means the supplier
        is guaranteeing to have the system up and running again within
        24 hours (or 7 days) of being notified of the failure.

        Some devices have a MTTR of zero, which means that they have
        redundant components which can take over the instant the
        primary one fails, see {RAID} for example.

        See also {Mean Time Between Failures}.

        (1998-05-01)

measure

        <testing> To ascertain or appraise by comparing to a
        {standard}; to apply a {metric}.

        (1996-12-27)

measurement

        <testing> The act or process of measuring; a figure, extent,
        or amount obtained by measuring.

        (1996-12-27)

meatspace

        <jargon> The physical world (as opposed {virtual reality})
        where you might spend {facetime} with the {carbon community}.

        (1999-01-15)

meatware

        Less common synonym for {wetware}.

        [Was it Marvin Minsky who described brains as
        "machines?/computers? made of meat"?]

        (1994-10-21)

Media Access Control

        <networking> (MAC) The lower sublayer of the {OSI} {data link
        layer}.  The interface between a {node}'s {Logical Link
        Control} and the network's {physical layer}.  The MAC differs
        for various physical media.

        See also {MAC Address}, {Ethernet}, {token ring}.

        [What does it do?  Examples?  "Media" or "Medium"?]

        (1996-01-29)

Media Access Unit

        <networking> (MAU or Multistation Access Unit, MSAU) In a
        {Token Ring} network, a device to attach multiple network
        stations in a star topology, internally wired to connect the
        stations into a logical ring.  The MAU contains relays to
        short out nonoperating stations.  Multiple MAUs can be
        connected into a larger ring through their Ring In/Ring Out
        connectors.

        (1997-05-27)

Media Converter

        <networking> A component used in {Ethernet}, although it is
        not part of the {IEEE} standard.  The IEEE standard states
        that all {segments} must be linked with {repeaters}.  Media
        converters were developed as a simpler, cheaper alternative to
        repeaters.  However, in the 1990s the cost difference between
        the two is negligible.

        (1996-12-09)

Media Gateway Control Protocol

        <communications, protocol> (MGCP) A {protocol} used within a
        {Voice over IP} system.  MGCP is an {IETF} work in progress,
        it superceded {SGCP}.

        MGCP is an internal protocol used within a {distributed}
        system that appears to the outside world as a single VoIP
        {gateway}.

        This system is composed of a {Call Agent}, and a set of
        gateways, including at least one "media gateway" that performs
        the conversion of media signals between {circuits} and
        {packets}, and at least one "signalling gateway" when
        connected to an {SS7} controlled network.

        {IETF MGCP draft
        (http://www.ietf.org/internet-drafts/draft-huitema-megaco-mgcp-v0r1-05.
txt)}.

        (1999-03-17)

Medium Access Control

        {Media Access Control}

meeces

        <jargon> /mees'*z/ ({TMRC}) Occasional furry visitors who are
        not {urchin}s; that is, mice.  This may no longer be in live
        use.  According to {ESR} it derives from the refrain of the
        early-1960s cartoon character Mr. Jinx: "I hate meeces to
        *pieces*!"

        (1996-12-09)

Meet

        {greatest lower bound}

meg

        {megabyte}

mega-

        {prefix}

megabits per second

        <unit> (mbps) Millions of {bit}s per second.  A unit of
        information transfer rate.

        E.g. {Ethernet} can carry 10 mbps.

        (1995-10-06)

megabyte

        <unit> ({MB}, colloquially "meg") 2^20 = 1,048,576 {bytes} =
        1024 {kilobytes}.  1024 megabytes are one {gigabyte}.

        The text of a six hundred page paperback book would require
        about a megabyte of {ASCII} storage.

        See {prefix}.

        (1997-03-26)

megaflop

        <unit> Etimologically incorrect singular of "{megaflops}".

        (1995-02-28)

megaflops

        One million {floating-point} operations per second.  A common
        unit of measurement of performance of computers used for
        numerical work.

MegaHertz

        (MHz) Millions of cycles per second.  The unit of frequency
        used to measure the {clock rate} of modern digital logic,
        including {microprocessor}s.

        (1994-10-27)

megapenny

        /meg'*-pen"ee/ $10,000 (1 cent * 10^6).  Used semi-humorously
        as a unit in comparing computer cost and performance figures.

MEGO

        /me"goh/ or /mee'goh/ ["My Eyes Glaze Over", often "Mine Eyes
        Glazeth (sic) Over", attributed to the futurologist Herman
        Kahn] Also "MEGO factor".  1.  A {handwave} intended to
        confuse the listener and hopefully induce agreement because
        the listener does not want to admit to not understanding what
        is going on.  MEGO is usually directed at senior management by
        engineers and contains a high proportion of {TLA}s.
        2. excl. An appropriate response to MEGO tactics.  3. Among
        non-hackers, often refers not to behaviour that causes the
        eyes to glaze, but to the eye-glazing reaction itself, which
        may be triggered by the mere threat of technical detail as
        effectively as by an actual excess of it.

Mei

        Mei is a set of class libraries for Objectworks Smalltalk
        Release 4.1.  it includes: 1.  Grapher Library (useful for
        drawing diagrams); 2. Meta Grapher Library (grapher to develop
        grapher); 3. Drawing tools and painting tools (structured
        diagram editors and drawing editors); 4. GUI editor (graphical
        user interface builder); 5. Lisp interpreter; 6. Prolog
        interpreter; 7. Pluggable gauges; 8. Extended browser;
        (package, history, recover, etc.)

        Version 0.50.  Interpreters (Lisp, Prolog), examples,
        libraries, tools, editor, browser.

        Atsushi Aoki <aoki@sra.co.jp> and others

        {UK (ftp://mushroom.cs.man.ac.uk/pub/goodies/misc/Mei.tar.Z)},
        {N. America (ftp://st.cs.uiuc.edu/pub/MANCHESTER/misc/Mei)},
        {Japan
        (ftp://srawgw.sra.co.jp/pub/lang/smalltalk/mei/Mei0.50.tar.Z)}.

        restriction:    GNU {General Public License}
        requires:       Objectworks Smalltalk Release 4.1
        E-mail: Watanabe Katsuhiro <katsu@sran14.sra.co.jp>

        (1993-01-20).

Mel

        {The Story of Mel}

MELD

        A {concurrent}, {object-oriented}, {dataflow}, {modular} and
        {fault-tolerant} language!  MELD is comparable to {SR}.

        ["MELDing Multiple Granularities of Parallelism", G. Kaiser et
        al, ECOOP '89, pp. 147-166, Cambridge U Press 1989].

        (1994-11-11)

MELDC

        A {reflective} {object-oriented} {concurrent} programming
        language developed in 1990 by the MELD Project of the
        Programming Systems Laboratory at {Columbia University}.
        MELDC is a redesign of {MELD} based on {C}.

        The core of the architecture is a {micro-kernel} (the MELDC
        kernel), which encapsulates a minimum set of entities that
        cannot be modelled as objects.  All components outside of the
        kernel are implemented as objects in MELDC itself and are
        modularised in the MELDC libraries.  MELDC is reflective in
        three dimensions: structural, computational and architectural.
        The structural reflection indicates that classes and
        meta-classes are objects, which are written in MELDC.  The
        computational reflection means that object behaviours can be
        computed and extended at run-time.  The architectural
        reflection indicates that new features/properties
        (e.g. persistency and remoteness) can be constructed in MELDC.

        Version 2.0 runs on {Sun-4}/{SunOS} 4.1 and {DECstation} and
        {MIPS}/{Ultrix} 4.2.

        E-mail: Gail Kaiser <meldc@cs.columbia.edu>.

        MELDC is available under licence from <MeldC@cs.columbia.edu>
        and may not be used for commercial purposes.

        (1992-12-15)

Melinda

        ["Melinda: Linda with Multiple Tuple Spaces", S. Hupfer,
        <hupfer-susanne@yale.edu> YALEU/DCS/RR-766, Yale U Feb 1990].

        (1994-11-11)

Mellor

        {Schlaer-Mellor}

meltdown

        {network meltdown}

member function

        A {method} in {C++}.

membership function

        See {fuzzy subset}.

meme

        <philosophy> /meem/ [By analogy with "gene"] Richard Dawkins's
        term for an idea considered as a {replicator}, especially with
        the connotation that memes parasitise people into propagating
        them much as viruses do.

        Memes can be considered the unit of cultural evolution.  Ideas
        can evolve in a way analogous to biological evolution.  Some
        ideas survive better than others; ideas can mutate through,
        for example, misunderstandings; and two ideas can recombine to
        produce a new idea involving elements of each parent idea.

        The term is used especially in the phrase "meme complex"
        denoting a group of mutually supporting memes that form an
        organised belief system, such as a religion.  However, "meme"
        is often misused to mean "meme complex".

        Use of the term connotes acceptance of the idea that in humans
        (and presumably other tool- and language-using sophonts)
        cultural evolution by selection of adaptive ideas has become
        more important than biological evolution by selection of
        hereditary traits.  Hackers find this idea congenial for
        tolerably obvious reasons.

        See also {memetic algorithm}.

        (1996-08-11)

meme plague

        <philosophy> The spread of a successful but pernicious {meme},
        especially one that parasitises the victims into giving their
        all to propagate it.  Astrology, BASIC, and the other guy's
        religion are often considered to be examples.  This usage is
        given point by the historical fact that "joiner" ideologies
        like Naziism or various forms of millennarian Christianity
        have exhibited plague-like cycles of exponential growth
        followed by collapses to small reservoir populations.

        (1996-08-11)

memetic algorithm

        <algorithm> A {genetic algorithm} or {evolutionary algorithm}
        which includes a non-genentic local search to improve
        genotypes.  The term comes from the Richard Dawkin's term
        "{meme}".

        One big difference between memes and genes is that memes are
        processed and possibly improved by the people that hold them -
        something that cannot happen to genes.  It is this advantage
        that the memetic algorithm has over simple genetic or
        evolutionary algorithms.

        These algorithms are useful in solving complex problems, such
        as the "{Travelling Salesman Problem}," which involves finding
        the shortest path through a large number of nodes, or in
        creating {artificial life} to test evolutionary theories.

        Memetic algorithms are one kind of {metaheuristic}.

        {UNLP memetic algorithms home page
        (http://www.ing.unlp.edu.ar/cetad/mos/memetic_home.html)}.

        (07 July 1997)

memetics

        /me-met'iks/ The study of {meme}s.  As of mid-1993, this is
        still an extremely informal and speculative endeavor, though
        the first steps towards at least statistical rigor have been
        made by H. Keith Henson and others.  Memetics is a popular
        topic for speculation among hackers, who like to see
        themselves as the architects of the new information ecologies
        in which memes live and replicate.

memo function

        <programming> (Or "memoised function") A {function} that
        remembers which {arguments} it has been called with and the
        result returned and, if called with the same arguments again,
        returns the result from its memory rather than recalculating
        it.

        This same principle is found at the hardware level in computer
        architectures which use a {cache} to store recently accessed
        memory locations.

        A {Common Lisp} package by Marty Hall
        <hall@aplcenmp.apl.jhu.edu> which supports memoisation is
        available by {(ftp://archive.cs.umbc.edu/pub/Memoization)}.

        (1999-07-31)

memoisation

        {memo function}

memoised function

        {memo function}

memoization

        {memo function}

memoized function

        {memo function}

memory

        <storage> These days, usually used synonymously with {Random
        Access Memory} or {Read-Only Memory}, but in the general sense
        it can be any device that can hold {data} in
        {machine-readable} format.

        (1996-05-25)

memory farts

        <jargon, humour> The flatulent sounds that some {MS-DOS} box
        {BIOS}es (most notably {AMI}'s) make when checking memory at
        {boot} time.

        (1994-11-02)

memory leak

        <programming> An error in a program's {dynamic store}
        allocation logic that causes it to fail to reclaim discarded
        memory, leading to eventual collapse due to running out of
        memory.  Also (especially at {CMU}) called {core leak}.  These
        problems were severe on older machines with small, fixed-size
        address spaces, and special "leak detection" tools were
        commonly written to root them out.

        With the advent of {virtual memory}, it is unfortunately
        easier to be sloppy about wasting a bit of memory (although
        when you run out of {virtual memory}, it means you've got a
        *real* leak!).

        See {aliasing bug}, {fandango on core}, {smash the stack},
        {precedence lossage}, {overrun screw}, {leaky heap}, {leak}.

        (1995-02-17)

memory location

        <storage> A {byte}, {word} or other small unit of storage
        space in a computer's {main memory} that is identified by its
        starting {address} (and size).

        (1999-04-19)

memory management

        <memory management, storage> A collection of techniques for
        providing sufficient memory to one or more processes in a
        computer system, especially when the system does not have
        enough memory to satisfy all processes' requirements
        simultaneously.  Techniques include {swapping}, {paging} and
        {virtual memory}.  Memory management is usually performed
        mostly by a {hardware} {memory management unit}.

        (1995-01-23)

Memory Management Unit

        <hardware, memory management> (MMU, "Paged Memory Management
        Unit", PMMU) A {hardware} device or circuit that supports
        {virtual memory} and {paging} by translating {virtual
        addresses} into {physical addresses}.

        The virtual {address space} (the range of addresses used by
        the processor) is divided into {pages}, whose size is 2^N,
        usually a few {kilobytes}.  The bottom N {bit}s of the address
        (the offset within a page) are left unchanged.  The upper
        address bits are the (virtual) {page number}.  The MMU
        contains a {page table} which is indexed (possibly
        associatively) by the page number.  Each page table entry
        (PTE) gives the physical page number corresponding to the
        virtual one.  This is combined with the page offset to give
        the complete physical address.

        A PTE may also include information about whether the page has
        been written to, when it was last used (for a {least recently
        used} {replacement algorithm}), what kind of processes ({user
        mode}, {supervisor mode}) may read and write it, and whether
        it should be {cache}d.

        It is possible that no physical memory ({RAM}) has been
        allocated to a given virtual page, in which case the MMU will
        signal a "{page fault}" to the {CPU}.  The {operating system}
        will then try to find a spare page of RAM and set up a new PTE
        to map it to the requested virtual address.  If no RAM is free
        it may be necessary to choose an existing page, using some
        {replacement algorithm}, and save it to disk (this is known as
        "{paging}").  There may also be a shortage of PTEs, in which
        case the OS will have to free one for the new mapping.

        In a {multitasking} system all processes compete for the use
        of memory and of the MMU.  Some {memory management}
        architectures allow each process to have its own area or
        configuration of the page table, with a mechanism to switch
        between different mappings on a process switch.  This means
        that all processes can have the same virtual address space
        rather than require load-time relocation.

        An MMU also solves the problem of {fragmentation} of memory.
        After blocks of memory have been allocated and freed, the free
        memory may become fragmented (discontinuous) so that the
        largest contiguous block of free memory may be much smaller
        than the total amount.  With {virtual memory}, a contiguous
        range of virtual addresses can be mapped to several
        non-contiguous blocks of physical memory.

        In early designs memory management was performed by a separate
        {integrated circuit} such as the {MC 68851} used with the the
        {Motorola 68020} {CPU} in the {Macintosh II} or the {Z8015}
        used with the {Zilog Z80} family of processors.  Later CPUs
        such as the {Motorola 68030} and the {ZILOG Z280} have MMUs on
        the same IC as the CPU.

        (1999-05-24)

memory mapped I/O

        <architecture> The use of the same instructions and {bus} to
        communicate with both {main memory} and {input/output}
        devices.  This is in contrast to processors that have a
        separate I/O {bus} and special instructions to access it.

        The I/O devices are addressed at certain reserved address
        ranges on the main memory bus.  These addresses cannot
        therefore be used for {RAM}.  {Motorola} and {Mostec}
        architectures, among others, use memory mapped I/O.

        {Video cards} and other cards with on-board memory might be
        accessed in this way though the term applies not just to
        devices containing memory but to any device connected to the
        memory bus.  Accessing the devices usually consists of reading
        and writing certain built-in {registers} though sometimes the
        mere presence of a particular address can trigger the device.

        (1997-04-14)

memory protection

        <memory management> A system to prevent one {process}
        corrupting the memory (or other resources) of any other,
        including the {operating system}.  Memory protection usually
        relies on a combination of hardware (a {memory management
        unit}) and software to allocate memory to processes and handle
        {exceptions}.

        The effectiveness of memory protection varies from one
        operating system to another.  In most versions of {Unix} it is
        almost impossible to corrupt another process' memory, except
        in some archaic implementations and {Lunix} (not {Linux}!).
        Under {Microsoft Windows} (version?  hardware?) any {16 bit
        application}(?) can circumvent the memory protection, often
        leading to one or more {GPF}s.  Currently (April 1996) neither
        {Microsoft Windows} 3.1, {Windows 95}, nor {Mac OS} offer
        memory protection.  {Windows NT} has it, and Mac OS System 8
        will offer a form of memory protection.

        [MS DOS {EMM386} relevant?]

        (1996-09-10)

memory smash

        <jargon> A {Xerox PARC} term for writing to the location
        addressed by a {dangling pointer}.

        (1994-11-02)

Memory Type Range Registers

        <architecture, video> (MTRR) Registers in the {Pentium Pro}
        and {Pentium II} processors that can be used to specify a
        strategy for communication with the external memory and
        {caches} for a number of {physical address} ranges.

        Strategies include {write-through}, {write-back}, or
        uncached(?).  Such control is useful where the memory is
        located on a device and is accessed via some kind of device
        bus, e.g. a {PCI} or {AGP} {graphics card}, where caching
        would be of no benefit.

        (1999-07-02)

MEMS

        {microelectromechanical system}

Mentat

        <language> (After the human computers in Frank Herbert's SF
        classic, "Dune") An {object-oriented} distributed language
        developed at the {University of Virginia} some time before Dec
        1987.  Mentat is an extension of {C++} and is portable to a
        variety of {MIMD} architectures.

        By 1994 Mentat was available for {Sun 3}, {Sun 4}, {iPSC}/2
        with plans for {Mach}, {iPSC860}, {RS/6000} and {Iris}.  The
        language is now (May 1998) supported in a new project,
        {Legion}.

        E-mail: <mentat@uvacs.cs.virginia.edu>.

        ["Mentat: An Object-Oriented Macro Data Flow System",
        A. Grimshaw <grimshaw@cs.virginia.edu> et al, SIGPLAN Notices
        22(12):35-47, Dec 1987, OOPSLA '87].

        (1998-05-15)

MENTOR

        CAI language.  "Computer Systems for Teaching Complex
        Concepts", Report 1742, BBN, Mar 1969.

menu

        <operating system> A list from which the user may select an
        operation to be performed.  This is often done with a {mouse}
        or other pointing device under a {graphical user interface}
        but may also be controlled from the keyboard.

        Menus are very convenient for beginners because they show what
        commands are available and make experimentating with a new
        program easy, often reducing the need for user documentation.
        Experienced users however, often prefer keyboard commands,
        especially for frequently user operations, because they are
        faster to use.  In situations such as text entry where the
        keyboard must be used anyway, having to move your hand to the
        mouse to invoke a menu operation is slow.

        There are many different ways of presenting menus but the most
        common are the {menu bar} (with {pull-down menus}) and the
        {context-sensitive menu}.

        The term "menu" tends to be reserved for a list of actions or
        global options, whereas a "{list box}" or other graphical
        {widget} might present any kind of choice.

        See also {menuitis}.

        (1994-12-02)

menu bar

        <operating system> A permanently displayed {menu} spread
        horizontally across the top of the screen or window.  When the
        mouse is pressed over an item on the menu bar, a {pull-down
        menu} appears.

        (1999-09-22)

menuitis

        /men"yoo-i:"tis/ A notional disease suffered by software with
        an obsessively simple-minded {menu} interface and no escape.
        Hackers find this intensely irritating and much prefer the
        flexibility of command-line or language-style interfaces,
        especially those customisable via {macro}s or a
        special-purpose language in which one can encode useful hacks.

        See {user-obsequious}, {drool-proof paper}, {WIMP}, {for the
        rest of us}.

        (1994-12-02)

MENYMA/S

        ["A Message Oriented Language for System Applications",
        A. Koch et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982,
        pp. 824-832].

        (1994-12-02)

Mercury Autocode

        {Autocode} for the {Ferranti} {Mercury} machine.

mercury delay line

        An archaic {first-in first-out} fixed time period data storage
        device using acoustic transducers to transmit data as waves in
        a trough of mercury.

        The {Whirlwind} and {ENIAC} computers used mercury delay lines
        for storage.

        (1995-01-24)

MERISE

        Methode d'Etude et de Realisation Informatique pour les
        Systemes d'Enteprise.

        A software engineering method popular in France; many {IPSE}s
        are based on it.

        (1995-01-24)

Merlin

        {OS/2}

MEROON

        <language> An {object-oriented} system built on {Scheme}.

        [What kind of system?]

        {(ftp://nexus.yorku.ca/pub/scheme/new/)}.

        (1997-05-05)

Mesa

        Xerox PARC, 1977.  System and application programming for
        proprietary hardware: Alto, Dolphin, Dorado and Dandelion.
        Pascal-like syntax, ALGOL68-like semantics.  An early version
        was weakly typed.  Mesa's modules with separately compilable
        definition and implementation parts directly led to Wirth's
        design for Modula.  Threads, coroutines (fork/join),
        exceptions, and monitors.  Type checking may be disabled.
        Mesa was used internally by Xerox to develop ViewPoint, the
        Xerox Star, MDE, and the controller of a high-end copier.  It
        was released to a few universitites in 1985.  Succeeded by
        Cedar.

        ["Mesa Language Manual", J.G.  Mitchell et al, Xerox PARC,
        CSL-79-3 (Apr 1979)].

        ["Early Experience with Mesa", Geschke et al, CACM
        20(8):540-552 (Aug 1977)].

mesh

        <character> The {INTERCAL} name for {hash}.

MESI protocol

        <processor> Modified, Exclusive, Shared, Invalid.

        A {cache coherency} {protocol} where each {cache line} is
        marked with one of the four states.

        The MESI protocol is used by the {Pentium} processor.

        (1995-05-05)

message

        In {object-oriented programming} sending a message to an
        {object} (to invoke a {method}) is equivalent to calling a
        {procedure} in traditional programming languages, except that
        the actual code executed may only be selected at run-time
        depending on the {class} of the object.  Thus, in response to
        the message "drawSelf", the method code invoked would be
        different if the target object were a circle or a square.

        (1995-02-16)

Message Digest 5

        <messaging> The {message digest function} defined in {RFC
        1321}.

        (1996-08-04)

message digest function

        {one-way hash function}

Message Handling System

        <messaging, standard> (MHS) The {standard} defined by {ITU-T}
        as {X.400} and by {ISO} as {Message-Oriented Text Interchange
        Standard} (MOTIS).  MHS is the X.400 family of services and
        {protocol}s that provides the functions for global {electronic
        mail} transfer among local mail systems and {MTA}s.

        It is used by {CompuServe}, among others.

        (1996-09-25)

message passing

        One of the two techniques for communicating between parallel
        processes (the other being {shared memory}).

        A common use of message passing is for communication in a
        {parallel computer}.  A process running on one processor may
        send a message to a process running on the same processor or
        another.  The actual transmission of the message is usually
        handled by the {run-time support} of the language in which the
        processes are written, or by the {operating system}.

        Message passing scales better than {shared memory}, which is
        generally used in computers with relatively few processors.
        This is because the total communications {bandwidth} usually
        increases with the number of processors.

        A message passing system provides primitives for sending and
        receiving messages.  These primitives may by either
        {synchronous} or {asynchronous} or both.  A synchronous send
        will not complete (will not allow the sender to proceed) until
        the receiving process has received the message.  This allows
        the sender to know whether the message was received
        successfully or not (like when you speak to someone on the
        telephone).  An asynchronous send simply queues the message
        for transmission without waiting for it to be received (like
        posting a letter).  A synchronous receive primitive will wait
        until there is a message to read whereas an asynchronous
        receive will return immediately, either with a message or to
        say that no message has arrived.

        Messages may be sent to a named process or to a named
        {mailbox} which may be readable by one or many processes.

        Transmission involves determining the location of the
        recipient and then choosing a route to reach that location.
        The message may be transmitted in one go or may be split into
        {packet}s which are transmitted independently (e.g. using
        {wormhole routing}) and reassembled at the receiver.  The
        message passing system must ensure that sufficient memory is
        available to buffer the message at its destination and at
        intermediate nodes.

        Messages may be typed or untyped at the programming language
        level.  They may have a priority, allowing the receiver to
        read the highest priority messages first.

        Some message passing computers are the {MIT J-Machine
        (http://www.ai.mit.edu/projects/cva/cva_j_machine.html)}, the
        {Illinois Concert Project
        (http://www-csag.cs.uiuc.edu/projects/concert.html)} and
        {transputer}-based systems.

        {Object-oriented programming} uses message passing between
        {object}s as a metaphor for procedure call.

        (1994-11-11)

Message Passing Interface

        <communications, protocol> A {de facto standard} for
        communication among the {nodes} running a {parallel program}
        on a {distributed memory system}.  MPI is a {library} of
        {routines} that can be called from {Fortran} and{ C} programs.
        MPI's advantage over older message passing libraries is that
        it is both {portable} (because MPI has been implemented for
        almost every distributed memory {architecture}) and fast
        (because each implementation is {optimised} for the {hardware}
        it runs on).

        [Address?]

        (1997-06-09)

message switching

        {store and forward}

Message Transfer Agent

        <messaging> (MTA) The program responsible for delivering
        {e-mail} messages.  Upon receiving a message from a {Mail User
        Agent} or another MTA it stores it temporarily locally and
        analyses the recipients and either delivers it (local
        addressee) or forwards it to another MTA ({routing}).  In
        either case it may edit and/or add to the message {headers}.

        The most widely used MTA for {Unix} is {sendmail}.

        [Other OSes?]

        (1997-02-28)

Messaging Application Programming Interface

        <messaging> (MAPI) A messaging architecture and a {client}
        interface component for applications such as {electronic
        mail}, scheduling, calendaring and document management.  As a
        messaging architecture, MAPI provides a consistent interface
        for multiple {application programs} to interact with multiple
        messaging systems across a variety of {hardware} {platforms}.

        MAPI provides better performance and control than {Simple
        MAPI}, {Common Messaging Calls} (CMC) or the {Active Messaging
        Library}.  It has a comprehensive, open, dual-purpose
        interface, integrated with {Microsoft Windows}.  MAPI can be
        used by all levels and types of client application and
        "service providers" - driver-like components that provide a
        MAPI interface to a specific messaging system.  For example, a
        {word processor} can send documents and a {workgroup}
        application can share and store different types of data using
        MAPI.

        MAPI separates the programming interfaces used by the client
        applications and the service providers.  Every component works
        with a common, {Microsoft Windows}-based user interface.  For
        example, a single messaging client application can be used to
        receive messages from {fax}, a {bulletin board} system, a
        host-based messaging system and a {LAN}-based system.
        Messages from all of these systems can be delivered to a
        single "universal Inbox".

        MAPI is aimed at the powerful, new market of workgroup
        applications that communicate with such different messaging
        systems as fax, {DEC} {All-In-1}, {voice mail} and public
        communications services such as {AT&T} Easylink Services,
        {CompuServe} and {MCI} MAIL.  Because workgroup applications
        demand more of their messaging systems, MAPI offers much more
        than basic messaging in the programming interface and supports
        more than {local area network} (LAN)-based messaging systems.
        Applications can, for example, format text for a single
        message with a variety of fonts and present to their users a
        customised view of messages that have been filtered, sorted or
        preprocessed.

        MAPI is built into {Windows 95} and {Windows NT} and can be
        used by 16-bit and 32-bit Windows applications.  The
        programming interface and subsystem contained in the MAPI
        {DLL} provide objects which conform to the {Component Object
        Model}.  MAPI includes standard messaging client applications
        that demonstrate different levels of messaging support.

        MAPI provides cross platform support through such industry
        standards as {SMTP}, {X.400} and Common Messaging Calls.  MAPI
        is the messaging component of {Windows Open Services
        Architecture} (WOSA).

        [Correct expansion?  Relatonship with Microsoft?]

        (1997-12-03)

Messaging Applications Programming Interface

        {Messaging Application Programming Interface}

mess-dos

        /mes-dos/ (Or MS-DOG, Messy-DOS, mess-dross, mess-loss,
        mush-dos) Derisory term for {MS-DOS}.  Often followed by the
        ritual banishing "Just say No!"

        Most hackers (even many {MS-DOS} hackers) loathe {MS-DOS} for
        its single-tasking nature, its limits on application size, its
        nasty primitive interface, and its ties to {IBM}ness (see
        {fear and loathing}).

        In Ireland and the UK it is sometimes called "Domestos" after
        a brand of toilet cleanser.

        (1994-11-16)

META

        <language> The {assembly language} for the {CYBER 200},
        developed at {CDC} ca 1977.

        [CDC Pub 60256020].

        (1994-11-16)

meta

        <philosophy> /me't*/ or /may't*/ or (Commonwealth) /mee't*/ A
        prefix meaning one level of description higher.  If X is some
        concept then meta-X is data about, or processes operating on,
        X.

        For example, a {metasyntax} is {syntax} for specifying syntax,
        {metalanguage} is a language used to discuss language,
        {meta-data} is data about data, and {meta-reasoning} is
        reasoning about reasoning.

        This is difficult to explain briefly, but much hacker humour
        turns on deliberate confusion between meta-levels.

        (1999-04-06)

META 5

        Early syntax-directed {compiler-compiler}, used for
        translating one {high-level language} to another.

        Versions: META II, META-3.

        ["META 5: A Tool to Manipulate Strings of Data",
        D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966].

        [Sammet 1969, p. 638].

        (1995-01-23)

meta bit

        The top bit of an 8-bit character, which is on in character
        values 128--255.  Also called {high bit}, {alt bit}, or
        {hobbit}.  Some terminals and consoles (see {space-cadet
        keyboard}) have a META shift key.  Others (including,
        *mirabile dictu*, keyboards on IBM PC-class machines) have an
        ALT key.  See also {bucky bits}.

        Historical note: although in modern usage shaped by a universe
        of 8-bit bytes the meta bit is invariably {hex} 80 ({octal}
        0200), things were different on earlier machines with 36 bit
        words and 9-bit bytes.  The MIT and Stanford keyboards (see
        {space-cadet keyboard}) generated hex 100 (octal 400) from
        their meta keys.

MetaCard

        A commercial human interface and {hypertext} system for {Unix}
        and the {X Window System}, similar to {Hypercard}.

        (1994-11-17)

Meta-CASE tool

        A term sometimes used for software packages (like TBK or VSF)
        which allow users to develop or customise their own CASE
        tools.

Metaclass

        The class of a class.  A metaclass is a class whose instances
        are themselves classes.

Meta-Crystal

        A language for transformations of Crystal programs.
        Implemented in T.  "Meta-Crystal- A Metalanguage for
        Parallel-Program Optimisation", J.A. Yang et al, TR
        YALEU/DCS/TR-786, Yale Apr 1990.  (See Crystal).

Metadata

        <product> (Note: One unhyphenated word with initial capital;
        contrast {meta data}) A word coined by Jack E. Myers to
        represent current and future lines of products implementing
        the concepts of his {MetaModel}, and also to designate his
        company {The Metadata Company} that would develop and market
        those products.

        A data and publication search performed when Myers coined the
        term, early in the summer of 1969, did not discover any use
        either of the word "metadata" or "meta data".  Myers used the
        term in a 1973 product brochure and it is an Incontestable
        registered U.S. Trademark.

        (1997-04-06)

meta-data

        <data> /me't*-day`t*/, or combinations of /may'-/ or
        (Commonwealth) /mee'-/; /-dah`t*/ (Or "meta data") Data about
        {data}.  In {data processing}, meta-data is definitional data
        that provides information about or documentation of other data
        managed within an application or environment.

        For example, meta data would document data about {data
        elements} or {attributes}, (name, size, data type, etc) and
        data about {records} or {data structures} (length, fields,
        columns, etc) and data about data (where it is located, how it
        is associated, ownership, etc.).  Meta data may include
        descriptive information about the context, quality and
        condition, or characteristics of the data.

        Not to be confused with {Metadata}.

        (1997-04-06)

Metadata Information Partners

        {The Metadata Company}

metafile

        <graphics, file format> 1. An image file format for transport
        between different machines, often as a {device independent
        bitmap}.

        2. A {functional specification} for encoding computer
        {graphics} for later display on some suitable device.

        (1996-09-20)

METAFONT

        A system for the design of raster-based alphabets by {Donald
        Knuth}.  A companion to {TeX}.

        ["The METAFONT Book," Donald Knuth, A-W 1986.  Version 2.0,
        March 1990].

        (1994-11-04)

metaheuristic

        <algorithm, complexity, computability> A top-level general
        strategy which guides other {heuristics} to search for
        feasible solutions in domains where the task is hard.

        Metaheuristics have been most generally applied to problems
        classified as {NP-Hard} or {NP-Complete} by the theory of
        {computational complexity}.  However, metaheuristics would
        also be applied to other {combinatorial} {optimisation}
        problems for which it is known that a {polynomial-time}
        solution exists but is not practical.

        Examples of metaheuristics are {Tabu Search}, {simulated
        annealing}, {genetic algorithms} and {memetic algorithms}.

        (1997-10-30)

Meta-II

        An early {compiler-compiler}.

        ["Meta-II: a Syntax Oriented Compiler Writing Language",
        V. Schorre, Proc 19th ACM Natl Conf 1964].

        (1995-01-23)

Meta-IV

        See VDM-SL.

METAL

        1. Mega-Extensive Telecommunications Applications Language.
        BBS language for PRODOS 8 on Apple II.

        2. The syntax-definition formalism of the Mentor system.
        Metal specifications are compiled to specifications for a
        scanner/parser generator such as Lex/Yacc.  "Metal: A
        Formalism to Specify Formalisms", G.  Kahn et al, Sci Comp
        Prog 3:151-188 (1983).

metalanguage

        1. [theorem proving] A language in which proofs are
        manipulated and tactics are programmed, as opposed to the
        logic itself (the "{object language}").  The first {ML} was
        the metalanguage for the Edinburgh {LCF} proof assistant.

        2. [logic] A language in which to discuss the truth of
        statements in another language.

Metal Oxide Semiconductor

        <electronics> (MOS) The three materials used to form a {gate}
        in the most common kind of {Field Effect Transistor} - a
        {MOSFET}.

        [Other MOS devices?]

        (1996-05-27)

Metal Oxide Semiconductor Field Effect Transistor

        <electronics> (MOSFET) A {Field Effect Transistor} in which
        the conducting channel is insulated from the gate terminal by
        a layer of oxide.  Therefore it does not conduct even if a
        reverse voltage is applied to the gate.

        (1997-02-24)

metaphone

        <algorithm, text> An {algorithm} for encoding a word so that
        similar sounding words encode the same.  It's similar to
        {soundex} in purpose, but as it knows the basic rules of
        English pronunciation it's more accurate.  The higher accuracy
        doesn't come free, though, metaphone requires more
        computational power as well as more storage capacity, but
        neither of these requirements are usually prohibitive.  It is
        in the public domain so it can be freely implemented.

        Metaphone was developed by Lawrence Philips
        <lphilips@verity.com>.  It is described in ["Practical
        Algorithms for Programmers", Binstock & Rex, Addison Wesley,
        1995].

        (1998-12-22)

metaprogram

        A program which modifies or generates other programs.  A
        {compiler} is an example of a metaprogram: it takes a program
        as input and produces another (compiled) one as output.

        (1994-10-24)

metasyntactic variable

        <grammar> Strictly, a {variable} used in {metasyntax}, but
        often used for any name used in examples and understood to
        stand for whatever thing is under discussion, or any random
        member of a class of things under discussion.  The word {foo}
        is the {canonical} example.  To avoid confusion, hackers never
        (well, hardly ever) use "foo" or other words like it as
        permanent names for anything.

        In filenames, a common convention is that any filename
        beginning with a metasyntactic-variable name is a {scratch}
        file that may be deleted at any time.

        To some extent, the list of one's preferred metasyntactic
        variables is a cultural signature.  They occur both in series
        (used for related groups of variables or objects) and as
        singletons.  Here are a few common signatures:

        {foo}, {bar}, {baz}, {quux}, quuux, quuuux...: MIT/Stanford
        usage, now found everywhere.  At MIT (but not at Stanford),
        {baz} dropped out of use for a while in the 1970s and '80s.  A
        common recent mutation of this sequence inserts {qux} before
        {quux}.

        bazola, ztesch: Stanford (from mid-'70s on).

        {foo}, {bar}, thud, grunt: This series was popular at CMU.
        Other CMU-associated variables include ack, barf, foo, and
        {gorp}.

        {foo}, {bar}, fum: This series is reported to be common at
        {Xerox PARC}.

        {fred}, {barney}: See the entry for {fred}.  These tend to be
        Britishisms.

        {toto}, titi, tata, tutu: Standard series of metasyntactic
        variables among francophones.

        {corge}, {grault}, {flarp}: Popular at Rutgers University and
        among {GOSMACS} hackers.

        zxc, spqr, {wombat}: Cambridge University (England).

        shme: Berkeley, GeoWorks, Ingres.  Pronounced /shme/ with a
        short /e/.

        {foo}, {bar}, zot: {Helsinki University of Technology},
        Finland.

        blarg, wibble: New Zealand

        Of all these, only "foo" and "bar" are universal (and {baz}
        nearly so).  The compounds {foobar} and "foobaz" also enjoy
        very wide currency.

        Some jargon terms are also used as metasyntactic names; {barf}
        and {mumble}, for example.

        See also {Commonwealth Hackish} for discussion of numerous
        metasyntactic variables found in Great Britain and the
        Commonwealth.

        (1995-11-13)

metasyntax

        <grammar> {Syntax} used to describe {syntax}.  The best known
        example is {BNF} and its variants such as {EBNF}.

        A {metasyntactic variable} is a {variable} used in
        {metasyntax}.

        (1999-04-06)

Meta-Vlisp

        E. St.James <esj@litp.ibp.fr> France.  A Lisp dialect with
        many innovations.

Met-English

        A {FORTRAN}-like language designed at {Metropolitan Life} in
        the early 1960s.  It had support for variable-length bit
        fields.  Most MetLife {DP} in the 1960s and 1970s was in
        Met-English.  It was originally developed for {Honeywell}
        machines, but many programs still run under {IBM} {MVS} via a
        Honeywell {emulator}.

        (1995-02-15)

METEOR

        A version of COMIT with Lisp-like syntax, written in MIT Lisp
        1.5 for the IBM 7090.  "METEOR - A List Interpreter for String
        Transformation", D.G. Bobrow in The Programming Language LISP
        and its Interpretation, E.D.  and D.G. Bobrow eds, 1964.

meter

        <spelling> US spelling of "{metre}".

        (1998-02-07)

method

        The name given in {Smalltalk} and other {object-oriented
        language}s to a procedure or routine associated with one or
        more {class}es.  An {object} of a certain class knows how to
        perform actions, e.g. printing itself or creating a new
        instance of itself, rather than the function (e.g. printing)
        knowing how to handle different types of object.

        Different classes may define methods with the same name
        (i.e. methods may be {polymorphic}).  The term "method" is used
        both for a named operation, e.g. "PRINT" and also for the code
        which a specific class provides to perform that operation.

        In {Smalltalk}, a method is defined by giving its name,
        documentation, temporary local variables and a sequence of
        expressions separated by "."s.

methodology

        1. <programming> An organised, documented set of procedures
        and guidelines for one or more phases of the {software life
        cycle}, such as analysis or design.  Many methodologies
        include a diagramming notation for documenting the results of
        the procedure; a step-by-step "cookbook" approach for carrying
        out the procedure; and an objective (ideally quantified) set
        of criteria for determining whether the results of the
        procedure are of acceptable quality.

        An example is The {Yourdon methodology}.

        2. A pretentious way of saying "method".

        (1995-04-10)

Methods

        <language> A line-oriented {Smalltalk} for {PC}'s, produced by
        Digitalk ca 1985.  Methods was the predecessor of
        {Smalltalk/V}.

        (1995-04-16)

me too

        A {functional language} for executable specifications
        developed by Peter Henderson in 1984.  It is like {LispKit
        Lisp}, but with sets, maps and sequences to describe the
        specification.

        ["Functional Programming, Formal Specification and Rapid
        Prototyping", IEEE Trans Soft Eng, SE-12(2):241-250 (Feb
        1986)].

        (1994-10-21)

metre

        <unit> (US "meter") The fundamental {SI} unit of length.

        From 1889 to 1960, the metre was defined to be the distance
        between two scratches in a platinum-iridium bar kept in the
        vault beside the Standard Kilogram at the International Bureau
        of Weights and Measures near Paris.

        This replaced an earlier definition as 10^-7 times the
        distance between the North Pole and the Equator along a
        meridian through Paris; unfortunately, this had been based on
        an inexact value of the circumference of the Earth.

        From 1960 to 1984 it was defined to be 1650763.73 wavelengths
        of the orange-red line of krypton-86 propagating in a vacuum.

        It is now defined as the length of the path traveled by light
        in a vacuum in the time interval of 1/299,792,458 of a second.

        (1998-02-07)

metric

        {software metric}

Metropolitan Area Network

        (MAN) A data network intended to serve an area the size of a
        large city.  Such networks are being implemented by innovative
        techniques, such as running {optical fibre} through subway
        tunnels.  A popular example of a MAN is {SMDS}.

        See also {Local Area Network}, {Wide Area Network}.

        (1994-11-22)

M-expression LISP

        (MLISP) The original "{meta-language}" {syntax} of {Lisp},
        designed by {John McCarthy} in 1962.  MLISP was intended for
        external use in place of the parenthesised {S-expression}
        {syntax}.

        ["LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT Press
        1962].

        (1994-11-22)

MFC

        {Microsoft Foundation Class}

        (1995-11-16)

MFE

        {maximal free expression}

MFLOPS

        1. <unit> {megaflops}.

        2. <benchmark> A {benchmark} which attemps to estimate a
        system's {floating-point} "MFLOPS" rating for specific {FADD},
        {FSUB}, {FMUL} and {FDIV} instruction mixes.

        {C Source (ftp://ftp.nosc.mil/pub/aburto/flops20.c)}.
        {Results
        (http://performance.netlib.org/performance/html/flops.html)},
        {(ftp://ftp.nosc.mil/pub/aburto/flops_1.tbl)},
        {(ftp://ftp.nosc.mil/pub/aburto/flops_2.tbl)},
        {(ftp://ftp.nosc.mil/pub/aburto/flops_3.tbl)},
        {(ftp://ftp.nosc.mil/pub/aburto/flops_4.tbl)}.

        (1994-11-14)

MFM

        Modified FM.

        A data recording method used on magnetic hard disks.  There
        are denser formats now.

        [What does the FM stand for?  Which disks?]

        (1995-01-16)

MFTL

        {My Favourite Toy Language}

mg

        <networking> The {country code} for Madagascar.

        (1999-01-27)

MGCP

        {Media Gateway Control Protocol}

mh

        <networking> The {country code} for Marshall Islands.

        (1999-01-27)

MHDL

        1. {MIMIC Hardware Description Language}.

        2. {Microwave Hardware Description Language}.

MHEG

        {Multimedia and Hypermedia information coding Expert Group}

MHS

        {message handling system}

MHz

        {MegaHertz}

MIB

        {Management Information Base}

MIB Variable

        A managed object that is defined in a {Management Information
        Base} (MIB).  The object is defined by a textual name and a
        corresponding object identifier, a {syntax}, an access mode, a
        status, and a description of the semantics of the managed
        object.  The MIB Variable contains pertinent management
        information that is accessible as defined by the access mode.

        (1995-03-22)

Mic-1

        Microprogramming language, used in {Andrew Tanenbaum}'s book.

        See {Mac-1}.

        [Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
        1989, Sect 4.4, 4.5].

Mic-2

        Microprogramming language, used in {Tanenbaum}'s book.

        See {Mac-1}.

        [Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
        1989, Sect 4.4, 4.5].

MICE

        {Multimedia Integrated Conferencing for European Researchers}

mice

        {mouse}

mickey

        <unit, humour> The unit of resolution of {mouse} movement.

        It has been suggested that the "disney" will become a
        benchmark unit for animation graphics performance.

        (1999-06-30)

mickey mouse program

        <jargon> The North American equivalent of a "{noddy} program",
        i.e. trivial.  The term doesn't necessarily have the belittling
        connotations of mainstream slang "Oh, that's just mickey mouse
        stuff!"; sometimes trivial programs can be very useful.

        (1995-04-10)

MICR

        {Magnetic Ink Character Recognition}

micro

        {microprocessor}

micro-

        {prefix}

Micro Assembly Language

        <language> (MAL) A {microprogramming} language with high-level
        {syntax}, used in the reference below.

        See also {Mic-1}, {Mac-1}.

        [Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
        1989, Sect 4.4].

        (1995-04-10)

microcentury

        One CS professor used to characterise the standard length of
        his lectures as a microcentury - that is, about 52.6 minutes
        (see also {attoparsec}, {nanoacre}, and especially
        {microfortnight}).

Micro Channel Architecture

        <architecture> (MCA) {IBM}'s proprietary 32-bit {bus}, used in
        high-end {PS/2} {personal computers}.  Micro Channel is
        designed for {multiprocessing}.  It eliminates potential
        conflicts that arise when installing new peripheral devices.
        MCA is *not* compatible with either {EISA} or {XT bus
        architecture} so older cards cannot be used with it.

        As with the {ROM} {BIOS} in the first {IBM PCs}, figuring out
        the Micro Channel's secrets has been an arduous task of
        {reverse engineering} ever since the PS/2 line was announced.
        Consequently, the MCA has never become as wide spread as the
        competing {EISA} standard.

        (1996-08-16)

microcode

        <programming> A technique for implementing the {instruction
        set} of a processor as a sequence of microcode instructions
        ("microinstructions"), each of which typically consists of a
        (large) number of bit fields and the address of the next
        microinstruction to execute.  Each bit field controls some
        specific part of the processor's operation, such as a gate
        which allows some {functional unit} to drive a value onto the
        {bus} or the operation to be performed by the {ALU}.  Several
        microinstructions will usually be required to fetch, decode
        and execute each {machine code} instruction
        ("{macroinstruction}").  The microcode may also be responsible
        for {polling} for hardware {interrupt}s between each
        macroinstruction.  Writing microcode is known as
        "microprogramming".

        Microcode may be classified as "horizontally encoded" or
        "vertically encoded".  Horizontal microcode is as described
        above where there is a fairly direct correspondence between
        the bit fields in a microinstruction and the control signals
        sent to the various parts of the CPU.  Not all combinations of
        bits will be valid (e.g. two units driving the bus at once).
        Vertical microcode is closer to {machine code} because a bit
        field value may pass through some intermediate combinatory
        logic which generates the actual control signals.  This allows
        a few bits of a microinstruction to determine several control
        signals and ensure that only valid combinations of those
        signals are generated (e.g. a field may be decoded to determine
        which unit drives the bus).  The disadvantage with vertical
        encoding is that the encoding is usually fixed and takes extra
        time compared with horizontal encoding which allows any
        combination of signals to be generated and takes no time to
        decode.

        The alternative to a microcoded processor is a {hard-wired}
        one where the control signals are generated directly from the
        bits of the {machine code} instruction.  This is more common
        in modern {RISC} architectures because it is faster.

        Microcode is usually stored in {ROM} chips though some
        processors (e.g. the {Orion}) use fast RAM, making them
        dynamically microprogrammable.

        (1996-11-26)

Microcom Networking Protocol

        (MNP) One of the most common {modem} {protocol}s with
        {compression}.  Also the name of a product.

        [Details?  On-line spec?]

        (1995-01-31)

microcomputer

        A computer based on a {microprocessor}.

        Contrast with {minicomputer}, {mainframe}.

        (1995-02-07)

microcontroller

        <processor> A {microprocessor} on a single {integrated
        circuit} intended to operate as an {embedded} system.  As well
        as a {CPU}, a microcontroller typically includes small amounts
        of {RAM} and {PROM} and timers and I/O ports.

        An example is the {Intel 8751}.

        (1995-04-22)

MicroDroid

        [{Usenet}] A {Microsoft} employee, especially one who posts to
        various operating-system advocacy newsgroups. MicroDroids post
        follow-ups to any messages critical of {Microsoft}'s operating
        systems, and often end up sounding like visiting Mormon
        missionaries.

microelectromechanical system

        <hardware> (MEMS) The integration of mechanical structures
        (moving parts) with microelectronics.  MEMS devices are
        "custom" designed for a purpose which requires a mechanical
        action to be controlled by a computer.

        Applications include sensors, medical devices, process
        controls.

        {(http://mems.mcnc.org/)}.

        See also {nanotechnology}.

        (1999-03-25)

Microelectronics and Computer Technology Corporation

        <body> (MCC) One of the first, and now one of the largest, US
        computer industry research and development consortia.

        Founded in late 1982 by major computer and semiconductor
        manufacturers, MCC's membership has diversified to include a
        broad range of high-profile corporations from electronics,
        computers, aerospace, semiconductors, and related industries,
        reflecting the full range of companies vital to the life cycle
        of information technology products.  Active involvement of
        small- and medium-sized firms and technology users, along with
        well-established alliances with government research and
        development agencies and leading universities, allows MCC's
        partners to maximise the benefit of scarce research and
        development resources.

        Some of the technical areas in which MCC has distinguished
        itself are:

        System Architecture and Design (optimise hardware and software
        design, provide for scalability and interoperability, allow
        rapid prototyping for improved time-to-market, and support the
        re-engineering of existing systems for open systems).

        Advanced Microelectronics Packaging and Interconnection
        (smaller, faster, more powerful, and cost-competitive).

        Hardware Systems Engineering (tools and methodologies for
        cost-efficient, up-front design of advanced electronic
        systems, including modeling and design-for-test techniques to
        improve cost, yield, quality, and time-to-market).

        Environmentally Conscious Technologies (process control and
        optimisation tools, information management and analysis
        capabilities, and non-hazardous material alternatives
        supporting cost-efficient production, waste minimisation, and
        reduced environmental impact).

        Distributed Information Technology (managing and maintaining
        physically distributed corporate information resources on
        different {platform}s, building blocks for the {national
        information infrastructure}, networking tools and services for
        integration within and between companies, and electronic
        commerce).

        Intelligent Systems (systems that "intelligently" support
        business processes and enhance performance, including
        {decision support}, {data management}, forecasting and
        prediction).

        {Home (http://www.mcc.com/)}

        Address: Austin, Texas, USA.

        (1995-04-25)

MicroEmacs

        (uemacs) A simple, portable text editor with versions for most
        {microcomputer}s and many other computers.  It is both
        relatively easy for the novice to use, but also very powerful
        in the hands of an expert.  MicroEmacs can be extensibly
        customised.

        Most versions use only a screen and keyboard - mouse and
        windowing facilities are not standard.

        MicroEmacs was written by Dave G Conroy, Steve Wilhite, George
        Jones, and for nearly ten years: Daniel Lawrence.

        Version: 3.11.

        {(ftp://midas.mgmt.purdue.edu/dist/)}

        [FTP?  Differences from GNU Emacs?]

        (1995-01-05)

microfloppies

        3.5-inch floppies, as opposed to 5.25-inch {vanilla} or
        mini-floppies and the now-obsolete 8-inch variety.  This term
        may be headed for obsolescence as 5.25-inchers pass out of
        use, only to be revived if anybody floats a sub-3-inch floppy
        standard.  See {stiffy}, {minifloppies}.

microfortnight

        One millionth of the fundamental unit of time in the
        Furlong/Firkin/Fortnight system of measurement; 1.2096 sec.
        (A furlong is 1/8th of a mile; a firkin is 1/4th of a barrel;
        the mass unit of the system is taken to be a firkin of water).

        The VMS operating system has a lot of tuning parameters that
        you can set with the SYSGEN utility, and one of these is
        TIMEPROMPTWAIT, the time the system will wait for an operator
        to set the correct date and time at boot if it realises that
        the current value is bogus.  This time is specified in
        microfortnights!

        Multiple uses of the millifortnight (about 20 minutes) and
        {nanofortnight} have also been reported.

MicroGnuEmacs

        (MG) A {Public Domain} {Emacs}-style editor modified from
        {MicroEMACS} to be more compatible with {GNU} Emacs.
        MicroGnuEmacs is essentially free, it is not associated with
        the GNU project, and does not have the GNU copyright
        restrictions.  It is a small, fast, portable editor for people
        who can't run real Emacs thing for one reason or another.  It
        has few if any of the MicroEMACS features that were
        incompatible with GNU Emacs and adds missing features that
        seemed essential.

        MG version 1a of 1986-11-16 is known to work with {4.2BSD}
        and {4.3BSD} {Unix}, {Ultrix-32}, {OS9/68k}, {VMS}, {Amiga},
        {System V}, {Eunice}.  It should also support {MS-DOS},
        {PC-DOS} and the {Rainbow}.

        MicroGnuEmacs is derived from, and aims to replace, v30 of
        MicroEMACS, the latest version from the original MicroEMACS
        author Dave Conroy.  The chief contributors were Mike Meyer
        <mwm@ucbopal.berkeley.edu>, Mic Kaczmarczik
        <mic@ngp.utexas.edu>, Bob Larson <blarson@usc-oberon.arpa> and
        Dave Brower <rtech!daveb@sun.com>.

        {(ftp://src.doc.ic.ac.uk/usenet/comp.sources.unix/volume8/micrognu)}

Micro Instrumentation and Telemetry Systems

        <company> (MITS) The company which made the {Altair 8800} and
        {Altair 9000} {micrcomputer} kits.  They also made
        instrumentation kits for model rockets and RC vehicles.  Ed
        Roberts owned MITS for a few years until he sold out, moved to
        Georgia, and went to med school.

        Address: Albuquerque NM, USA.

        (1997-06-25)

Micro Interpreter for Knowledge Engineering

        <artificial intelligence, tool> (MIKE) An {expert system
        shell} for teaching purposes, with {forward chaining},
        {backward chaining}, and user-definable {conflict resolution}
        strategies.  MIKE is written in {Edinburgh Prolog}.

        Version 2.03.

        [BYTE, Oct 1990].

        {(ftp://hcrl.open.ac.uk/pub/software/src/MIKE-v2.03)}

        Contact: Marc Eisenstadt, HCRL, {Open University}.

        (1995-01-10)

microkernel

        <operating system> An approach to {operating system} design
        emphasising small {modules} that implement the basic features
        of the system {kernel} and can be flexibly configured.

        (1999-08-02)

microLenat

        /mi:"-kroh-len"-*t/ The unit of {bogosity}, written uL; the
        consensus is that this is the largest unit practical for
        everyday use.  The microLenat, originally invented by David
        Jefferson, was promulgated as an attack against noted computer
        scientist {Doug Lenat} by a {tenured graduate student} at
        {CMU}.  Doug had failed the student on an important exam for
        giving only "AI is bogus" as his answer to the questions.  The
        slur is generally considered unmerited, but it has become a
        running gag nevertheless.  Some of Doug's friends argue that
        *of course* a microLenat is bogus, since it is only one
        millionth of a Lenat.  Others have suggested that the unit
        should be redesignated after the grad student, as the
        microReid.

micrometre

        <unit> (Or "micron") One millionth of a {metre}.  The symbol
        is a Greek letter {mu} followed by "m".

        Features on modern {integrated circuits} are typically
        measured in microns.  The smallest features in 1999 are around
        0.1 microns across.

        (1999-09-28)

Micro ML

        (uML) An {interpreter} for a subset of {SML}.  Runs on
        {MS-DOS}.  Written at the University of Umea, Sweden.

        {(ftp://ftp.cs.umu.se/pub/umlexe01.zoo)}

Micron

        {Micron Electronics, Inc.}

micron

        {micrometre}

Micron Electronics, Inc.

        <company> An electronics company that develops, markets,
        manufactures, and supports high-performance {notebook
        computers}, {desktop} {personal computers}, {PC servers} and
        related {hardware} and {software} products.

        (1997-03-10)

Micronetics Standard MUMPS

        (MSM) A version of {MUMPS} for the {IBM PC RT} and {R6000}.

        [Address?]

        (1995-01-10)

Micro$oft

        <abuse, company> {Microsoft}.

        {Hate Mirco$oft
        (http://www.oeh.uni-linz.ac.at:8001/~chris/HATE/hate.html)}.

        (1995-03-03)

microPLANNER

        A subset of {PLANNER}, implemented in {Lisp} by {Gerald
        Sussman} et al at {MIT}.  Its important features were
        goal-oriented, pattern-directed procedure invocation, an
        embedded knowledge base, and automatic {backtracking}.

        microPLANNER was superseded by {Conniver}.

        ["microPLANNER Reference Manual", G.J. Sussman et al, AI Memo
        203, MIT AI Lab, 1970].

        (1995-01-10)

microprocesor

        <spelling> It's spelled {microprocessor}.

        (1997-02-13)

microprocessor

        <architecture> (Or "micro") A computer whose entire {CPU} is
        contained on one (or a small number of) {integrated circuits}.

        The important characteristics of a microprocessor are the
        widths of its internal and external {address bus} and {data
        bus} (and instruction), its {clock rate} and its {instruction
        set}.  Processors are also often classified as either {RISC}
        or {CISC}.

        The first commercial microprocessor was the {Intel 4004} which
        appeared in 1971.  This was the CPU member of a set of four
        {LSI} {integrated circuits} called the MCS-4, which was
        originally designed for use in a calculator but was marketed
        as "programmable controller for logic replacement".  The 4004
        is referred to as a 4-bit microprocessor since it processed
        only 4 bits of data at a time.  This very short word size is
        due mainly to the limitations imposed by the maximum
        integrated circuit density then achievable.

        As integrated circuit densities increased with the rapid
        development of integrated circuit manufacturing technology,
        the power and performance of the microprocessors also
        increased.  This is reflected in the increase in the CPU word
        size to 4, 8, 16, and by mid-1980s, 32 bits.  The smaller
        microprocessors have relatively simple {instruction sets},
        e.g., no {floating point} instructions, but they are
        nevertheless suitable as controllers for a very wide range of
        applications such as car engines and microwave ovens.

        The {Intel 4004} was followed with, among others the {4040},
        {8080}, {8086}, {80186}, {80286}, {80386}, {486} and
        {Pentium}.  Other families include the {Motorola} {6800} and
        {680x0} families, {National Semiconductor} {NS16000} and
        {NS32000}, {SPARC}, {ARM}, {MIPS}, {Zilog Z8000}, {PowerPC}
        and the {Inmos} {Transputer} family.

        The larger, more recent microprocessors families have
        gradually acquired most of the features of large computers.
        As the microprocessor industry has matured, several families
        of microprocessors have evolved into de facto industrial
        standards with multiple manufacturers and numerous "support"
        chips including {RAM}, {ROM}, {I/O controllers} etc.

        A single chip microprocessor may include other components such
        as memory ({RAM}, {ROM}, {PROM}), {memory management},
        {caches}, {floating-point unit}, input/output ports and
        timers.  Such devices are also known as {microcontrollers}.

        The one-chip microcomputer is in many respects, a landmark
        development in computer technology because it reduces the
        computer to a small, inexpensive, and easily replaceable
        design component.

        Microcomputers have given rise to a new class of
        general-purpose machines called {personal computer}s.  These
        are small low cost computers that are designed to sit on an
        ordinary office desk or to be portable and fuelled the
        computer boom of the late 1980s.  The most widespread example
        is the also {IBM PC}, based on microprocessors from {Intel
        Corporation}.  {Apple Computers, Inc.} have also produced a
        range of personal computers, as have several other companies.

        See also {killer micro}, {minicomputer}, {CPU Info Center}.

        (1996-11-26)

Microprocessor without Interlocked Pipeline Stages

        <processor> (MIPS) A project at {Stanford University} intended
        to simplify processor design by eliminating hardware
        {interlock}s between the five {pipeline} stages.  This means
        that only single execution cycle instructions can access the
        thirty two 32-bit general {register}s, so that the {compiler}
        can schedule them to avoid conflicts.  This also means that
        LOAD/STORE and branch instructions have a one-cycle delay to
        account for.  However, because of the importance of multiply
        and divide instructions, a special HI/LO pair of
        multiply/divide registers exist which do have hardware
        interlocks, since these take several cycles to execute and
        complicate {instruction scheduling}.

        The project eventually lead to the commercial {MIPS R2000}
        processor.

        (1995-02-09)

microprogramming

        {microcode}

microReid

        /mi:'kroh-reed/  See {bogosity}.

MICRO SAINT

        A general purpose simulation tool from US company {Micro
        Analysis and Design}.

microsecond

        <unit> One millionth (10^-6) of a second.

        (1995-03-14)

Microserf

        <jargon> {Wired magazine}'s term for a {Microsoft} employee.

        (1995-03-02)

Microslop

        <company, abuse> A derisive synonym for {Microsoft
        Corporation}.  It refers to the sloppy, {bug}-ridden "x.0"
        versions of {MS-DOS}, {Microsoft Windows} and other Microsoft
        products.

        (1995-12-28)

Microsloth Windows

        <abuse, operating system> /mi:'kroh-sloth" win"dohz/ (Or
        "Windoze", /win'dohz/) A derogatory term for {Microsoft
        Windows} which is so limited by bug-for-bug compatibility with
        {mess-dos} that it is agonisingly slow on anything less than a
        fast {486}.  Also called just "Windoze", with the implication
        that you can fall asleep waiting for it to do anything; the
        latter term is extremely common on {Usenet}.

        Compare {X}, {sun-stools}.

        (1996-10-08)

Microsoft

        {Microsoft Corporation}

Microsoft Access

        1. <database> A {relational database} running under {Microsoft
        Windows}.  Data is stored as a number of "{tables}",
        e.g. "Stock".  Each table consists of a number of "{records}"
        (e.g. for different items) and each record contains a number
        of "{fields}", e.g. "Product code", "Supplier", "Quantity in
        stock".

        Access allows the user to create "{forms}" and "reports".  A
        form shows one record in a user-designed format and allows the
        user to step through records one at a time.  A report shows
        selected records in a user-designed format, possibly grouped
        into sections with different kinds of total (including sum,
        minimum, maximum, average).

        There are also facilities to use links ("{joins}") between
        tables which share a common field and to filter records
        according to certain criteria or search for particular field
        values.

        Version: 2 (date?).

        {Usenet} newsgroup: {news:comp.databases.ms-access}.

        2. <communications> A communications program from Microsoft,
        meant to compete with {ProComm} and other programs.  It sucked
        and was dropped.  Years later they reused the name for their
        database.

        [Date?]

        (1997-07-20)

Microsoft Basic

        <language> (MS-BASIC) A dialect of {BASIC} from {Microsoft},
        originally developed by {Bill Gates} in a garage back in the
        {CP/M} days.  It was originally known as GWBasic, then QBASIC
        and finally MS-BASIC.

        When the {MS-DOS} {operating system} came out, it incorporated
        the GWBASIC.EXE or BASICA.EXE interpreters.  GWBASIC ("Gee
        Whiz") incorporated graphics and a {screen editor} and was
        compatible with earlier BASICs.

        QBASIC was more sophisticated.  Version 4.5 had a full screen
        editor, debugger and compiler.  The compiler could also
        produce executable files but to run these a utility program
        (BRUN44.EXE) had to be present.  Thus {source code} could be
        kept private.

        From DOS 5.0 or 6.0 onwards, MS-BASIC was standard.  The
        current version, 1.1, also produces {stand-alone} executables
        and can display graphics.

        {Usenet} newsgroup: {news:comp.lang.basic.misc}.

        [Relationship to BASIC in ROM on first IBM PC?]

        (1995-05-12)

Microsoft Certified System Engineer

        <education> (MCSE) A qualification obtained by completing
        {Microsoft}'s system engineer certification course.

        {(http://www.bcdata.com/mcse.htm)}.

        (1998-06-24)

Microsoft Corporation

        <company> The biggest supplier of {operating systems} and
        other software for {IBM PC} compatibles.  Software products
        include {MS-DOS}, {Microsoft Windows}, {Windows NT},
        {Microsoft Access}, {LAN Manager}, {MS Client}, {SQL Server},
        {Open Data Base Connectivity} (ODBC), {MS Mail}, and {SNA
        Server} for Windows NT.

        Microsoft was founded as "Micro-soft" in 1975 by {Bill Gates}
        (now CEO) and his high school pal Paul Allen.  Their first
        product was a version of {BASIC} for the new {Altair} computer
        [which one?].  In 1980, {IBM} chose Microsoft to supply the
        {operating system} for the {IBM PC}.

        On the UK television program "The Net" in May 1994, {Bill
        Gates} said he was betting his company on the {information
        highway}".

        Quarterly sales $1293M, profits $362M (Aug 1994).

        {Home (http://www.microsoft.com/)}.
        {(ftp://ftp.microsoft.com/)}.

        {Interesting Info and Other Microsoft WWW Servers
        (http://www-drg.microsoft.com/devinfo.htm)}.

        {Microsoft Windows Developer Information
        (http://www-drg.microsoft.com/devinfo.htm)}.

        {Microsoft Research Group Information
        (http://www.research.microsoft.com)}.

        {Win_News
        (http://www.microsoft.com/chicago/ms-www/ms-intro.htm)}
        maintained by the Personal Operating Systems Division to
        distribute information on {Microsoft Windows}, {MS-DOS} and
        {Windows 95}.

        (1998-11-06)

Microsoft Excel

        <tool> A {spreadsheet} program from {Microsoft}, part of their
        {Microsoft Office} suite of productivity tools for {Microsoft
        Windows} and {Macintosh}.  Excel is probably the most widely
        used spreadsheet in the world.

        Current version: Excel 97 (1997-01-14).

        {Home (http://www.microsoft.com/msexcel/)}.

        [Feature summary?  History?]

        (1997-01-14)

Microsoft Exchange

        <messaging> {Microsoft}'s messaging and enterprise
        collaboration server.  Exchange's primary role is as an
        {electronic mail} {message store} but it can also store
        calendars, task lists, contact details, and other data.

        [Better descripton?  URL?]

        (1999-09-17)

Microsoft Extended

        <computer> (MSX) A Range of computers created in an attempt by
        the industry to create a standard for home computers, similar
        to {VHS} did with home video.

        The basic MSX machine contained a {Z80} {CPU} working at
        3.58MHz.

        MSX machines were produced by such giants as {Sony}, {Yamaha},
        {Panasonic}, {Toshiba}, {Daewoo}, and {Philips}.

        The MSX standard was designed by a company called ASCII in
        cooperation with {Microsoft} who provided a {firmware} version
        of its {BASIC} for the machine.  Because this BASIC version
        was an extended version of {MicroSoft Basic}, it was called
        "MicroSoft eXtended BASIC"; Hence "MSX".

        Microsoft also produced MSX-DOS - a stripped-down version of
        {MS-DOS}.

        Extensions to the MSX included MSX2, MSX2+ and TurboR.

        {FAQ (http://www.faq.msxnet.org/)}.

        (1999-02-26)

Microsoft Foundation Classes

        <programming> (MFC) Software structures in {C++}, the Windows
        base {classes} which can respond to messages, make windows,
        and from which application specific classes can be derived.

        (1995-11-17)

{Microsoft IIS}

        {Internet Information Server}

Microsoft IntelliMouse Explorer

        <hardware> An {optical mouse} from {Microsoft}.

        {(http://microsoft.com/presspass/features/1999/04-19mouse.htm)}.

        (1999-07-21)

{Microsoft Internet Information Server}

        {Internet Information Server}

Microsoft Mail

        <messaging, tool> (MS Mail) A {Microsoft Windows} {electronic
        mail} program.

        [Features?  Version?]

        (1996-08-26)

Microsoft Mail Application Program Interface

        {Messaging Application Programming Interface}

Microsoft Network

        {The Microsoft Network}

Microsoft Networking

        <networking> {Microsoft's} name for the networking subsystems
        of {Windows 95} and later.  Not to be confused with {The
        Microsoft Network}.

        Microsoft networking uses the {SMB} file sharing protocol.  It
        is implemented as file system drivers i.e. "{installable file
        systems}" (IFS).

        The {network redirector} "Client for Microsoft Networks", is
        implemented in the VREDIR.VXD {virtual device driver}.  {Peer}
        resource sharing is provided by "File and Printer Sharing for
        Microsoft Networks" (VSERVER.VXD).

        Windows 95's support for {Netware} ({NCP}) networks is
        provided in a similar way via NWREDIR.VXD and NWSERVER.VXD.

        (1999-08-08)    

Microsoft Office

        <product> {Microsoft}'s bundles of {productivity tools}.
        Different versions contain some or all of {Microsoft Word},
        {Microsoft Excel}, {Powerpoint}, {Outlook}, {Microsoft
        Access}, {Microsoft Publisher}, {Microsoft Front Page},
        {Microsoft Team Manager}, {Microsoft Project}, {Microsoft
        Schedule+}, {Microsoft Internet Explorer}, {Small Business
        Financial Manager}, {Automap Streets Plus}.

        Current versions: Office 97 Professional Edition, Office 97
        Standard Edition, Office 97 Small Business Edition, Office 97
        Developer Edition (1997-12-05).

        {Home (http://www.microsoft.com/office)}.

        (1997-12-05)

Microsoft Point to Point Encryption

        <protocol> (MPPE) An {encryption} {protocol} that may be used
        with {PPTP} to provide an encrypted connection.

        (1998-09-24)

Microsoft SQL Server

        <database> A {relational database management system} (RDBMS)
        which is part of {Microsoft}'s {BackOffice} family of
        {servers}.  SQL Server was designed for {client/server} use
        and is accessed by applications using {SQL}.  It runs on
        {Windows NT} version 3.5 or higher and is compliant with the
        {ANSI} {SQL-92} and {FIPS} 127-2 {SQL} {standards}.

        SQL Server supports {symmetric multiprocessing} hardware;
        {SNMP}, {ODBC}, and major {open standard} communications
        {protocols}.  It has {Internet} integration, data
        {replication} and {data warehousing} features.

        Microsoft SQL Server was originally developed by {Sybase
        Corporation} but the cooperation was broken sometime before
        version 6.0 [anyone knows when?].

        Latest version: 6.5.

        {Home (http://www.microsoft.com/sql)}.

        {Usenet} newsgroup: {news:comp.databases.ms-sqlserver}.

        (1998-05-18)

Microsoft Windows

        <operating system> {Microsoft}'s proprietary {window system}
        and {user interface} software released in 1985 to run on top
        of {MS-DOS}.  Widely criticised for being too slow (hence
        "{Windoze}", "{Microsloth Windows}") on the machines available
        then.

        The 1996 market share of operating systems was:

         DOS/Windows    70%
         Windows 95     15%
         Windows NT      2%
         Other          13%

        [Current shares?]

        The version history goes something like: 1985 {Windows 1},
        1987 {Windows 2}, 1987 {Windows/386}, 1990 {Windows 3.0}, 1992
        {Windows 3.1}, 1992 {Windows for Workgroups 3.1}, 1993
        {Windows 3.11}, 1993 {Windows for Workgroups 3.11}, 1993
        {Windows NT 3.1}, 1994 {Windows NT 3.5}, 1995 {Windows 95},
        199? {Windows NT 4}, 1998 {Windows 98}, ? {Windows NT 5}.

        {Usenet} newsgroups:
        {news:comp.os.ms-windows.comp.os.ms-windows.advocacy},
        {news:comp.os.ms-windows.comp.os.ms-windows.announce},
        {news:comp.os.ms-windows.apps.comm},
        {news:comp.os.ms-windows.apps.compatibility.win95},
        {news:comp.os.ms-windows.apps.financial},
        {news:comp.os.ms-windows.apps.misc},
        {news:comp.os.ms-windows.apps.utilities},
        {news:comp.os.ms-windows.apps.utilities.win3x},
        {news:comp.os.ms-windows.apps.utilities.win95},
        {news:comp.os.ms-windows.apps.winsock.mail},
        {news:comp.os.ms-windows.apps.winsock.misc},
        {news:comp.os.ms-windows.apps.winsock.news},
        {news:comp.os.ms-windows.apps.word-proc},
        {news:comp.os.ms-windows.misc},
        {news:comp.os.ms-windows.networking.misc},
        {news:comp.os.ms-windows.networking.ras},
        {news:comp.os.ms-windows.networking.tcp-ip},
        {news:comp.os.ms-windows.networking.win95},
        {news:comp.os.ms-windows.networking.windows},
        {news:comp.os.ms-windows.nt.admin.misc},
        {news:comp.os.ms-windows.nt.admin.networking},
        {news:comp.os.ms-windows.nt.advocacy},
        {news:comp.os.ms-windows.nt.announce},
        {news:comp.os.ms-windows.nt.misc},
        {news:comp.os.ms-windows.nt.pre-release},
        {news:comp.os.ms-windows.nt.setup.hardware},
        {news:comp.os.ms-windows.nt.setup.misc},
        {news:comp.os.ms-windows.nt.software.backoffice},
        {news:comp.os.ms-windows.nt.software.compatibility},
        {news:comp.os.ms-windows.nt.software.services},
        {news:comp.os.ms-windows.pre-release},
        {news:comp.os.ms-windows.programmer},
        {news:comp.os.ms-windows.programmer.controls},
        {news:comp.os.ms-windows.programmer.graphics},
        {news:comp.os.ms-windows.programmer.memory},
        {news:comp.os.ms-windows.programmer.misc},
        {news:comp.os.ms-windows.programmer.multimedia},
        {news:comp.os.ms-windows.programmer.networks},
        {news:comp.os.ms-windows.programmer.nt.kernel-mode},
        {news:comp.os.ms-windows.programmer.ole},
        {news:comp.os.ms-windows.programmer.tools.mfc},
        {news:comp.os.ms-windows.programmer.tools.misc},
        {news:comp.os.ms-windows.programmer.tools.owl},
        {news:comp.os.ms-windows.programmer.tools.winsock},
        {news:comp.os.ms-windows.programmer.vxd},
        {news:comp.os.ms-windows.programmer.win32},
        {news:comp.os.ms-windows.programmer.winhelp},
        {news:comp.os.ms-windows.setup},
        {news:comp.os.ms-windows.setup.win3x},
        {news:comp.os.ms-windows.setup.win95},
        {news:comp.os.ms-windows.video},
        {news:comp.os.ms-windows.win95.misc},
        {news:comp.os.ms-windows.win95.setup},
        {news:comp.binaries.ms-windows}.

        (1998-10-15)

Microsoft Word

        <text, tool, product> A popular {word processor}, part of the
        {Microsoft Office} suite.  The original Word (versions 1.0 to
        4.?/5.0?) was originally {text-based} (non-{GUI}) and ran
        under {MS-DOS}.  Then Microsoft released {Word for Windows}
        1.0 and 2.0.  Later they produced new versions for each OS,
        both numbered 6.0.

        {Home (http://www.microsoft.com/catalog/products/word/)}.

        [Features?]

        (1997-02-11)

microtape

        <hardware, storage> /mi:'kroh-tayp/ Occasionally used to mean
        a {DECtape}, as opposed to a {macrotape}.

        Apparently the term "microtape" was actually the official term
        used within DEC for these tapes until someone coined the word
        "DECtape", which, of course, sounded sexier to the
        {marketroid}s.  Another version of the story holds that
        someone discovered a conflict with another company's
        "microtape" trademark.

        (1995-03-16)

Microware Corporation

        Authors of {OS-9}.

        Address: Des Moines, Iowa, USA.

        (1995-02-02)

Microwave Hardware Description Language

        (MHDL) A {Hardware Description Language} from {Intermetrics}
        incorporating {Haskell} 1.2.

        Not to be confused with other {MHDL}s.

        E-mail: David Barton <dlb@hudson.wash.inmet.com>.

        (1994-11-14)

MIDAS

        A digital simulation language.

        [Sammet 1969, p.627].

Midas

        A {Motif}-based toolkit for interactive data analysis by
        T. Johnson, SLAC.  The basis for the {Midas-WWW} {browser}.

Midas-WWW

        <World-Wide Web> A {Motif}-based {browser} for {WWW} based on
        the {Midas} toolkit.

        (1998-08-09)

middle-endian

        <data, architecture> Neither {big-endian} nor {little-endian}.
        Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3,
        occasionally found in the {packed decimal} formats of some
        {minicomputer} manufacturers.

        See {-endian}.

        (1998-08-09)

middleware

        Software that mediates between an {application program} and a
        {network}.  It manages the interaction between disparate
        applications across the heterogeneous computing {platform}s.
        The {Object Request Broker} (ORB), software that manages
        communication between {objects}, is an example of a middleware
        program.

MIDI

        {Musical Instrument Digital Interface}

mid-level network

        (Or "regional network").  The kind of networks which make up
        the second level of the {Internet} hierarchy.  They are the
        {transit network}s which connect the {stub network}s to the
        {backbone network}s.

MIF

        {Maker Interchange Format}

MIG

        {Mach Interface Generator}

MIGRAINES

        <tool> A {graphical user interface} for evaluating and
        interacting with the {Aspirin} {neural network} simulation.

        Utilities exist for moving quickly from an {Aspirin}
        description of a network directly to an executable program for
        simulating and evaluating that network.  MIGRAINES has been
        kept separate from Aspirin so that its limitations do not
        restrict the performance of Aspirin.  However, in practice,
        they are used together.  This combination allows for simple
        specification and creation of efficient neural network systems
        that can be graphically analysed and tested.

        [Aspirin/MIGRAINES Neural Network Software User's Manual,
        Release v6.0 MP-91W00050, Copyright 1992 by Russel Leighton
        and the MITRE Corporation].

        (1995-03-07)

MII

        1. <body> A consortium of {Microsoft}, {IBM}, and {Intel}.

        [When?  What did it do?]

        2. <storage> A broadcast component video tape format licensed
        by Panasonic.

        (1998-11-15)

MIIS

        <language> /Meese/ An interpreted language with one-letter
        {keywords}.

        [Details?  Similar to {MUMPS}?]

        (1995-01-10)

MIKE

        {Micro Interpreter for Knowledge Engineering}

mil

        <networking> The {top-level domain} for entities affiliated
        with US armed forces.

        (1999-01-26)

Milarepa

        <tool> A {Perl} {BNF} {parser generator} by Jeffrey Kegler
        <jeffrey@netcom.com>.  Milarepa takes a source {grammar}
        written in a mixture of {BNF} and {Perl} and generates Perl
        source, which, when enclosed in a simple wrapper, parses the
        language described by the grammar.  Milarepa is not restricted
        to {LRn grammars}, and the parse logic follows directly from
        the BNF.  It handles {ambiguous grammar}s, ambiguous tokens
        (tokens which were not positively identified by the lexer) and
        allows the programmer to change the start symbol.  The grammar
        may not be {left recursive}.  The input must be divided into
        sentences of a finite maximum length.  There is no fixed
        distinction between {terminal}s and non-terminals, that is, a
        symbol can both match the input AND be on the left hand side
        of a production.  Multiple Marpa grammars are allowed in a
        single Perl program.

        Version: Prototype 1.0.

        Posted to comp.lang.perl.

        The author is seeking an FTP site to hold the software.

        (1993-03-17)

MILITRAN

        A {discrete simulation} system for military applications
        produced by the Sys Res Group at {ONR} in 1964.

        [Sammet 1969, p. 657].

        (1994-11-11)

mill

        {Arithmetic and Logic Unit}

millennium bug

        {Year 2000}

millennium meltdown

        {Year 2000}

milli-

        {prefix}

milliLampson

        /mil'*-lamp"sn/ A unit of talking speed, abbreviated mL.  Most
        people run about 200 milliLampsons.  The eponymous Butler
        Lampson (a CS theorist and systems implementor highly regarded
        among hackers) goes at 1000.  A few people speak faster.  This
        unit is sometimes used to compare the (sometimes widely
        disparate) rates at which people can generate ideas and
        actually emit them in speech.  For example, noted computer
        architect C. Gordon Bell (designer of the {PDP-11}) is said,
        with some awe, to think at about 1200 mL but only talk at
        about 300; he is frequently reduced to fragments of sentences
        as his mouth tries to keep up with his speeding brain.

millisecond

        <unit> (ms) One thousandth of a second, one thousand
        {microsecond}s.  A long time for a modern computer.

        (1995-08-18)

MILNET

        Military Network.  Part of the {Defense Data Network} (DDN)
        and of the {Internet}.  Managed by the {Defense Information
        Systems Agency} (DISA).

        [Location?  Number of hosts?  Purpose?]

MIMD

        {Multiple Instruction/Multiple Data}

MIME

        {Multipurpose Internet Mail Extensions}

mimencode

        (Originally distributed as "mmencode").  A replacement for
        {uuencode} for use in {electronic mail} and {news}.  Part of
        {MIME}.  uuencode uses characters that don"t translate well
        across all mail gateways (particularly those which convert
        between {ASCII} and {EBCDIC}).  Also, different variants of
        uuencode encode data in different and incompatible ways, with
        no standard.  Finally, few uuencode variants work well in a
        pipe.  Mimencode implements the encodings which were defined
        for {MIME} as uuencode replacements, and should be
        considerably more robust for e-mail use.  Written by Nathaniel
        S. Borenstein of Bell Communications Research,
        Inc. ({Bellcore}) in 1991.

MIMER

        <database> A {relational database management system} developed
        by the Swedish company {Sysdeco Mimer}.

MIME type

        <file format, protocol, multimedia> The unique identifier used
        for different file types when conveyed across a {MIME}-based
        {protocol} such as {MIME} {e-mail} or {HTTP}.

        Registration of MIME types is explained in {RFC 2048}.

        {Official MIME types
        (ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types)}.

        (1998-02-10)

MIMIC

        <language> An early language designed by J.H. Andrews of the
        NIH in 1967 for solving engineering problems such as
        differential equations that would otherwise have been done on
        an {analog computer}.

        ["MIMIC, An Alternative Programming Language for Industrial
        Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon
        1972].

        (1995-01-19)

MIMOLA

        Operational hardware specification language.

        ["A Retargetable Compiler for a High-Level Microprogramming
        Language", 17th Ann Workshop on Microprogramming, P. Marwedel,
        IEEE 1984, pp. 267-274].

mind mouse

        <hardware> A {pointing device} (unlike a {mouse} in design,
        but serving the same purpose) which works via sensors in
        contact with the user's skin.  The sensors are built into a
        plastic base which fits on one finger and which is similar in
        shape to a finger cast.

        The principle of operation is presumably myoelectric, not
        psionic, contrary to what the name implies.

        As of the time of writing (1996), mind mice are not accurate
        enough to be anything but novelties.

        [Availability?]

        (1997-04-07)

mind uploading

        <application> The science fiction concept of copying one's
        mind into an artificial body or computer.

        {Home
        (http://sunsite.unc.edu/jstrout/uploading/MUHomePage.html)}.

        (1995-04-10)

Minerva software

        A company producing software for the {Acorn} {Archimedes}.

        {(http://www.zynet.co.uk/minerva/)}

        (1995-01-31)

minicomputer

        <computer> A computer built between about 1963 and 1987,
        smaller and less powerful than a {mainframe}, typically about
        the size and shape of a wardrobe, mounted in a single tall
        rack.

        Minicomputers were characterised by short {word} lengths of 8
        to 32 {bit}s, limited hardware and software facilities and
        small physical size.  Their low cost made them suitable for a
        wide variety of applications such as industrial control, where
        a small, dedicated computer which is permanently assigned to
        one application, is needed. In recent years, improvements in
        device technology have resulted in minicomputers which are
        comparable in performance to large {second generation
        computers} and greatly exceed the performance of {first
        generation} {computers}.

        The processor was typically built using low integration logic
        {integrated circuits} - {TTL} or maybe {ECL}, thus
        distinguishing it from a {microcomputer} which is built around
        a {microprocessor} - a processor on a single (or maybe a few)
        ICs.

        {DEC}'s {PDP-1} was the first minicomputer and their {PDP-11}
        was the most successful, closely followed (in both time and
        success) by the {VAX} (which {DEC} called a "{super
        minicomputer}").

        Another early minicomputer was the {LINC} developed at {MIT} in
        1963.

        Other minicomputers were the {AS/400}, the {PRIME} series, the
        {AP-3}, {Olivetti}'s {Audit 7} and the {Interdata 8/32}.

        [Others?]

Mini Disc

        <storage, music> A music medium designed by {Sony} as a
        portable replacement for music {Compact Discs}.  In 1994 Sony
        announced a data version which can hold 140 MB or about 100 MB
        using {error correction}.  These will be competitive with 128
        MB {magneto-optical} disks.  Mini Discs may be either a
        re-writable or mass-produced read-only type.  Sony have also
        announced a standard data format.

        The transfer rate is similar to {CD-ROM} which is slow
        compared to the current {magneto-optical} drives (which are
        similar to an old hard disk, with writing noticeably slower
        than reading).  Pre-recorded read-only Mini Discs can be mass
        manufactured on a modified CD press - this and the standard
        format mean it could take off as a software distribution
        medium.

        An article in the December 1994 PCW quotes {access time}s of
        about 300 ms and data transfer rate of about 150 kb/s (i.e.
        about single spin CD rate).

        (1994-12-13)

minifloppy

        <storage> 5.25-inch {vanilla} floppy disks, as opposed to
        3.5-inch or {microfloppies} and the now-obsolescent 8-inch
        variety.

        At one time, this term was a trademark of {Shugart Associates}
        for their SA-400 minifloppy drive.  Nobody paid any attention.

        See {stiffy}.

        (1996-05-03)

minimal automaton

        <theory> An {automaton} possessing with {redundant states}.

        (1996-05-03)

minimax

        <games> An {algorithm} for choosing the next move in a two
        player game.  A player moves so as to maximise the minimum
        value of his opponent's possible following moves.  If it is my
        turn to move, I give a value to each legal move I might make.
        If the result of a move is an immediate win for me I give it
        positive infinity and, if it is an immediate win for you,
        negative infinity.  The value to me of any other move is the
        minimum of the values resulting from each of your possible
        replies.

        The above algorithm will give every move a value of positive
        or negative infinity since the value of every move will be the
        value of some final winning or losing move.  This can be
        extended if we can supply a {heuristic} {evaluation function}
        which gives values to non-final game states without
        considering all possible following complete sequences.  We can
        then limit the minimax algorithm to look only a certain number
        of moves ahead.  This number is called the "look-ahead" or
        "ply".  See also {alpha/beta pruning}.

Mini-ML

        ["A Simple Applicative Language: Mini-ML", D. Clement et al,
        Proc 1986 ACM Conf on LISP and Functional Prog, (Aug 1986)].

minimum seek time

        <storage> (Or track-to-track seek time) The time it takes to
        move the head of a {disk drive} from one {track} to the next.
        The minimum seek time gives a good measure of the speed of the
        drive in a single-user/single-process environment where
        successive read/write request are largely correlated and thus
        if correlated data is stored in nearby cylinders most seeks
        are from one cylinder to the next.

        (1997-07-15)

Mini PL/I

        A commercial {PL/I} subset for the {Olivetti} {Audit 7}
        {minicomputer}.

MINITAB II

        A system for interactive solution of small statistical
        problems.

        ["MINITAB Student Handbook", T.A. Ryan et al, Duxbury Press
        1976].

        (1994-10-31)

MINIX

        <operating system> /MIN-ix/ A small {operating system} that is
        very similar to {UNIX}.  MINIX was written for educational
        purposes by Prof. {Andrew S. Tanenbaum} of {Vrije
        Universiteit, Amsterdam}.

        MINIX has been written from scratch and contains no AT&T code
        -- neither in the {kernel}, the {compiler}, the utilities, nor
        the libraries.  Although copyrighted by Prentice-Hall, all
        {sources}, {binaries} and {documentation} can be obtained via
        {Internet} for educational or research purposes.

        Current versions as of 1996-11-15:

        MINIX 2.0 - {Intel} {CPU}s from {Intel 8088} to {Pentium}

        MINIX 1.5 - {Intel}, {Macintosh} ({MacMinix}), {Amiga}, {Atari
        ST}, {Sun} {SPARC}.

        {Home (http://www.cs.vu.nl/~ast/minix.html)}.

        (1997-06-16)

Minnesota Internet Users Essential Tool

        <networking, tool> (Minuet) An integrated package for {IBM PC}
        that includes modules for {electronic mail} (using the {POP}
        {protocol}), {Gopher}, {telnet}, {Usenet} news and {FTP}.
        Minuet provides an easy-to-use, {mouse}-driven {graphical user
        interface} via the {TurboVision} libraries.  It is a {TCP/IP}
        {client} that runs over any type of TCP/IP {network} including
        {Ethernet} and {SLIP}.  It will work with either {static IP
        address}es or {dynamic IP address}es ({bootp}).

        {FAQ
        (http://www.micro.umn.edu/products/minuet/minuet-1.html)}.
        {(ftp://boombox.micro.umn.edu/pub/pc/minuet/beta16/minuarc.exe)}.

        (1995-04-10)

MINT

        {Mint Is Not TRAC}

MiNT

        <operating system> (MinT is not TOS - a {recursive acronym}) A
        freeware, {open source operating system} for the {Atari ST}
        range of computers.  MiNT was originally based on a {port} of
        {BSD} to {Atari ST} computers by Eric R. Smith.  MiNT gave the
        Atari access to BSD's many network applications.  A short
        (1992-94) romance between MiNT and {Atari} Corp., who decided
        to convert the system to the {MultiTOS} {kernel}, produced a
        unique TOS/Unix hybrid, which provides simultaneous access to
        both {GEM} and BSD application libraries.

        Since MiNT is MultiTOS's kernel, it has kept all the features
        described above and, if an {AES} replacement is installed, it
        can show you a new face of MultiTOS.  Unlike MultiTOS however,
        MiNT is based on a different {file system}, that is faster and
        more flexible than TOS's.  Furthermore, thanks to the network
        support, MiNT allows an Atari to be an {Internet} {server}
        that can still run GEM and TOS applications!  This has won
        MiNT many devotees ("MiNTquisitors"), making it the main
        competitor for {ASH}'s {MagiC}.

        Unlike {Linux}, MiNT can run on a {Motorola 68000} with no
        {FPU}.  It needs at least 4 MB of RAM, more to run multiuser
        or to run GEM applications at the same time.

        {(http://www.orient.uw.edu.pl/~conradus/docs/mint.html)}.

        (1999-07-20)

Mint Is Not TRAC

        <text, tool> (MINT) A version of {TRAC} used as the {extension
        language} in the {Freemacs} editor.

        {(ftp://sun.soe.clarkson.edu/pub/freemacs)}

        (1994-10-31)

Minuet

        <networking> {Minnesota Internet Users Essential Tool}.

MINUIT

        A program for {function minimisation} and {error analysis}.

        (1994-10-31)

minus

        -

        Common: dash; {ITU-T}: hyphen; {ITU-T}: minus.  Rare:
        {INTERCAL}: worm; option; dak; bithorpe.

minus infinity

        The most negative value, not necessarily or even usually the
        simple negation of plus {infinity}.  In N bit twos-complement
        arithmetic, infinity is 2^(N-1) - 1 but minus infinity is
        -(2^(N-1)), not -(2^(N-1) - 1).

MIPS

        1. <unit, benchmark> Million instructions per second.

        The unit commonly used to give the rate at which a processor
        executes instructions.

        Often rendered by hackers as "Meaningless Indication of
        Processor Speed" or in other unflattering ways.  This
        expresses a nearly universal attitude about the value of most
        {benchmark} claims, said attitude being one of the great
        cultural divides between hackers and {marketroid}s.

        The etymologically incorrect singular "1 MIP" is sometimes
        heard.

        See also {KIPS} and {GIPS}.

        2. {VAX MIPS}.

        3. <processor> {Microprocessor without Interlocked Pipeline
        Stages}.

        4. <company> {MIPS Technologies, Inc.}

        (1996-03-01)

MIPS project

        {Microprocessor without Interlocked Pipeline Stages}

MIPS R2000

        <processor> The R2000 design came, in about 1987, from the
        {Stanford} {MIPS project}, which stood for Microprocessor
        without Interlocked Pipeline Stages.

        Like the {AMD 29000}, the R2000 has no {condition code
        register} considering it a potential {bottleneck}.  The
        {program counter} can be read like other registers.

        The CPU includes an {MMU} that can also control a {cache}, and
        the CPU can operate as {big-endian} or {little-endian}.  There
        is a {FPU}, the R2010.

        Versions include the {MIPS R3000} and {MIPS R4000}.

        (1995-02-09)

MIPS R2010

        A {FPU} for the {MIPS R2000}.

        (1995-02-09)

MIPS R3000

        A version of the {MIPS R2000} with improved {cache} control.

        (1995-02-09)

MIPS R4000

        A 64-bit version of the {MIPS R3000} with has more {pipeline}
        stages for a higher {clock rate} and performance.

        (1995-02-09)

MIPS Technologies, Inc.

        <company> A company which designs, develops, and licenses
        {reduced instruction set computer} (RISC) {microprocessors}
        and compilers.  MIPS Technologies, Inc. is a wholly-owned
        subsidiary of {Silicon Graphics, Inc.} and operates as an
        independent unit.  MIPS is the successor to the processor
        business of MIPS Computer Systems which was founded in 1984
        and merged with Silicon Graphics on 29 June 1992.

        MIPS Technologies developed the world's first RISC {VLSI}
        microprocessors (1985) (or was it the {ARM}?), the first
        commercial 64-bit microprocessor ({MIPS R4000}, 1992),
        announced MIPS R4300i - the first 64-bit RISC processor
        designed for interactive consumer applications (April 1995).
        They announced the MIPS R10000 - the next generation
        general-purpose MIPS microprocessor and the most powerful
        processor in the world (October 1994).

        MIPS' semiconductor company partners participate in the design
        and development of MIPS processors and software and then
        produce, market, and support the processors.  MIPS itself does
        not fabricate or sell products.  MIPS' semiconductor partners
        are: {Integrated Device Technology}, {LSI Logic Corporation},
        {NEC Corporation}, {NKK Corporation}, {Philips
        Semiconductors}, {Siemens AG}, and {Toshiba Corporation}.

        MIPS' products include:

        R4000 - 100 MHz; 1.35M transistors, primary i/d cache 8KB/8KB,
        SPECint92 58.3/ SPECfp92 61.4.

        R4300i - 133 MHZ, 1.35M transistors; primary i/d cache,
        16KB/8KB, SPECint92 80, SPECfp92 60.

        R4400 - 250 MHz, 2.3M transistors, primary i/d cache
        16KB/16KB, SPECint92 175.8, SPECfp92 164.4.

        R4600 - 133 MHz, 1.9M transistors, primary i/d cache
        16KB/16KB, SPECint92 85, SPECfp92 75.

        R8000/R8010 - 90 MHz, 2.6M, .83M transistors, primary i/d
        cache, 16KB/16KB, SPECint92 132, SPECfp92 396.

        R10000 - 200 MHz, 6.7M transistors, primary i/d cache
        32KB/32KB, SPECint92 >300, SPECfp92 >600.

        MIPS' processor chips were used in the {DEC 3100} series of
        {workstation}s.

        {Home (http://www.mips.com/)}

        {Usenet} newsgroup: {news:comp.sys.mips}.

        (1996-03-01)

Miracula

        An implementation of a subset of {Miranda} by Stefan Kahrs
        <smk@ed.ac.uk>, LFCS, no modules or files.  Can be
        interactively switched between {eager} and {lazy} evaluation.
        Portable source in C from the author.

Miranda

        <language> (From the Latin for "admirable", also the heroine
        of Shakespeare's Tempest) A {lazy} {purely functional}
        programming language and interpreter designed by {David
        Turner} <dat@ukc.ac.uk> at the {University of Kent} in the
        early 1980s.  It is sold by his company, {Research Software}
        Limited.  It combines the main features of {KRC} and {SASL}
        with {strong typing} similar to that of {ML}.  Implemented for
        {Unix} by Allan Grimeley, Computer Lab., UKC.  There is also a
        version that runs on {Intel 80386} and above {IBM PCs} under
        {Linux}.

        It features terse {syntax} using the {offside rule} for
        indentation.  The {type} of an expression is inferred from the
        {source} by the {compiler} but explicit type declarations are
        also allowed.  Nested {pattern-matching}, {list
        comprehensions}, {modules}.  {Operator sections} rather than
        {lambda abstractions}.  User types are algebraic, and in early
        versions could be constrained by {laws}.  Implemented by {SKI
        combinator} reduction.  The {KAOS} operating system is written
        entirely in Miranda.

        E-mail: <mira-request@ukc.ac.uk>.

        Translators from Miranda to {Haskell} (mira2hs) and to {LML}
        (mira2lml) are available, {(ftp://foldoc.doc.ic.ac.uk/pub/)}.
        Non-commercial near-equivalents of Miranda include {Miracula}
        and {Orwell}.

        ["Miranda: A Non Strict Functional Language with Polymorphic
        Types", D.A. Turner, in Functional Programming Languages and
        Computer Architecture, LNCS 201, Springer 1985].

        ["Functional Programming with Miranda", Ian Holyer, Pitman
        Press 0-273-03453-7].

        (1997-08-01)

MIRFAC

        {Mathematics in Recognizable Form Automatically Compiled}

mirror

        1. <hardware, storage> Writing duplicate data to more than one
        device (usually two {hard disks}), in order to protect against
        loss of data in the event of device failure.  This technique
        may be implemented in either hardware (sharing a {disk
        controller} and cables) or in software.  It is a common
        feature of {RAID} systems.

        Several {operating systems} support software disk mirroring or
        {disk duplexing}, e.g. {Novell NetWare}.

        See also {Redundant Array of Independent Disks}.

        Interestingly, when this technique is used with {magnetic
        tape} storage systems, it is usually called "twinning".

        A less expensive alternative, which only limits the amount of
        data loss, is to make regular {backup}s from a single disk to
        {magnetic tape}.

        2. <networking> An {archive site} or {web site} which keeps a
        copy of some or all files at another site so as to make them
        more quickly available to local users and to reduce the load
        on the source site.  Such mirroring is usually done for
        specific whole directories or files on a specific remote
        server as opposed to a {cache} or {proxy server} which keeps
        copies of everything that is requested via it.

        For example, src.doc.ic.ac.uk is the main UK mirror for the
        {GNU} archive at prep.ai.mit.edu.  There are also several
        {mirrors of this dictionary
        (http://foldoc.doc.ic.ac.uk/foldoc/mirrors.html)}.

        (1998-06-11)

mirroring

        {mirror}

MIS

        {Management Information System}

misbug

        /mis-buhg/ [MIT] An unintended property of a program that
        turns out to be useful; something that should have been a
        {bug} but turns out to be a {feature}.  Usage: rare.  Compare
        {green lightning}.  See {miswart}.

misfeature

        /mis-fee'chr/ or /mis'fee"chr/ A feature that eventually
        causes lossage, possibly because it is not adequate for a new
        situation that has evolved.  Since it results from a
        deliberate and properly implemented feature, a misfeature is
        not a bug.  Nor is it a simple unforeseen side effect; the
        term implies that the feature in question was carefully
        planned, but its long-term consequences were not accurately or
        adequately predicted (which is quite different from not having
        thought ahead at all).  A misfeature can be a particularly
        stubborn problem to resolve, because fixing it usually
        involves a substantial philosophical change to the structure
        of the system involved.

        Many misfeatures (especially in user-interface design) arise
        because the designers/implementors mistake their personal
        tastes for laws of nature.  Often a former feature becomes a
        misfeature because trade-offs were made whose parameters
        subsequently change (possibly only in the judgment of the
        implementors).  "Well, yeah, it is kind of a misfeature that
        file names are limited to six characters, but the original
        implementors wanted to save directory space and we"re stuck
        with it for now."

MISHAP

        Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16,
        (May 1959).

Missed'em-five

        <operating system, abuse> (Or "SysVile" /sis-vi:l'/) A
        pejorative hackerism for AT&T {System V} {Unix}, generally
        used by {BSD} partisans in a bigoted mood.

        See {software bloat}, {Berzerkeley}.

        (1998-07-01)

missile address

        {ICBM address}

miswart

        /mis-wort/ [By analogy with {misbug}] A {feature} that
        superficially appears to be a {wart} but has been determined
        to be the {Right Thing}.  For example, in some versions of the
        {EMACS} text editor, the "transpose characters" command
        exchanges the character under the cursor with the one before
        it on the screen, *except* when the cursor is at the end of a
        line, in which case the two characters before the cursor are
        exchanged.  While this behaviour is perhaps surprising, and
        certainly inconsistent, it has been found through extensive
        experimentation to be what most users want.  This feature is a
        miswart.

MIT

        {Massachusetts Institute of Technology}

MIT AI Lab

        <body> ({Massachusetts Institute of Technology} {artificial
        intelligence} laboratory) Workplace of many famous AI
        researchers at MIT.

        {Home (http://www.ai.mit.edu/)}.

        Address: 545 Technology Sq., Cambridge, MA 02139, USA.

        [Notables?]

        (1994-11-01)

MITI

        {SQRIBE}

MITILAC

        <language> An early system on the {IBM 650}.

        [Listed in CACM 2(5):16, May 1959].

        (1998-09-24)

MIT Lisp Machine

        {Lisp Machine}

MITS

        {Micro Instrumentation and Telemetry Systems}

MIT Scheme

        <language> (Or "C-Scheme") A {Scheme} implementation by the
        {MIT} Scheme Team (Chris Hanson, Jim Miller, Bill Rozas and
        many others) with rich set of utilities.

        The compiler is called {Liar}.

        Version 7.3 includes an {interpreter}, large {run-time
        library}, {Emacs} {macros}, {native-code compiler}, emacs-like
        editor and a {source-level debugger}.

        {MIT Scheme} conforms fully with {R4RS} but has one known
        incompatibility with the {IEEE Scheme} {standard}.  It runs on
        {Motorola 68000}: {HP9000}, {Sun3}, {NeXT}; {MIPS}:
        {Decstation}, {Sony}, {SGI}; {HP-PA}: 600, 700, 800; {VAX}:
        {Ultrix}, {BSD}, {DEC} {Alpha}: {OSF}; {Intel i386}: {MS-DOS},
        {MS Windows} and various other {Unix} systems.

        See also {LAP}, {Schematik}, {Scode}.

        {(ftp://martigny.ai.mit.edu/archive/scheme-7.3/)}

        {Usenet} newsgroup: {news:comp.lang.scheme.c}.

        Mailing list: info-cscheme@zurich.ai.mit.edu (cross-posted to
        news).

        E-mail: <bug-cscheme@zurich.ai.mit.edu> (bugs).

        DOS floppies ($95) and Unix tar tapes ($200) from Scheme Team,
        c/o Prof. Hal Abelson, {MIT AI Lab}.

        [Is this the same as the "other" {C-Scheme}?].

        (1992-08-24)

MIX

        Knuth's hypothetical machine, used in The Art of Computer
        Programming v.1, Donald Knuth, A-W 1969.

MIXAL

        MIX Assembly Language.

        The {assembly language} for {Donald Knuth}'s hypothetical
        {MIX} machine.

        (1995-01-05)

MIX Communications

        (MIX) Providers of {Internet} access and presentation services
        for businesses and individuals in the Milwaukee, WI, USA
        metropolitan area.  MIX started providing Internet access
        services to the Milwaukee area in 1990.  It was the first
        business in Milwaukee to provide Internet access services to
        the public.

        MIX Communications is owned and operated by Dean Roth.

        {(http://www.mixcom.com/)}

        E-mail: <info@mixcom.com>.

        Telephone: +1 (414) 351 1868 (Office), +1 (414) 351 1139
        (BBS).  Address: MIX Communications, P.O. Box 17166,
        Milwaukee, WI 53217, USA.

        (1995-01-05)

M-JPEG

        {Moving JPEG}

MJS

        <language> An early system on the {UNIVAC} I or II.

        [Listed in CACM 2(5):1959-05-16].

        (1996-12-15)

mk

        <networking> The {country code} for the Former Yugoslav
        Republic of Macedonia.

        (1999-01-27)

ML

        1. <robotics> Manipulator Language.  IBM language for handling
        robots.

        2.  Meta Language.  R. Milner <rm@lfcs.edinburgh.ac.uk> et al,
        1973.  A {strict} {higher-order} {functional language}.  It
        was the first language to include {polymorphic} typing which
        was statically-checked.  It also had {garbage collection} and
        a formal {semantics}.

        It began as the {metalanguage} for the Edinburgh {LCF} proof
        assistant.  (LCF="Logic for Computable Functions") People soon
        noticed that ML could be a useful general programming language
        and stand-alone versions were implemented.  {Standard ML}
        (SML) is a descendant of these (and related languages such as
        {Hope}).  The "metalanguage" aspect has long since disappeared
        from the language itself (although there are some systems that
        still use it that way).  The historical name is now so
        inappropriate that asking what ML stands for is like asking
        what {C} or {Unix} stands for.  It doesn't stand for anything;
        it just is.

        LCF ML was implemented in {Stanford LISP}.  Cardelli (1981)
        implemented ML in {Pascal} using the {Functional Abstract
        Machine} (FAM).  It has been significantly redesigned to
        produce {Standard ML} and {Lazy ML}.

        ["A Metalanguage for Interactive Proof in LCF", M.J.C. Gordon
        et al, 5th POPL, ACM 1978].

ml

        <networking> The {country code} for Mali.

        (1999-01-27)

ML-2000

        An extension and redesign of {Standard ML}.  Under
        development.

MLAB

        Modeling LABoratory.  An interactive mathematical modeling
        system.

        ["MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975)].

        (1994-10-13)

ML/I

        Early macro translating system.  P.J. Brown, CACM
        10(10):618-623, (Oct 1967).

MLISP

        1. {M-expression LISP}.

        2. Meta-LISP.  D.C. Smith & H. Enea.  LISP variant with
        ALGOL-like syntax.  Not just a surface syntax, a full
        language.

        "MLISP", D.C. Smith, TR CS-179, CS Dept, Stanford (Oct 1970).
        Version: MLISP2.

        3. A hybrid of M-expression LISP and Scheme.

        "M-LISP: Its Natural Semantics and Equational Logic",
        R. Muller, SIGPLAN Notices 26(9):234-242 (Sept 1991) (PEPM
        '91).

ML Kit

        The ML Kit is a straight translation of the Definition of
        Standard ML into a collection of Standard ML modules.  For
        example, every inference rule in the Definition is translated
        into a small piece of Standard ML code which implements it.
        The translation has been done with as little originality as
        possible - even variable conventions from the Definition are
        carried straight over to the Kit.  The Kit is intended as a
        tool box for those people in the programming language
        community who may want a self-contained parser or type checker
        for full Standard ML but do not want to understand the clever
        bits of a high-performance compiler. We have tried to write
        simple code and modular interfaces.

        Version 1

        interpreter, documentation

        Nick Rothwell, David N. Turner, Mads Tofte <tofte@diku.dk>,
        and Lars Birkedal at Edinburgh and Copenhagen Universities.

        {(ftp://ftp.diku.dk/diku/users/birkedal/)}.  UK: ftp
        export/ml/mlkit/ from lfcs.ed.ac.uk

        (1993-03-12)

MLL

        Medium-Level Language.

        Sometimes used half-jokingly to describe {C}, alluding to its
        "structured-assembler" image.

        (1994-12-07)

ML-lex

        A version of {lex} in {SML/NJ} which outputs a {lexical
        analyser} in {SML/NJ}.

        {(ftp://research.att.com/dist/ml/75.tools.tar.Z)}

ML-Linda

        U Edinburgh, under development.

ML Threads

        {SML/NJ} with mutual exclusion primitives similar to those in
        {Modula-2+} and {Mesa}.  Written by Greg Morrisett
        <jgmorris@cs.cmu.edu>.

        {Lightweight thread}s are created using {fork}.  They are
        {pre-emptive}ly scheduled and communicate via {shared memory}
        which can be protected by a "{mutex}" ({monitor}).

        Implementations for {Motorola 68020}, {SPARC} and {MIPS} and
        {VAX}- and {MIPS}-based multiprocessors.

        ["Adding Threads to Standard ML", E. Cooper et al,
        CMU-CS-90-186, CMU Dec 1990].

ML-Twig

        A variant of {TWIG} in {SML}, by Jussi Rintanen
        <jur@cs.hut.fi>, which comes with {SML/NJ}.

        (1995-02-14)

mm

        <networking> The {country code} for Myanmar (Burma).

        (1999-01-27)

Mma

        A fast {Mathematica}-like system, in {Allegro CL} by
        R. Fateman, 1991.

        {(ftp://peoplesparc.berkeley.edu/pub/mma.tar.Z)}

mmap

        The {Unix} {system call} which establishes a mapping between a
        range of addresses in a user process's address space and a
        portion of some "memory object" (typically a file, one of the
        special "devices" /dev/mem or /dev/kmem or some
        {memory-mapped} peripheral).  This allows the process to
        access a file at random byte offsets without using the seek
        {system call} or to access physical addresses or {kernel}'s
        {virtual address} space.  It can also be used as an
        alternative to writing a {device driver} since it is usually
        simpler to code and faster to use.

        (1995-02-14)

MMCD

        <storage> {MultiMedia Compact Disc}.

        (1995-11-23)

MMDF

        {Multi-channel Memorandum Distribution Facility}

MMI

        1. Man-Machine Interface.

        2. <company> The company which developed the first
        {Programmable Array Logic} devices.  MMI was bought by {AMD}.

        [Dates?]

        (1995-12-09)

MML

        Human-Machine Language.

        A language from {ITU-T} for telecommunications applications.
        It has a complex {natural-language} syntax.

        [CCITT Recommendations Z.311-Z.318, Z-341, Nov 1984].

        (1995-01-31)

MMU

        {Memory Management Unit}

MMX

        {Matrix Math eXtensions}

MMX technology

        {Matrix Math eXtensions}

mn

        <networking> The {country code} for Mongolia.

        (1999-01-27)

mnemonic

        <programming> A word or string which is intended to be easier
        to remember than the thing it stands for.  Most often used in
        "{instruction mnemonic}" which are so called because they are
        easier to remember than the {binary} patterns they stand for.
        Non-printing {ASCII} characters also have mnemonics like
        {NAK}, {ESC}, {DEL} intended to evoke their meaning on certain
        systems.

        (1995-05-11)

MNP

        {Microcom Networking Protocol}

mo

        <networking> The {country code} for Macau.

        (1999-01-27)

Mobile Triton

        <processor> (Official name 82430MX) A version of {Intel}'s {Triton}
        I processor chip set intended for mobile computers.

        Mobile Triton consists of one 82437MX and two 82438MX.

        [Special features?]

        (1996-04-03)

MOBSSL-UAF

        Merritt and Miller's Own Block-Structured Simulation
        Language-Unpronounceable Acronym For.

        A l for interactive continuous {simulation}.

        ["MOBSSL - An Augmented Block Structured Continuous System
        Simulation Language for Digital and Hybrid Computers",
        M.J. Merritt et al, Proc FJCC 35, AFIPS (Fall 1969)].

        (1995-01-31)

moby

        <jargon> /moh'bee/ (From {MIT}, seems to have been in use
        among model railroad fans years ago.  Derived from Melville's
        "Moby Dick", some say from "Moby Pickle") 1. Large, immense,
        complex, impressive.  "A Saturn V rocket is a truly moby
        frob."  "Some MIT undergrads pulled off a moby hack at the
        Harvard-Yale game."

        2. (Obsolete) The maximum {address space} of a computer (see
        below).  For a 680[234]0 or {VAX} or most modern 32-bit
        architectures, it is 4,294,967,296 8-bit bytes (four
        {gigabytes}).

        3. A title of address (never of third-person reference),
        usually used to show admiration, respect, and/or friendliness
        to a competent hacker.  "Greetings, moby Dave.  How's that
        address-book thing for the Mac going?"

        4. In backgammon, doubles on the dice, as in "moby sixes",
        "moby ones", etc.  Compare this with {bignum}: double sixes
        are both bignums and moby sixes, but moby ones are not bignums
        (the use of "moby" to describe double ones is sarcastic).

        5. The largest available unit of something which is available
        in discrete increments.  Thus a "moby Coke" is not just large,
        it's the largest size on sale.

        This term entered hackerdom with the Fabritek 256K memory
        added to the MIT AI PDP-6 machine, which was considered
        unimaginably huge when it was installed in the 1960s (at a
        time when a more typical memory size for a {time-sharing}
        system was 72 kilobytes).  Thus, a moby is classically 256K
        36-bit words, the size of a PDP-6 or PDP-10 moby.  Back when
        {address registers} were narrow the term was more generally
        useful, because when a computer had {virtual memory} mapping,
        it might actually have more physical memory attached to it
        than any one program could access directly.  One could then
        say "This computer has six mobies" meaning that the ratio of
        physical memory to address space is six, without having to say
        specifically how much memory there actually is.  That in turn
        implied that the computer could timeshare six "full-sized"
        programs without having to swap programs between memory and
        disk.

        Nowadays the low cost of processor logic means that address
        spaces are usually larger than the most physical memory you
        can cram onto a machine, so most systems have much *less* than
        one theoretical "native" moby of {core}.  Also, more modern
        memory-management techniques (especially paging) make the
        "moby count" less significant.  However, there is one series
        of widely-used chips for which the term could stand to be
        revived --- the Intel 8088 and 80286 with their incredibly
        {brain-damaged} segmented-memory designs.  On these, a "moby"
        would be the 1-megabyte address span of a segment/offset pair
        (by coincidence, a PDP-10 moby was exactly one megabyte of
        nine-bit bytes).

        (1997-10-01)

mockingbird

        Software that intercepts communications (especially login
        transactions) between users and hosts and provides system-like
        responses to the users while saving their responses
        (especially account IDs and passwords).  A special case of
        {Trojan Horse}.

Mockingboard

        <hardware> A sound and speech board for the {Apple II}
        computer, on sale in 1978.

        See also {zxnrbl}.

        (1997-03-18)

Mock Lisp

        The {Lisp} used by the {Gosling Emacs} editor.

mod

        1. <filename extension, application, file format, music>
        (module) The filename extension for a sampled music file
        format that originated on the {Commodore} {Amiga}.  A .MOD
        file is composed of digitised sound samples, arranged in
        patterns to create a song. There are .MOD players for most
        {personal computer}s including {Amiga}, {Archimedes}, {IBM
        PC}, and {Macintosh}.

        An {IBM PC} will require a {sound card} capable of handling
        digitised samples ({Sound Blaster}, {Sound Blaster Pro},
        {GUS}) and slower {Intel 80386}-based PCs may not be able to
        do anything else while playing a module.

        .MOD files differ from .MID ({MIDI}) files in that they
        contain sound samples.  This allows each song to use different
        sounds but it also puts more load on the {CPU} than playing a
        MIDI file, since more data must be processed for each note.  A
        slow CPU would benefit from a sound card with {wavetable
        synthesis} which handles samples instead of the CPU.

        Module files come in various formats including .MOD.  Formats
        evolved from .MOD include .S3M, .FAR and .669.  Most contain
        improvements on .MODs.

        {(http://www.eskimo.com/~future/mods.htm)}

        2. <jargon> modify or modification.

        This abbreviation is very common - in fact the full terms are
        considered formal.  "Mods" is used especially with reference
        to bug fixes or minor design changes in hardware or software,
        most especially with respect to {patch} sets or a {diff}.

        3. <programming> A common name for the {modulo} operator.

        (1999-07-14)

*MOD

        ("StarMOD") A {concurrent} language combining the {module}s of
        {Modula} and the communications of {Distributed Processes}.

        ["*MOD - A Language for Distributed Programming", R.P. Cook,
        IEEE Trans Soft Eng SE-6(6):563-571 (Nov 1980)].

        (1994-10-21)

modal

        1. (Of an interface) Having {mode}s.  Modeless interfaces are
        generally considered to be superior because the user does not
        have to remember which mode he is in.

        2. See {modal logic}.

        3. In {MS Windows} programming, A window with the label
        "WS_MODAL" will stay on the screen and claim all the
        user-input.  Other windows can only be accessed if the MODAL
        window is closed.  Such a window would typically be used for
        an error {dialog box} to warn the user for something
        important, like "Critical error, shut down the system and
        restart".

        (1995-02-07)

modal logic

        An extension of {propositional calculus} with operators that
        express various "modes" of truth.  Examples of modes are:
        necessarily A, possibly A, probably A, it has always been true
        that A, it is permissible that A, it is believed that A.

        "It is necessarily true that A" means that things being as
        they are, A must be true, e.g.

                "It is necessarily true that x=x" is TRUE

        while

                "It is necessarily true that x=y" is FALSE

        even though "x=y" might be TRUE.

        Adding modal operators [F] and [P], meaning, respectively,
        henceforth and hitherto leads to a "{temporal logic}".

        Flavours of modal logics include: {Propositional Dynamic
        Logic} (PDL), {Propositional Linear Temporal Logic} (PLTL),
        {Linear Temporal Logic} (LTL), {Computational Tree Logic}
        (CTL), {Hennessy-Milner Logic}, S1-S5, T.

        C.I. Lewis, "A Survey of Symbolic Logic", 1918, initiated the
        modern analysis of modality.  He developed the logical systems
        S1-S5.  JCC McKinsey used algebraic methods ({Boolean
        algebra}s with operators) to prove the decidability of Lewis'
        S2 and S4 in 1941.  Saul Kripke developed the {relational
        semantics} for modal logics (1959, 1963).  Vaughan Pratt
        introduced {dynamic logic} in 1976.  Amir Pnuelli proposed the
        use of temporal logic to formalise the behaviour of
        continually operating {concurrent} programs in 1977.

        [Robert Goldblatt, "Logics of Time and Computation", CSLI
        Lecture Notes No. 7, Centre for the Study of Language and
        Information, Stanford University, Second Edition, 1992,
        (distributed by University of Chicago Press)].

        [Robert Goldblatt, "Mathematics of Modality", CSLI Lecture
        Notes No. 43, Centre for the Study of Language and
        Information, Stanford University, 1993, (distributed by
        University of Chicago Press)].

        [G.E. Hughes and M.J. Cresswell, "An Introduction to Modal
        Logic", Methuen, 1968].

        [E.J. Lemmon (with Dana Scott), "An Introduction to Modal
        Logic", American Philosophical Quarterly Monograpph Series,
        no. 11 (ed. by Krister Segerberg), Basil Blackwell, Oxford,
        1977].

        (1995-02-15)

MODCAL

        A version of {HP-PASCAL} enhanced with system programming
        constructs, used internally by {HP}.

        (1995-02-07)

Mode

        An {object-oriented language}.

        ["The Programming Language Mode: Language Definition and User
        Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987].

        (1994-10-21)

mode

        1. A general state, usually used with an adjective describing
        the state.  Use of the word "mode" rather than "state" implies
        that the state is extended over time, and probably also that
        some activity characteristic of that state is being carried
        out. "No time to hack; I'm in thesis mode."

        In its jargon sense, "mode" is most often attributed to
        people, though it is sometimes applied to programs and
        inanimate objects.  In particular, see {hack mode}, {day
        mode}, {night mode}, {demo mode}, {fireworks mode}, and {yoyo
        mode}; also {chat}.

        2. More technically, a mode is a special state that certain
        user interfaces must pass into in order to perform certain
        functions.  For example, in order to insert characters into a
        document in the Unix editor "vi", one must type the "i" key,
        which invokes the "Insert" command.  The effect of this
        command is to put vi into "insert mode", in which typing the
        "i" key has a quite different effect (to wit, it inserts an
        "i" into the document).  One must then hit another special
        key, "ESC", in order to leave "insert mode".  Nowadays,
        modeful interfaces are generally considered {losing} but
        survive in quite a few widely used tools built in less
        enlightened times.

        (1994-12-22)

mode bit

        A {flag}, usually in hardware, that selects between two
        (usually quite different) modes of operation.  The
        connotations are different from {flag} bit in that mode bits
        are mainly written during a boot or set-up phase, are seldom
        explicitly read, and seldom change over the lifetime of an
        ordinary program.  The classic example was the
        EBCDIC-vs.-ASCII bit (#12) of the Program Status Word of the
        {IBM 360}.  Another was the bit on a PDP-12 that controlled
        whether it ran the PDP-8 or the LINC instruction set.

MODEF

        Pascal-like language with polymorphism and data abstraction.
        "Definition of the Programming Language MODEF",
        J. Steensgard-Madsen et al, SIGPLAN Notices 19(2):92-110 (Feb
        1984).

MODEL

        <language> A {Pascal}-like language with extensions for
        large-scale system programming and interface with {FORTRAN}
        applications.  MODEL includes {generic procedures}, and a
        "static" {macro}-like approach to {data abstraction}.  It
        produces {P-code} and was used to implement the {DEMOS}
        {operating system} on the {Cray-1}.

        ["A Manual for the MODEL Programming Language", J.B. Morris,
        Los Alamos 1976].

        (1996-05-29)

model

        <simulation> A description of observed behaviour, simplified
        by ignoring certain details.  Models allow complex {systems}
        to be understood and their behaviour predicted within the scope
        of the model, but may give incorrect descriptions and
        predictions for situations outside the realm of their intended
        use.  A model may be used as the basis for {simulation}.

        (1996-05-29)

model checking

        <theory, algorithm, testing> To algorithmically check whether
        a program (the model) satisfies a specification.

        The model is usually expressed as a {directed graph}
        consisting of {nodes} (or {vertices}) and {edges}.  A set of
        {atomic propositions} is associated with each node.  The nodes
        represents states of a program, the edges represent possible
        executions which alters the state, while the atomic
        propositions represent the basic properties that hold at a
        point of execution.

        A specification language, usually some kind of {temporal
        logic}, is used to express properties.

        The problem can be expressed mathematically as: given a
        temporal logic formula p and a model M with initial state s,
        decide if M,s \models p.

        ["Automatic verification of finite state concurrent systems
        using temporal logic", E.M. Clarke, E.A. Emerson, and
        A.P. Sisla, ACM Trans. on Programming Languages and Systems
        8(2), pp. 244--263, 1986].

        (1997-06-26)

modeling

        <spelling> It's spelled "{model}ling".

        (1997-01-15)

modelling

        {model}

Model View Controller

        (MVC) A way of partitioning the design of interactive
        software.  The "model" is the internal workings of the program
        (the {algorithm}s), the "view" is how the user sees the state
        of the model and the "controller" is how the user changes the
        state or provides input.

modem

        <hardware, communications> (Modulator/demodulator) An
        electronic device for converting between serial data
        (typically {RS-232}) from a computer and an audio signal
        suitable for transmission over telephone lines.  In one scheme
        the audio signal is composed of silence (no data) or one of
        two frequencies representing 0 and 1.

        Modems are distinguished primarily by the maximum {baud} rate
        they support.  {Baud} rates can range from 75 baud up to 28800
        and beyond.  Data to the computer is sometimes at a lower rate
        than data from the computer on the assumption that the user
        cannot type more than a few characters per second.

        Various data {compression} and error correction {algorithm}s
        are required to support the highest speeds.  Other optional
        features are {auto-dial} (auto-call) and {auto-answer} which
        allow the computer to initiate and accept calls without human
        intervention.  Most modern modems support a number of
        different protocols and two modems, when first connected will
        automatically negotiate to find a common protocol.  Some modem
        protocols allow the two modems to renegotiate ("retrain") if
        the initial choice of data rate is too high and gives too many
        transmission errors.

        A modem may either be internal, connected to the computer's
        bus or external ("stand-alone"), connected to one of the
        computer's {serial port}s.  The actual speed of transmission
        in characters per second depends not just the modem-to-modem
        data rate, but also on the speed with which the processor can
        transfer data to and from the modem, the kind of compression
        used and whether the data is compressed by the processor or
        the modem, the amount of noise on the telephone line (which
        causes retransmissions), the serial character format
        (typically {8N1}: one {start bit}, eight data bits, no
        {parity}, one {stop bit}).

        See also {acoustic coupler}, {adaptive answering}, {baud
        barf}, {Bulletin Board System}, {Caller ID}, {SoftModem},
        {U.S. Robotics}, {UUCP}.

        {Usenet} newsgroup: {news:comp.dcom.modems}.

        (1996-02-09)

MODEM7

        A {batch file transfer protocol}.

        See also {XMODEM}.

        (1995-05-02)

moderator

        A person, or small group of people, who manages a moderated
        {mailing list} or {Usenet} {newsgroup}.  Moderators are
        responsible for determining which email submissions are passed
        on to the list or newsgroup.

Modified Frequency Modulation

        <storage> (MFM, Modified {FM}, or sometimes "Multiple
        Frequency Modulation") A {data} recording method used on
        {magnetic disks}.

        MFM data recording is currently used in industry standard 3.5"
        and 5.25" low and high density {diskettes}, and was used in
        the magnetic disks such as the {Seagate Technology} {ST506}
        drive.

        See also: {GCR}, {FM}, {RLL}, {PRML}, {Bernoulli Box}.

        [How does it differ from other recording methods?]

        (1997-08-14)

modifier

        <programming> An operation that alters the state of an
        {object}.  Modifiers often have names that begin with "set"
        and corresponding {selector} functions whose names begin with
        "get".

        (1998-01-12)

M O drive

        {mageneto-optical drive}

MODSIM

        <language> A general-purpose, modular, block-structured
        language from {CACI}, which provides support for
        {object-oriented programming} and {discrete event simulation}.
        It is intended for building large process-based discrete event
        simulation models through modular and object-oriented
        mechanisms similar to those of {Modula-2}.

        MODSIM is descended from {Modula-2} and {Simula}.  It supports
        {multiple inheritance}, {template}s, {reference type}s,
        {polymorphism}, and {process-oriented simulation} with
        synchronous and asynchronous activities using explicit
        simulation time.

        See also {MODSIM II}, {USAModSim}.

        (1994-11-11)

MODSIM II

        1986.  Object-oriented modular language for discrete
        simulation, with {multiple inheritance}, {strong typing},
        integrated 2D and 3D graphics.  Compiles to C.  CACI, La
        Jolla, (619) 457-9681.  list: palmer@world.std.com

Modula

        {MODUlar LAnguage}

Modula-2

        <language> A high-level programming language designed by
        {Niklaus Wirth} at {ETH} in 1978.  It is a derivative of
        {Pascal} with well-defined interfaces between {module}s, and
        facilities for parallel computation.  Modula-2 was developed
        as the system language for the {Lilith} {workstation}.

        The central concept is the {module} which may be used to
        encapsulate a set of related subprograms and data structures,
        and restrict their visibility from other portions of the
        program.  Each module has a definition part giving the
        interface, and an implementation part.

        The language provides limited single-processor {concurrency}
        ({monitor}s, {coroutine}s and explicit transfer of control)
        and hardware access ({absolute address}es and {interrupt}s).
        It uses {name equivalence}.

        {DEC FTP archive
        (ftp://gatekeeper.dec.com/.1/DEC/Modula-2/m2.tar.Z)}

        ["Programming in Modula-2", N. Wirth, Springer 1985].

        (1995-10-25)

Modula-2*

        An extension of {Modula-2} by M. Philippsen
        <philipp@ira.uka.de> of the {University of Karlsruhe}.  It
        uses a superset of {data parallelism}, allowing both
        synchronous and asynchronous programs, both {SIMD} and {MIMD}.
        Parallelism may be nested to any depth.  There are version for
        {MasPar} and a simulator for the {SPARC}.

        {(ftp://iraun1.ira.uka.de/pub/programming/modula2star)}.
        E-mail: Ernst Heinz <heinz@ira.uka.de>.

        ["Modula-2*: An Extension of Modula-2 for Highly Parallel,
        Portable Programs", W. Tichy et al, TR 4/90, U Karlsruhe, Jan
        1990].

        (1994-10-21)

Modula-2+

        {Modula-2} plus {exception}s and {thread}s developed by
        P. Rovner et al of {DEC} {SRC}, Palo Alto CA in 1984.

        ["Modula-2+ User's Manual", M-C van Leunen].

        ["Extending Modula-2 to Build Large, Integrated Systems",
        P. Rovner, IEEE Software 3(6):46-57 (Nov 1986)].

        (1994-10-21)

Modula-3

        L. Cardelli et al, DEC and Olivetti, 1988.  A descendant of
        Modula-2+ and Cedar, designed for safety and simplicity.
        Objects, generics, threads, exceptions and garbage collection.
        Modules are explicitly safe or unsafe.  As in Mesa, any set of
        variables can be monitored.  No {multiple inheritance}, no
        operator overloading.  Uses structural equivalence.  "Modula-3
        Report", Luca Cardelli et al, TR 52, DEC SRC, and Olivetti
        Research Center, Aug 1988 (revised Oct 1989).  The changes are
        described in "System Programming with Modula-3", Greg Nelson
        ed, P-H 1991, ISBN 0-13-590464-1.  "Modula-3", Sam Harbison,
        P-H 1992.  Version: SRC Modula-3 V1.5.

        {(ftp://gatekeeper.dec.com/pub/DEC/Modula-3/release/)}

        See also {SRC Modula-3}.

Modula-3*

        Incorporation of {Modula-2*} ideas into {Modula-3}.

        ["Modula-3*: An Efficiently Compilable Extension of Modula-3
        for Problem-Oriented Explicitly Parallel Programming",
        E. Heinz <heinze@ira.uka.de>, 1993].

Modula-3pi

        Machine-independent intermediate language for compilation of
        Modula-3*.  "Modula-3pi Language Definition", E.A. Heinz, TR,
        U Karlsruhe 1993.

Modula-P

        "Modula-P: A Language for Parallel Programming Definition and
        Implementation on a Transputer Network", R. Hoffart et al,
        IEEE Conf Comp Langs 1992.

Modula-Prolog

        Adds a Prolog layer to Modula-2.  "Modula-Prolog: A Software
        Development Tool", C. Muller IEEE Software pp.39-45 (Nov
        1986).

Modula/R

        Modula with relational database constructs added.  LIDAS Group
        (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt,
        C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH
        Zurich, Sep 1983.

Modular C

        A {preprocessor}-based extension to {C} allowing {module}s.

        [Article by Stowe Boyd, Azrex Inc, SIGPLAN Notices, ca 1980].

        (1994-10-25)

MODUlar LAnguage

        <language> (Modula) {Wirth}'s 1977 predecessor of {Modula-2}.
        The original Modula was, more oriented towards {concurrent}
        programming, but otherwise quite similar.

        ["Modula - A Language for Modular Multiprogramming", N. Wirth,
        Soft Prac & Exp 7(1):3-35, Jan 1977].

        (1999-07-12)

Modular Prolog

        An {interpreter} for {SB-Prolog} version 3.1 extended with
        {ML}-style {module}s.  Runs on {SPARC}.  Distributed under
        {GNU} {General Public License}.

        {(ftp://ftp.dcs.ed.ac.uk/pub/dts/mod-prolog.tar.Z)}.  E-mail:
        Brian Paxton <mprolog@dcs.ed.ac.uk>.

        ["A Calculus for the Construction of Modular Prolog Programs",
        D. Sannella et al, J Logic Prog 12:147-177 (1992)].

        (1994-10-25)

Modular SB-Prolog

        {Modular Prolog}

module

        1. <programming> An independent piece of {software} which
        forms part of one or more larger {programs}.  Different
        languages have different concepts of a module but there are
        several common ideas.

        Modules are usually compiled seperately (in compiled
        languages) and provide an {abstraction} or information hiding
        mechanism so that a module's implementation can be changed
        without requiring any change to other modules.  In this
        respect they are similar to {objects} in an {object-oriented
        language}, though a module may contain many {procedures}
        and/or {functions} which would correspond to many objects.

        A module often has its own {name space} for {identifiers} so
        the same identifier may be used to mean different things in
        different modules.

        [Difference from {package}?].

        2. <hardware> An independent assembly of electronic components
        with some distinct function, e.g. a RAM module consisting of
        several RAM chips mounted on a small circuit board.

        (1997-10-27)

Modulex

        Based on Modula-2.  Mentioned by M.P. Atkinson & J.W. Schmidt
        in a tutorial in Zurich, 1989.

modulo

        /mod'yu-loh/

        1. <mathematics> {modulo arithmetic}.

        2. <mathematics> {modulo operator}.

        3. <jargon> Except for.  An overgeneralisation of the
        mathematical terminology; one can consider saying that 4
        equals 22 except for the 9s (4 = 22 mod 9).  "Well, LISP seems
        to work okay now, modulo that {GC} bug."  "I feel fine today
        modulo a slight headache."

        (1999-07-12)

modulo arithmetic

        <mathematics> (Or "clock arithmetic") A kind of integer
        arithmetic that reduces all numbers to one of a fixed set
        [0..N-1] (this would be "modulo N arithmetic") by effectively
        repeatedly adding or subtracting N until the result is within
        this range.

        Ordinary "clock arithmetic" is like modulo arithmetic except
        that the range is [1..12] whereas modulo 12 would be [0..11].

        (1999-07-13)

modulo operator

        <mathematics> (mod) The operator that returns the remainder
        after integer division of its first argument by its second.
        Written as "%" in {C} and some other languages.

        Where the second argument is a power of two, the result can be
        calculated much more quickly using {bitwise and} with the
        appropriate {bit-mask}.

        (1999-07-12)

molly-guard

        /mol'ee-gard/ [University of Illinois] A shield to prevent
        tripping of some {Big Red Switch} by clumsy or ignorant hands.
        Originally used of the plexiglass covers improvised for the
        BRS on an IBM 4341 after a programmer's toddler daughter
        (named Molly) frobbed it twice in one day.  Later generalised
        to covers over stop/reset switches on disk drives and
        networking equipment.

monad

        /mo'nad/ [category theory] A triple, (M, unitM, bindM) where M
        is a function on types and (using {Haskell} notaion):

                unitM :: a -> M a
                bindM :: M a -> (a -> M b) -> M b

        I.e. unitM converts an ordinary value of type a in to monadic
        form and bindM applies a function to a monadic value after
        de-monadising it.  E.g. a state transformer monad:

                type S a = State -> (a, State)
                unitS a  = \ s0 -> (a, s0)
                m `bindS` k = \ s0 -> let (a,s1) = m s0
                                      in k a s1

        Here unitS adds some initial state to an ordinary value and
        bindS applies function k to a value m.  (`fun` is Haskell
        notation for using a function as an {infix} operator).  Both m
        and k take a state as input and return a new state as part of
        their output.  The construction

                m `bindS` k

        composes these two state transformers into one while also
        passing the value of m to k.

        Monads are a powerful tool in {functional programming}.  If a
        program is written using a monad to pass around a variable
        (like the state in the example above) then it is easy to
        change what is passed around simply by changing the monad.
        Only the parts of the program which deal directly with the
        quantity concerned need be altered, parts which merely pass it
        on unchanged will stay the same.

        In functional programming, unitM is often called initM or
        returnM and bindM is called thenM.  A third function, mapM is
        frequently defined in terms of then and return.  This applies
        a given function to a list of monadic values, threading some
        variable (e.g. state) through the applications:

                mapM :: (a -> M b) -> [a] -> M [b]
                mapM f []     = returnM []
                mapM f (x:xs) = f x                `thenM` ( \ x2 ->
                                mapM f xs          `thenM` ( \ xs2 ->
                                returnM (x2 : xs2)         ))

monadic

        1. <programming> {unary}, when describing an {operator} or
        {function}.  Compare {dyadic}.

        2. <theory> See {monad}.

        (1998-07-24)

Mongolian Hordes technique

        <programming, jargon> (Or "Chinese Army technique") Assigning
        a large number of inexperienced programmers to a job which
        would better performed by a few skilled ones.  The term was
        first used by Dr. Fred Brooks in his book "{The Mythical
        Man-Month}", Chapter 3.

        According to Dr. Brooks, he had in mind the vision of the
        Mongol Hordes sweeping across Asia and Europe when he created
        the term.

        (1996-06-20)

moniter

        <spelling> It's spelled "{monitor}".

        (1996-11-28)

monitor

        1. A {cathode-ray tube} and associated electronics connected
        to a computer's video output.  A monitor may be either
        {monochrome} (black and white) or colour ({RGB}).  Colour
        monitors may show either digital colour (each of the red,
        green and blue signals may be either on or off, giving eight
        possible colours: black, white, red, green, blue, cyan,
        magenta and yellow) or analog colour (red, green and blue
        signals are continuously variable allowing any combination to
        be displayed).  Digital monitors are sometimes known as {TTL}
        because the voltages on the red, green and blue inputs are
        compatible with TTL logic chips.

        See also {gamut}, {multisync}, {visual display unit}.

        2. A programming language construct which encapsulates
        variables, access procedures and initialisation code within an
        abstract data type.  The monitor's variable may only be
        accessed via its access procedures and only one process may be
        actively accessing the monitor at any one time.  The access
        procedures are {critical section}s.  A monitor may have a
        queue of processes which are waiting to access it.

        3. A hardware device that measures electrical events such as
        pulses or voltage levels in a digital computer.

        4. To oversee a program during execution.  For example, the
        monitor function in the {Unix} {C} library enables profiling
        of a certain range of code addresses.  A histogram is produced
        showing how often the {program counter} was found to be at
        each position and how often each profiled function was called.

        {Unix} {man} page: monitor(3).

        5. A control program within the {operating system} that
        manages the allocation of system resources to active
        programs.

        6. A program that measures software performance.

monkey, scratch

        See {scratch monkey}.

monkey up

        To hack together hardware for a particular task, especially a
        one-shot job.  Connotes an extremely {crufty} and consciously
        temporary solution.  Compare {hack up}, {kluge up}, {cruft
        together}.

monochrome

        <graphics> Literally "one colour".  Usually used for a black
        and white (or sometimes green or orange) {monitor} as distinct
        from a color monitor.  Normally, each {pixel} on the display
        will correspond to a single bit of {display memory} and will
        therefore be one of two intensities.  A {grey-scale} display
        requires several bits per {pixel} but might still be called
        monochrome.

        Compare: {bitonal}.

        (1994-11-24)

monoid

        An operator * and a value x form a monoid if * is
        {associative} and x is its left and right {identity}.

monotonic

        In {domain theory}, a function f : D -> C is monotonic (or
        monotone) if

                for all x,y in D,  x <= y  =>  f(x) <= f(y).

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1994-11-24)

MONSTR

        <language> A {term graph rewriting} language from {Manchester
        University}(?), designed to be easily implementable on
        distributed architectures and featuring limited
        synchronisation facilities.

        (1995-03-20)

Montage

        An {object-relational database management system} from
        {Montage Software}, the commercialisation of {POSTGRES}.

        (1995-02-23)

Monte Carlo

        (After Monte Carlo, Monaco - a notorious gambling mecca) Any
        one of various methods involving statistical techniques, such
        as the use of random samples, to finding the solutions to
        mathematical or physical problems.

        For example, to calculate pi, generate random points in the
        square (x, y) = ([0-1], [0-1]) and find the proportion for
        which x^2 + y^2 < 1, i.e. which lie within a quadant of a
        circle with radius 1.  Since the area of the square is 1 and
        the area of the quadrant is pi/4, the proportion in the
        quadrant should be pi/4.

        (1995-02-23)

monty

        /mon'tee/ [US Geological Survey] A program with a ludicrously
        complex user interface written to perform extremely trivial
        tasks.  An example would be a menu-driven, button clicking,
        pulldown, pop-up windows program for listing directories.  The
        original monty was an infamous weather-reporting program,
        Monty the Amazing Weather Man, written at the USGS.  Monty had
        a widget-packed X-window interface with over 200 buttons; and
        all monty actually *did* was {FTP} files off the network.

MOO

        {MUD Object Oriented}

Moof

        /moof/ [MAC users] 1.  A semi-legendary creature, also called
        the "dogcow", that lurks in the depths of the {Macintosh}
        Technical Notes {Hypercard} stack V3.1; specifically, the full
        story of the dogcow is told in technical note #31 (the
        particular Moof illustrated is properly named "Clarus").
        Option-shift-click will cause it to emit a characteristic
        "Moof!" or "!fooM" sound.  *Getting* to tech note 31 is the
        hard part; to discover how to do that, one must needs examine
        the stack script with a hackerly eye.  Clue: {rot13} is
        involved.  A dogcow also appears if you choose "Page Setup..."
        with a LaserWriter selected and click on the "Options" button.

        2. Used to flag software that's a hack, something untested and
        on the edge.  On one {Apple Computer} {CD-ROM}, certain {folder}s such
        as "Tools & Apps (Moof!)" and "Development Platforms (Moof!)",
        are so marked to indicate that they contain software not fully
        tested or sanctioned by the powers that be.  When you open
        these folders you cross the boundary into hackerland.

Moore bound

        An upper limit on the number of nodes in a {regular graph} of
        {degree} d>2 and {diameter} k:

                N(d,k) <= d(d-1)^k - 2
                          ------------
                              d-2

Moore graph

        A {graph} which achieves the {Moore bound}.  These are
        {complete graph}s, {polygon graph}s ({regular graph}s of
        {degree} 2) and three others: (nodes, degree, diameter) =
        (10,3,2), (50,7,2) and the possible but undiscovered
        (3250,57,2).

Moore's Law

        <architecture> /morz law/ The observation, made in 1965 by
        {Intel} co-founder {Gordon Moore} while preparing a speech,
        that each new memory {integrated circuit} contained roughly
        twice as much capacity as its predecessor, and each chip was
        released within 18-24 months of the previous chip.  If this
        trend continued, he reasoned, computing power would rise
        exponentially with time.

        Moore's observation still holds in 1997 and is the basis for
        many performance forecasts.  In 24 years the number of
        {transistors} on processor chips has increased by a factor of
        almost 2400, from 2300 on the {Intel 4004} in 1971 to 5.5
        million on the {Pentium Pro} in 1995 (doubling roughly every
        two years).

         Date      Chip     Transistors   MIPS clock/MHz
         -----------------------------------------------
         Nov 1971  4004            2300   0.06   0.108
         Apr 1974  8080            6000   0.64   2
         Jun 1978  8086           29000   0.75  10
         Feb 1982  80286         134000   2.66  12
         Oct 1985  386DX         275000   5     16
         Apr 1989  80486        1200000  20     25
         Mar 1993  Pentium      3100000 112     66
         Nov 1995  Pentium Pro  5500000 428    200
         -----------------------------------------------

        Moore's Law has been (mis)interpreted to mean many things over
        the years.  In particular, {microprocessor} performance has
        increased faster than the number of transistors per chip.  The
        number of {MIPS} has, on average, doubled every 1.8 years for
        the past 25 years, or every 1.6 years for the last 10 years.
        While more recent processors have had wider {data paths},
        which would correspond to an increase in transistor count,
        their performance has also increased due to increased {clock
        rates}.

        Chip density in transistors per unit area has increased less
        quickly - a factor of only 146 between the 4004 (12 mm^2) and
        the Pentium Pro (196 mm^2) (doubling every 3.3 years).
        {Feature size} has decreased from 10 to 0.35 microns which
        would give over 800 times as many transistors per unit.
        However, the automatic layout required to cope with the
        increased complexity is less efficient than the hand layout
        used for early processors.

        {(http://www.intel.com/intel/museum/25anniv/html/hof/moore.htm)}.

        {Intel Microprocessor Quick Reference Guide
        (http://www.intel.com/pressroom/no_frame/quickref.htm)}.

        {"Birth of a Chip", Linley Gwennap, Byte, Dec 1996
        (http://www.byte.com/art/9612/sec6/art2.htm)}.  See also March
        1997 "inbox".

        {Chronology of Events in the History of Microcomputers
        (http://www.islandnet.com/~kpolsson/comphist.htm)}, Ken
        Polsson.

        See also {Parkinson's Law of Data}.

        (1997-03-04)

moose call

        {whalesong}

MooZ

        <language, specification> An {object-oriented} extension of
        {Z}.

        ["Object Orientation in Z", S. Stepney et al eds, Springer
        1992].

        (1997-07-09)

Mops

        Like {Yerk}, Mops is descended from the ex-commercial
        {object-oriented} language {Neon}.  It was developed by
        Michael Hore <mikeh@kralizec.zeta.org.au>.  Mops features an
        optimising {native}-code compiler; it is much faster than
        Yerk, but less compatible with Neon.  Mops includes extensions
        such as {multiple inheritance}.

        Version 2.3.1 includes a compiler, documentation and an
        editor.

        A {Macintosh} version is available.
        {(ftp://oddjob.uchicago.edu/pub/Yerk)}.

MORAL

        Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac &
        Exp 10:851-887 (1980).

moria

        <games> /mor'ee-*/ Like {nethack} and {rogue}, one of the
        large {PD} {Dungeons and Dragons}-like simulation games,
        available for a wide range of machines and operating systems.
        The name is from Tolkien's Mines of Moria; compare {elder
        days}, {elvish}.  The game is extremely addictive and a major
        consumer of time better used for hacking.

morphing

        <graphics> The animated transformation of one image into
        another by gradually distorting the first image so as to move
        certain chosen points to the position of corresponding points
        in the second image.

        Compare {tweening}.

        (1995-04-03)

Morse code

        <communications> A coding system invented by Samuel A. Morse,
        for use in sending character data over extremely low-quality
        pathways -- such as telegraphs and low-quality radio.  Morse
        code expresses characters as pulses of different durations.
        Short signals are called "dots" and long signals are calles
        "dashes".  The coding assigns shorter sequences to the most
        frequently used characters.

        American Morse code is the first and original Morse code
        {character set}.  {Character sets} adapted to other languages
        were developed later.

        American Morse Code:

         A . __        J . .          S . . .       1 . __ __ .
         B __ . . .    K __ . __      T __          2 . . __ . .
         C . .  .      L ___          U . . __      3 . . . __ .
         D __ . .      M __ __        V . . . __    4 . . . . __
         E .           N __ .         W . __ __     5 __ __ __
         F . __ .      O .  .         X . __ . .    6 . . . . . .
         G __ __ .     P . . . . .    Y . .  . .    7 __ __ . .
         H . . . .     Q . . __ .     Z . . .  .    8 __ . . . .
         I . .         R .  . .       0 ____        9 __ . . __

        Where . is a short pulse, __ a long pulse, ___ a very long
        pulse and ____ a extra long pulse.  There are also long and
        short spaces character-internal.  Intercharacter spaces are
        very long and interword spaces are extra long.  There is no
        standarisation in these durations, and they vary depending on
        the coder's preference and on the quality of the line.

        Continental Morse Code or International Morse Code is a widely
        used {de-facto standard}.  This table summarises the Western
        European usage of Continental Morse Code:

          A .-    G --.    M --    S ...   Y -.--   4 ....-
          B -...  H ....   N -.    T -     Z --..   5 .....
          C -.-.  I ..     O ---   U ..-   0 -----  6 -....
          D -..   J .---   P .--.  V ...-  1 .----  7 --...
          E .     K -.-    Q --.-  W .--   2 ..---  8 ---..
          F ..-.  L .-..   R .-.   X -..-  3 ...--  9 ----.

          A-umlaut (1)  .-.-      E-acute       ..-..
          A-acute       .--.-     N-tilde       --.--
          A-corona (11) .--.-     O-umlaut (1)  ---.
          CH (2)        ----      U-umlaut (1)  ..--

          Punctuation Marks:            Other Signs:

          period              .-.-.-    warning                      .-..-
          comma               --..--    error                        ........
          question mark       ..--..    repetition (ii ii)           .. ..
          hyphen              -....-    wait (AS)                    .-...
          colon (3)           ---...    interruption (BK)            -...-.-
          underline (4)       ..--.-    understood (VE)              ...-.
          apostrophe          .----.    transmission received (R)    .-.
          quotation mark      .-..-.    beginning of message (KA)    -.-.-
          parenthesis open (5)-.--.     end of message (AR)          .-.-.
          parenthesis (close) -.--.-    end of transmission (K) (6)  -.-
          equal sign (7)      -...-     end of transmission (KN) (8) -.--.
          plus sign           .-.-.     closing mark (SK) (9)        ...-.-
          multiplication sign -..-      closing station (CL)         -.-..-.
          fraction mark       -..-.
          separator (10)     .-..-

          (1) Note: 'umlaut' is also known as 'diaeresis'
          (2) Used only in German; not in Dutch.
          (3) also: 'divided by'
          (4) before and after the word to be underlined
          (5) purportedly replaced by -.--.- for both "(" and ")"
          (6) both and invitation to any station to start transmission
          (7) also used as spacing between parts of transmission
          (8) also an invitation to one station in particular to start
              transmission
          (9) connection will be closed.
          (10) in fractions, for example.
          (11) A-ring ?

        Where '.' is a short pulse, '-' a long one.  A '-' is three
        times as long as a '.'; character-internal spaces are as long
        as '.'s.  Intercharacter space are as long as -'s.  Spaces
        between words are as long as seven '.'s.

        (1996-11-23)

MORTRAN

        A {public domain} {FORTRAN} {preprocessor} for {structured
        programming}.

        (1995-09-20)

MOS

        {Metal Oxide Semiconductor}

Mosaic

        <World-Wide Web, tool> {NCSA}'s {browser} ({client}) for the
        {World-Wide Web}.

        Mosaic has been described as "the killer application of the
        1990s" because it was the first program to provide a slick
        {multimedia} {graphical user interface} to the {Internet}'s
        burgeoning wealth of distributed information services
        (formerly mostly limited to {FTP} and {Gopher}) at a time when
        access to the {Internet} was expanding rapidly outside its
        previous domain of academia and large industrial research
        institutions.

        NCSA Mosaic was originally designed and programmed for the {X
        Window System} by Marc Andreessen and Eric Bina at NCSA.
        Version 1.0 was released in April 1993, followed by two
        maintenance releases during summer 1993.  Version 2.0 was
        released in December 1993, along with version 1.0 releases for
        both the {Apple Macintosh} and {Microsoft Windows}.  An
        {Acorn Archimedes} port is underway (May 1994).

        Marc Andreessen, who created the NCSA Mosaic research
        prototype as an undergraduate student at the {University of
        Illinois} left to start {Mosaic Communications Corporation}
        along with five other former students and staff of the
        university who were instrumental in NCSA Mosaic's design and
        development.

        {(http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/help-about.html)}

        {(ftp://ftp.ncsa.uiuc.edu/)}.

        E-mail: <mosaic-x@ncsa.uiuc.edu> (X version),
        <mosaic-mac@ncsa.uiuc.edu> (Macintosh), <mosaic-win@ncsa.uiuc.edu>
        (Windows version), <mosaic@ncsa.uiuc.edu> (general help).

        (1995-04-06)

Mosaic Communications Corporation

        (MCC) Original name of {Netscape Communications Corporation}.
        They changed their name on 14 November 1994 to better reflect
        the company's other activities rather than just their browser
        based on {Mosaic}.

        {(http://www.netscape.com/info/newsrelease5.html)}

        (1994-12-16)

Moscow ML

        A light-weight implementation of {Standard ML} written by
        Sergei Romanenko <sergei-romanenko@refal.msk.su> of the
        {Keldysh Institute of Applied Mathematics} with assistance
        from Peter Sestoft <sestoft@dina.kvl.dk>, {Royal Veterinary
        and Agricultural University}.  Moscow ML is based on {CAML
        Light}.

        Version: 1.20 implements the Standard ML Core language.

        The sublanguage of Modules implemented by Moscow ML contains
        signatures and non-nested structures, and identifies
        structures with source files.  It is certainly less expressive
        than the full Standard ML Modules language, but the
        {type-safe} {separate compilation} facility is simple, useful,
        and easy to use.  It is the intention to implement the full
        Standard ML Modules language (including functors) in due
        course.

        Compilation of a {signature} produces a compiled interface
        file, which is used when compiling other signatures and
        structures.

        Compilation of a structure produces a {bytecode} file.
        Bytecode files are compact and load fast.  For instance, a
        3250-line program consisting of 24 structures and 17
        signatures compiles to 221 KB of bytecode and 241 KB of
        compiled signatures.  Starting the ML system and loading the
        24 bytecode files takes 1-2 cpu seconds plus network delays,
        less that 5 seconds real time in all.

        Release 1.20 permits loading of precompiled bytecode files
        into the top-level interactive session.  The next release will
        be able to create stand-alone executables by linking bytecode
        files.

        There is a mechanism for adding basis libraries, as in {Caml
        Light}.  Release 1.20 includes the basis libraries Array,
        List, and Vector and the {MS-DOS} version includes the
        Graphics library from {Caml Light}.

        In principle, Moscow ML can be compiled on any {platform}
        supported by {Caml Light}.  So far we have tried {Intel
        80386}-based {IBM PC}s running {MS-DOS}, {Microsoft Windows},
        {OS/2} or {Linux}, {DEC MIPS} running {Ultrix}, {DEC Alpha}
        running {OSF/1}, {Sun 4} running {SunOS}, {HP9000} running
        {HP/UX}, {SGI MIPS} running {IRIX} 5.

        Moscow ML is particularly useful when fast compilation and
        modest storage consumption are more important than fast
        program execution.

        Thanks to the efficient Caml Light run-time system used in
        Moscow ML, it compiles fast and uses little memory, typically
        5-10 times less memory than {SML/NJ} 0.93 and 2-3 times less
        than {Edinburgh ML}.  Yet the bytecode is only 3 to 10 times
        slower than SML/NJ 0.93 compiled native code (fast on {IBM
        PC}s, slower on {RISC}s).

        {DOS
        (ftp://dina.kvl.dk/pub/Peter.Sestoft/mosml/mos12bin.zip)}.
        {Linux
        (ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/linux-mos12bin.tar.gz)}.
        {Source
        (ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/mos12src.tar.gz)}.

        {Caml Light} 0.61 and {gcc} are required to recompile Moscow
        ML for {Unix} or Caml Light 0.61, {djgpp}, {Perl}, and
        {Borland C++} version 2.0 (or later) to recompile Moscow ML
        for {DOS}.

        (1994-12-12)

MOSFET

        {Metal Oxide Semiconductor Field-Effect Transistor}

Mosiac

        Do you mean {Mosaic}?

MOS Technologies

        A {microprocessor} design company started by some
        (ex-{Motorola}?) designers, shortly after the {Intel 8080} and
        {Motorola 6800}, in about 1975.  MOS Technologies introduced
        the {650x} series.  These processors were based on the
        {Motorola 6800} design, though they were not exact clones for
        legal reasons.

        (1994-10-31)

most general unifier

        If U is the most general {unifier} of a set of expressions
        then any other unifier, V, can be expressed as V = UW, where W
        is another substitution.  See also {unification}.

Most Significant Bit

        (MSB) {Bit} n-1 in an n bit {binary} number, the bit with the
        greatest weight (2^(n-1)).  The first or leftmost bit when the
        number is written in the usual way.

        (1995-07-13)

motd

        {message of the day}

mother

        {parent}

motherboard

        <hardware> The main {printed circuit board} in an electronic
        device, particularly a computer, which contains sockets that
        accept additional boards ("daughter-boards").

        In a (personal) computer, the motherboard contains the {bus},
        the {microprocessor} and chips used for controlling any
        built-in {peripheral}s such as the keyboard, text and graphics
        display, {serial port}s and {parallel port}s, {joystick} and
        {mouse} {interface}s.

        (1995-04-28)

Motif

        The standard {graphical user interface} and {window manager}
        from {OSF}, running on the {X Window System}.

Motion JPEG

        {Moving JPEG}

Motorola

        {Motorola, Inc.}

Motorola 14500B

        <processor> (MC14500B) A 1-bit {ICU} from {Motorola}.
        Probably the limit in small processors, the 14500B had a 4-bit
        instruction and controlled a single data read/write line, used
        for application control.  It had no address bus - that was an
        external unit that was added on.  Another {CPU} could be used
        to feed control instructions to the 14500B in an application.
        It had only 16 pins, less than a typical {RAM} chip, and ran
        at 1 {MHz}.

        (1994-11-30)

Motorola 6800

        A {microprocessor} released shortly after the {Intel 8080}, in
        about 1975.  It had 78 instructions, including the
        undocumented HCF ({Halt and Catch Fire}) bus test instruction.
        The 6800 evolved into the {Motorola 6801} and 6803.

        The {6502} was based on the design of the 6800 but had one
        less data register and one more index register.

        (1994-10-31)

Motorola 68000

        <processor> (MC68000) The first member of {Motorola, Inc.}'s
        family of 16- and 32-bit {microprocessors}.  The successor to
        the {Motorola 6809} and followed by the {Motorola 68010}.

        The 68000 is actually a 32-bit architecture internally, but
        16-bit externally.  It has 24-bit addressing and a {linear
        address space}, with none of the evil {segment registers} of
        {Intel}'s contemporary processors that make programming them
        unpleasant.  That means that a single directly accessed
        {array} or structure can be larger than 64KB in size.
        Addresses are computed as 32 bit, but the top 8 bits are cut
        to fit the address bus into a 64-pin package (address and data
        share a bus in the 40 pin packages of the {8086} and {Zilog
        Z8000}).

        The 68000 has an {orthogonal instruction set} and sixteen
        {registers}, split into data and address registers.  One
        address register is reserved for the {Stack Pointer}.  Both
        types of registers can be used for any function except direct
        addressing.  Only address registers can be used as the source
        of an address, but data registers can provide the offset from
        an address.

        Like the {Zilog Z8000}, the 68000 features a supervisor and
        user mode, each with its own {Stack Pointer}.  The {Zilog
        Z8000} and 68000 are similar in capabilities, but the 68000 is
        32 bits internally, making it faster and eliminating forced
        segmentations.  It was designed for expansion, including
        specifications for {floating point} and string operations
        (floating point later implemented in the {Motorola 68040}).
        Like many other CPUs of its generation, it can fetch the next
        instruction during execution (2 stage {pipeline}), the 68040
        was fully pipelined (6 stages).

        The 68000 was used in many {workstations}, notably early {Sun
        2} and {Sun 3} machines, and {personal computers}, notably
        {Apple Computer}'s first {Macintoshes} and the {Amiga}.

        Variants of the 68000 include the {68HC000} (a low-power HCMOS
        implementation) and the {68008} (an eight-bit data bus version
        used in the {Sinclair QL}).

        ["The 68000: Principles and Programming", Leo Scanlon, 1981].

        (1999-03-24)

Motorola 6801

        <processor> (And 6803) A version of the {Motorola 6800} with
        {ROM}, some {RAM}, a serial I/O port and other functions on
        the chip.  It was meant for embedded controllers, where the
        part count was to be minimised.  The 6803 led to the 68HC11
        and that was extended to 16 bits as the 68HC16.

        (1994-11-07)

Motorola 68010

        <processor> A {microprocessor} from {Motorola}.  It was the
        successor to the {Motorola 68000} and was followed by the
        {Motorola 68020}.  Some instructions which were previously
        {user mode} were made {system mode}, which necessitated
        patches to a few programs.

        The 68010 also had a primitive {cache}.  The DBxx instructions
        (decrement and branch) were cached, along with a few previous
        instructions.  Small loops could thus execute from the cache
        directly.

        At one time there was a 68010 variant that was pin-for-pin
        compatible with the 68000.  Early {Amiga} hackers replaced
        their 68000s with 68010s in order to get a small performance
        increase.

        (1995-11-29)

Motorola 68020

        <processor> A {microprocessor} from {Motorola}.  It was the
        successor to the {Motorola 68010} and was followed by the
        {Motorola 68030}.  The 68020 has 32-bit data and address buses
        and a 256-byte(?) {instruction buffer}.

        The 68020 was used in many models of the {Apple Macintosh} II
        series of {personal computers} and {Sun} 3 {workstations}.

        [Difference from '010?]

        (1995-03-01)

Motorola 68030

        <processor> A {microprocessor} from {Motorola}.  It was the
        successor to the {Motorola 68020} and was followed by the
        {Motorola 68040}.

        The 68030 has on-chip (split?) instruction and data {cache}s.
        It also has an on-chip {MMU} (except in the 680EC30 version).

        The 68030 is used in many models of the {Apple Macintosh} II
        series of {personal computer}s.

        [Cache?]

        (1995-03-01)

Motorola 68040

        <processor> A {microprocessor} from {Motorola}.  It was the
        successor to the {Motorola 68030} and was followed by the
        {Motorola 68060}.

        The 68040 has an on-chip {FPU} (except in the 680EC40) and
        split instruction and data {cache}s of 4 kilobytes(?) each.

        The 68040 is used in the {Apple Macintosh} Quadra series of
        {personal computer}s.

        (1995-03-01)

Motorola 68050

        There was no 68050.  The successor to the {Motorola 68040} was
        the {Motorola 68060}.

        The even numbers (68000, 68020, 68060) were reserved for major
        revisions to the 680x0 core.  The odd numbers (68010, 68030,
        68050) were minor upgrades from the previous chip.  For
        example, the {Motorola 68010} was a {Motorola 68000} with some
        minor enhancements and modifications to some user/superuser
        instruction assignments.  The {Motorola 68030} was a {Motorola
        68020} with an {MMU} and more minor enhancements.  The 68050
        would have been a 68040 with some bugs fixed, which didn't
        really warrant a new name so it was sold as a 68040.

        (1995-11-29)

Motorola 68060

        <processor> A 32-bit {microprocessor} from {Motorola}, the
        successor to the {Motorola 68040}.  The 68060 is the highest
        performance {680x0} family processor currently (April 1995)
        available.  It has 2 to 3 times the performance of the
        68040.

        The 68060 is probably the last development from Motorola in
        the high performacnce 680x0 series.  They don't want to
        compete with their own {PowerPC} chips.  The 680x0 series is
        intended more for embedded systems, where it is already very
        popular.  New developments here seem to integrate more
        peripheral functions on chip rather than increasing processing
        power.

        (1995-04-22)

Motorola 6809

        (MC6809) An eight-bit {microprocessor} from {Motorola, Inc.}

        The 6809 was a major advance over both its predecessor, the
        {Motorola 6800} and also over the {6502}.  The 6809 had two 8-bit {accu
mulator}s, rather than one in the 6502, and could
        combine them into a single 16-bit register.  It also featured
        two {index register}s and two {stack pointer}s, which allowed
        for some very advanced {addressing mode}s.  The 6809 was
        source compatible with the 6800, even though the 6800 had 78
        instructions and the 6809 only had around 59 (including a
        {SEX} instruction).  Some instructions were replaced by more
        general ones which the {assembler} would translate, and some
        were even replaced by {addressing mode}s.

        Other features were one of the first multiplication
        instructions of the time, 16-bit arithmetic and a special fast
        {interrupt}.  But it was also highly optimised, gaining up to
        five times the speed of the 6800 series CPU.  Like the 6800,
        it included the undocumented HCF ({Halt and Catch Fire}) bus
        test instruction.

        The {Hitachi 6309} was a version with extra {register}s.  The
        6809 was used in the UK "{Dragon 32}" {personal computer} and
        was followed by the {Motorola 68000}.

        See also {SEX}.

        {Usenet} newsgroup: {news:comp.sys.m6809}.

        There is a simulator called {usim} and an {assembler} by
        Lennart Benschop <lennart@blade.stack.urc.tue.nl> was posted
        to {Usenet} newsgroup {alt.sources} on 1993-11-03.

        (1995-02-01)

Motorola 680x0

        <processor> Shorthand for any member for the {Motorola 68000}
        family of {microprocessor}s from {Motorola, Inc.}  The "x"
        stands for 0, 1, 2, 3, 4 or 6.

        (1993-05-01)

Motorola 68HC11

        <processor> A {microcontroller} family from {Motorola}
        descended from the {Motorola 6800} {microprocessor}.

        The 68HC11 devices are more powerful and more expensive than
        the 68HC05 family.

        {FAQ
        (ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/comp.answers/microcontro
ller-faq/68hc11)}.

        There is an {opcode} simulator for the 68HC11, by Ted Dunning
        <ted@nmsu.edu>.  Interrupts, hardware I/O, and half carries
        are still outside the loop.  Adding interrupts may require
        simulating at the clock phase level.  Version 1.

        {(ftp://crl.nmsu.edu/pub/non-lexical/6811/sim6811.shar)}

        (1995-04-28)

Motorola 68LC040

        <processor> A version of the {Motorola 68040} with no {MMU} or
        {FPU}, making it more like an enhanced {Motorola 68020}.

        A {Power Macintosh} can emulate a Motorola 68LC040.

        (1999-01-11)

Motorola 88000

        A family of {RISC} {microprocessor}s from {Motorola}.

        [Details?]

        (1995-03-01)

Motorola, Inc.

        <company> One of the world's leading providers of wireless
        communications, semiconductors and advanced electronic systems
        and services.  Major equipment businesses include cellular
        telephone, two-way radio, paging and data communications,
        personal communications, automotive, defense and space
        electronics, computers, satellite communications systems,
        police and emergency service radio systems, taxicab
        dispatching (radio) systems.  Communication devices, computers
        and millions of consumer products are powered by Motorola
        semiconductors.

        They are probably best known in the computing world for their
        {microprocessor}s, including the {Motorola 6800} and {Motorola
        68000} {CISC} families and {Motorola 88000} {RISC}s, the
        {Motorola DSP56000} {digital signal processor}s and the
        {PowerPC} on which they collaborated.  They also led the
        development of {VMEbus}.

        Quarterly sales $5400M, profits $367M (Aug 1994).

        See also {Envoy}, {Monsoon}, {MPL}.

        {(http://www.mot.com/)}

        Address: Schaumberg, Illinois, USA.

        (1994-12-01)

mount

        <file system> To make a {file system} available for access.

        {Unix} does this by associating the file system with a
        {directory} (the "mount point") within a currently mounted
        file system.  The "root" file system is mounted on the {root
        directory}, "/" early in the {boot} sequence.  "mount" is also
        the {Unix} command to do this, "unmount" breaks the
        association.

        E.g., "mount attaches a named file system to the file system
        hierarchy at the pathname location directory [...]" -- {Unix
        manual page} mount(8).

        File systems are usually mounted either at {boot time} under
        control of {/etc/rc} (or one of its subfiles) or on demand by
        an {automounter} {daemon}.

        Other {operating systems} such as {VMS} and {DOS} mount file
        systems as separate directory hierarchies without any common
        ancestor or root directory.

        Apparently derived from the physical sense of "mount" meaning
        "attach", as in "head-mounted display", or "set up", as in
        "always mount a {scratch monkey}, etc."

        {Unix manual page}: mount(8).

        (1997-04-14)

Mouse

        A mighty small {macro} language developed by Peter Grogono in
        1975.

        ["Mouse, A Language for Microcomputers", P. Grogono
        <grogono@concour.cs.concordia.ca> Petrocelli Books, 1983].

        (1994-10-31)

mouse

        <hardware, graphics> The most commonly used computer {pointing
        device}, first introduced by {Douglas Engelbart} in 1968.
        The mouse is a device used to manipulate an on-screen
        {pointer} that's normally shaped like an arrow.  With the
        mouse in hand, the computer user can select, move, and change
        items on the screen.

        A conventional {roller-ball mouse} is slid across the surface
        of the desk, often on a {mouse mat}.  As the mouse moves, a
        ball set in a depression on the underside of the mouse rolls
        accordingly.  The ball is also in contact with two small
        shafts set at right angles to each other inside the mouse.
        The rotating ball turns the shafts, and sensors inside the
        mouse measure the shafts' rotation.  The distance and
        direction information from the sensors is then transmitted to
        the computer, usually through a connecting wire - the mouse's
        "tail".  The computer then moves the mouse pointer on the
        screen to follow the movements of the mouse.  This may be done
        directly by the {graphics adaptor}, but where it involves the
        processor the task should be assigned a high {priority} to
        avoid any perceptible delay.

        Some mice are contoured to fit the shape of a person's right
        hand, and some come in left-handed versions.  Other mice are
        symmetrical.

        Included on the mouse are usually two or three buttons that
        the user may press, or click, to initiate various actions such
        as running {programs} or opening {files}.  The left-most
        button (the {primary mouse button}) is operated with the index
        finger to select and activate objects represented on the
        screen.  Different {operating systems} and {graphical user
        interfaces} have different conventions for using the other
        button(s).  Typical operations include calling up a
        {context-sensitive menu}, modifying the selection, or pasting
        text.  With fewer mouse buttons these require combinations of
        mouse and keyboard actions.  Between its left and right
        buttons, a mouse may also have a wheel that can be used for
        scrolling or other special operations defined by the software.
        Some systems allow the mouse button assignments to be swapped
        round for left-handed users.

        Just moving the pointer across the screen with the mouse
        typically does nothing (though some CAD systems respond to
        patterns of mouse movement with no buttons pressed).
        Normally, the pointer is positioned over something on the
        screen (an {icon} or a {menu} item), and the user then clicks
        a mouse button to actually affect the screen display.

        The following table defines the five most common functions
        performed with the mouse and its buttons.

         point         To place the pointer over an on-screen item
         click         To press and release a mouse button
         double-click  To press and release a mouse button twice in
                       rapid succession
         right-click   To quickly press and release the right mouse
                       button
         drag          To hold down the mouse button while moving the
                       mouse

        Most modern computers include a mouse as standard equipment.
        However, some systems, especially portable {laptop} and
        {notebook} models, may have a {trackball}, {touchpad} or
        {Trackpoint} on or next to the {keyboard}.  These input
        devices work like the mouse, but take less space and don't
        need a desk.

        Many other alternatives to the conventional roller-ball mouse
        exist.  A {tailless mouse}, or {hamster}, transmits its
        information with {infrared} impulses.  A {foot-controlled
        mouse (http://www.footmouse.com/)} is one used on the floor
        underneath the desk.  An {optical mouse} uses a
        {light-emitting diode} and {photocells} instead of a rolling
        ball to track its position.  Some optical designs may require
        a special mouse mat marked with a grid, others, like the
        Microsoft IntelliMouse Explorer, work on nearly any surface.

        {Yahoo!
        (http://dir.yahoo.com/Business_and_Economy/Companies/Computers/Hardware
/Peripherals/Input_Devices/Mice/)}.

        {Microsoft mice
        (http://www.microsoft.com/products/hardware/mouse/)}.

        {PC Guide's "Troubleshooting Mice"
        (http://www.pcguide.com/ts/x/comp/mice.htm)}.

        {Tia O'Brien's "The Mouse"
        (http://www.mercurycenter.com/svtech/news/special/engelbart/)}
        published in the Silicon Valley News e-zine.

        (1999-07-21)

mouse ahead

        The {point-and-click} analog of "{type ahead}".  To manipulate
        a computer's pointing device (almost always a mouse in this
        usage, but not necessarily) and its selection or command
        buttons before a computer program is ready to accept such
        input, in anticipation of the program accepting the input.
        Handling this properly is rare, but it can help make a {WIMP
        environment} much more usable, assuming the users are familiar
        with the behaviour of the user interface.

        (1994-12-05)

mouse around

        To explore public portions of a large system, especially a
        network such as Internet via {FTP} or {TELNET}, looking for
        interesting stuff to {snarf}.

        (1994-12-05)

mouse arrest

        <jargon> Getting busted for violating an on-line service's rule
        of conduct.  "Sorry I couldn't get back to you.  {AOL} put me
        under mouse arrest."

        (1997-03-30)

mouse belt

        See {rat belt}.

mouse droppings

        1. <graphics, operating system, jargon> {Pixels} (usually
        single) that are not properly restored when the {mouse
        pointer} moves away from a particular location on the screen,
        producing the appearance that the mouse pointer has left
        droppings behind.  The major causes for this problem are
        {MS-DOS} programs that write to the screen memory
        corresponding to the mouse pointer's current location without
        hiding the mouse pointer first, and mouse drivers that do not
        quite support the {graphics mode} in use.

        2. <World-Wide Web, jargon> The client address recorded in a
        {World-Wide Web} server's log whenever a client connects to a
        site.

        Users may be unaware that their activity is being logged in
        this way but the potential for misuse of the information is
        limited.

        [March 1996 Macworld, p260, Viewpoint article by Larry Irving].

        (1994-12-05)

mouse elbow

        A tennis-elbow-like fatigue syndrome resulting from excessive
        use of a {WIMP}.  Similarly, "mouse shoulder".  {GLS} reports
        that he used to get this a lot before he taught himself to be
        ambimoustrous.

        (1994-12-05)

mouse mat

        <hardware> (U.S.: "mouse pad") A small sheet with a special
        surface for a rolling ball {mouse} to move on.  Most mouse
        mats are sheets of rubber or foam about 20cm by 25cm and about
        5mm thick with one side covered with cloth or sometimes hard
        plastic.  Deluxe versions come combined with a {wrist rest}.

        It is rare to find a mouse mat which does not carry some form
        of advertisement for some company or other.  They are such a
        common free gift that few people actually have to buy one.

        Mats are supposed to provide better traction and a clean,
        lint-free surface over which to move but it debatable whether
        they are useful at all, or whether any appropriate surface
        (preferably hard, even, flat, and clean) is as good.
        Howevever, some mice which use optical (e.g. {Sun}) or
        radio-frequency sensors (e.g. ?) to detect motion (instead of
        using a rolling ball) will only work on specially designed
        mouse mats.  Critics may consider this to be part of the
        {connector conspiracy}, though the designers would claim
        greater reliability due to the absence of moving parts.

        (1997-04-14)

mouse pad

        {mouse mat}

mouse trails

        <operating system> A feature (usually of {Graphical User
        Interface}s) which causes the {mouse} {pointer} to leave a
        trail across the screen.  This is done by keeping track of the
        last eight or so (maybe configurable) pointer positions, and
        only erasing the oldest.  This means that at any time, there
        may be up to eight pointers on the screen, but if the mouse is
        still, they will all be in the same position, and so only one
        will be visible.  When the mouse moves, it appears to leave a
        trail of pointers behind it, and this can dramatically
        increase the visibility of the pointer when using {LCD}
        screens.  The older ones had such long {persistence} that a
        single mouse pointer, when moving, tended to be completely
        invisible, and on a cluttered screen, was very difficult to
        find.

        (1996-07-08)

mouso

        <jargon> /mow'soh/ (By analogy with "{typo}") An error in
        {mouse} usage resulting in an inappropriate selection or
        graphic garbage on the screen.

        Compare {thinko}.

        (1996-04-21)

Moving JPEG

        <graphics, compression> (M-JPEG) A compression technique for
        moving {images} which applies {JPEG} still image compression
        to each {frame} of a moving picture sequence.

        Play-back requires a machine capable of decompressing and
        displaying each JPEG image quickly enough to sustain the
        required {frame rate} of the picture sequence.

        There is no standard for Moving JPEG as with JPEG, but there
        are JPEG compression chips (for example see {Zoran
        (http://www.zoran.com/)}) which are designed to work at
        television frame rates and {resolutions}.

        See also {MPEG} and {MPEG2}.

        (1996-12-15)

Moving Pictures Experts Group

        <compression, standard, algorithm, file format, body> (MPEG)
        An {ISO} committee that generates {standards} for digital
        {video compression} and audio.  Also the name of their
        {algorithms}.

        {MPEG-1} is optimised for {CD-ROM}, {MPEG-2} for {broadcast
        quality video} and {MPEG-4} for low {bandwidth} video
        telephony.  MPEG-3 was merged into MPEG-2.

        {MPEG decoder
        (ftp://toe.cs.berkeley.edu/pub/multimedia/mpeg/)}.  {MPEG
        Routines (ftp://ftp.mni.mcgill.ca/pub/mpeg/)}.

        (1999-01-06)

Moxie

        <language, music> A language for {real-time} computer music
        synthesis, written in {XPL}.

        ["Moxie: A Language for Computer Music Performance",
        D. Collinge, Proc Intl Computer Music Conf, Computer Music
        Assoc 1984, pp.217-220].

        (1994-12-05)

Mozilla

        <World-Wide Web> 1. The original project code name for
        {Netscape Navigator} and, according to some of the
        documentation, the correct pronunciation of "Netscape".

        2. The organisation set up by {Netscape} in January 1998 to
        coordinate cooperation among developers and to provide a
        central point of contact for people interested in using or
        improving the {Netscape Communicator} source code which was
        made freely available in March 1998.

        {Home (http://www.mozilla.org/)}.

        [Derived from "{Mosaic} killer/Godzilla"?]

        (1994-12-16)

mp

        <networking> The {country code} for the Northern Mariana
        Islands.

        (1999-01-27)

MP1

        {MPEG-1}

MP-1

        {Assembly language} for the {MasPar} computer.

        (1994-12-05)

MP2

        {MPEG-2}

MP3

        {MPEG-1 audio layer 3}

MPC

        1. <operating system> {Memory Protection Check}.

        [Origin?]

        2. <computer> {Multimedia Personal Computer}.

        3. {Multiprocess Communications}.

MPC Level 1 Specification

        <multimedia> The original {Multimedia Personal Computer}
        specification.

        Minimum requirements are a 16 MHz {386SX} with 2 {megabytes}
        of {RAM}, a 30 MB {hard disk drive}, and a {CD-ROM} drive with
        a sustained data transfer rate of 150 KB/s at no more than 40%
        of {CPU} {bandwidth} and reading at least 16 KB blocks.  The
        maximum average {seek time} is 1 second and the {Mean Time
        Between Failure} 10000 hours.  Capability Mode 1.

        The computer must have 8-bit digital sound and an 8-note
        synthesizer with {MIDI} playback.  Sample rates of 22.05 and
        11.025 kHz must be supported by no more than 10% of CPU
        bandwidth, preferably 44.1 kHz at no more than 15% of CPU
        bandwidth.  The synthesizer must support multi-voice,
        multi-timbral generation of six simultaneous melody notes and
        two simultaneous percussive notes with internal mixing
        capabilities to combine input from three sources and present
        the output as a stereo, line-level audio signal at the back
        panel.

        The video display must have a {resolution} of at least 640 x
        480 in 16 colours.  MIDI, I/O, and joystick ports must be
        previded.

        Compare {MPC Level 2 Specification}.

        (1997-01-19)

MPC Level 2 Specification

        <multimedia> An improved version of the {MPC Level 1
        Specification} for {Multimedia Personal Computers}.

        Minimum requirements are a 25 Mhz {486SX} with 4 MB of RAM and
        a 160 MB {hard disk drive}.  The {CD-ROM} drive must support a
        sustained data transfer rate of 300 KB/s using at most 60% of
        {CPU} {bandwidth} on 16 KB minimum block read size.  Its
        average {seek time} must be 400 milliseconds maximum.
        Capability Mode 1, Mode 2 form 1, Mode 2 form 2, Multisession.
        It must be {CD-ROM XA}-ready.

        The computer must have 16-bit digital sound, an 8-note
        synthesizer, and {MIDI} playback.
        A sample rate of 44.1 kHz must be available on stereo channels
        with more more than 15% of CPU bandwidth.

        A video display with a {resolution} of 640 x 480 in 65,536
        colours, and MIDI, I/O, and joystick ports must be provided.

        (1997-01-19)

MPEG

        {Moving Pictures Experts Group}

MPEG-1

        <compression, standard, algorithm, file format> The first
        {MPEG} format for compressed {video}, optimised for {CD-ROM}.
        MPEG-1 was designed for the transmission rates of about 1.5
        {Mbps} achievable with {Video-CD} and {CD-i}.

        It uses {discrete cosine transform} (DCT) and {Huffman coding}
        to remove spatially redundant data within a frame and
        block-based {motion compensated prediction} (MCP) to remove
        data which is temporally redundant between frames.  Audio is
        compressed using {subband encoding}.  These {algorithms} allow
        better than VHS quality video and almost CD quality audio to
        be compressed onto and streamed off a {single speed} (1x)
        {CD-ROM} drive.

        MPEG encoding can introduce blockiness, colour bleed and
        shimmering effects on video and lack of detail and
        quantisation effects on audio.

        The official name of MPEG-1 is {International Standard}
        {IS-11172}.

        (1999-01-06)

MPEG-1 audio layer 3

        <music, file format> (MP3) A {digital audio} {compression
        algorithm} that acheives a compression factor of about twelve
        while preserving sound quality.  It does this by optimising
        the comperession according to the range of sound that people
        can actually hear.  MP3 is currently (July 1999) the most
        powerful algorithm in a series of audio encoding standards
        developed under the sponsorship of the {Motion Picture Experts
        Group} (MPEG) and formalised by the International Organization
        for Standardization (ISO).

        MP3 files ({filename extension} ".mp3") can be downloaded from
        many {World-Wide Web} sites and can be played using software
        available for most {operating systems} (also downloadable),
        e.g. Winamp for {PC}, MacAmp for {Macintosh}, and mpeg123 for
        {Unix}.

        MP3 files are usually downloaded completely before playing but
        {streaming} MP3 is also possible.  A program called a "ripper"
        can be used to copy a selection from a music {CD} onto your
        {hard disk} and another program called an encoder can convert
        it to an MP3 file.

        (1999-07-30)

MPEG-1 layer 3

        {MPEG-1 audio layer 3}

MPEG-2

        <compression, standard, algorithm, file format> A variant of
        the {MPEG} video and audio {compression} {algorithm} and file
        format, optimised for {broadcast quality video}.  MPEG-2 was
        designed to transmit {interlaced} images at 4 {Mbps} or higher
        for use in broadcast digital TV and {DVD}.  An MPEG-2 player
        can handle {MPEG-1} data as well.

        MPEG-2 has been approved as {International Standard}
        {IS-13818}.

        (1995-04-18)

MPEG-3

        <compression, standard, algorithm, file format> A proposed
        variant of the {MPEG} {video} and {audio} {compression}
        {algorithm} and {file} format.  MPEG-3 was intended as an
        extension of {MPEG-2} to cater for {HDTV} but was eventually
        merged into MPEG-2.

        Not to be confused with MP3 - {MPEG-1 layer 3}.

        [Technical details?]

        (1999-01-06)

MPEG-4

        <compression, standard, algorithm> A {video compression}
        standard planned for late 1998.  MPEG-4 extends the earlier
        {MPEG-1} and {MPEG-2} algorithms with synthesis of speech and
        video, {fractal compression}, {computer visualisation} and
        {artificial intelligence}-based {image processing} techniques.

        [Technical details?]

        (1999-01-06)

MPG

        <jargon> Miles per gallon, as in "Your MPG may
        vary", i.e. "{Your mileage may vary}".

mpg

        <filename extension> A {filename extension} for a file in
        {MPEG} format.

        (1995-03-07)

MPI

        {Message Passing Interface}

MPL

        1. <language> An early possible name for {PL/I}.

        [Sammet 1969, p.542].

        2. {MasPar} {data-parallel} version of {C}.  See also {ampl}.

        {Compiler version 3.1 (ftp://maspar.maspar.com/put/)}

        3. Motorola Programming Language.  A low-level {PL/I}-like
        language, similar to {PL/M}, but for the {Motorola 6800}.

        4. MicroProgramming Language.  Simple language for
        microprogramming.  Statements on the same line represent
        {register} transfers caused by one microinstruction, and are
        executed in parallel.

        ["Structured Computer Organization", A.S. Tanenbaum, First
        Edition, P-H 1976. (Replaced in later editions by Mic-1)].

        (1995-03-07)

MPL II

        [Burroughs VMS MPL II Language Reference Manual].

MPLS

        {Multiprotocol Label Switching}

MPLS domain

        <networking> A portion of a {network} that contains devices
        that understand {MPLS}.

        (1999-06-14)

MP/M

        {Multi-tasking Program for Microcomputers}

MPP

        {Multiple Parallel Processing}
MPPE

        {Microsoft Point to Point Encryption}

MPPL

        <language> An early possible name for {PL/I}.

        [Sammet 1969, p. 542].

        (1995-03-07)

MPR II

        <standard> A green standard published by SWEDAC (the Swedish
        Board for Technical Accreditation) that limits the maximum
        amount of {ELF} and {VLF} electromagnetic radiation a computer
        {monitor} may emit.  Most {personal computer} monitors comply
        with this standard or the more stringent European TCO
        requirement.

        (1996-02-19)

M-Prolog

        1. Marseille Prolog.

        2. An extension to {Prolog} involving {module}s.

        ["The MProlog System", J. Bendl et al, Proc Logic Prog
        Workshop, 1980].

        (1994-10-31)

MPS III

        Solving matrices and producing reports.  "MPS III DATAFORM
        User Manual", Management Science Systems (1976).

MPSX

        Mathematical Programming System Extended.  Solution strategy
        for mathematical programming.  "Mathematical Programming
        System Extended (MPSX) Control Language User's Manual",
        SH20-0932, IBM.  Sammet 1978.

MPV

        An extension of the {VRTX} {real-time} {operating system} to
        support {multi-processing}.

        (1994-11-08)

MPX

        {Multiplexor Channel}

mq

        <networking> The {country code} for Martinique.

        (1999-01-27)

MQG

        {Multi-threaded Query Gate}

mr

        <networking> The {country code} for Mauritania.

        (1999-01-27)

MRDS

        {Multics Relational Data Store}

MRI

        1. <application> {Magnetic Resonance Imaging}.

        2. {Measurement Requirements and Interface}.

MROC

        {Miniature Ruggedized Optical Correlator}

MROM

        {Mask Read Only Memory}

MRP

        {Material Resource Planning}

MRP II

        {Manufacturer Resource Planning}

MRS

        Modifiable Representation System.

        An integration of {logic programming} into {Lisp}.

        ["A Modifiable Representation System", M. Genesereth et al,
        HPP 80-22, CS Dept Stanford U 1980].

        (1994-11-08)

ms

        <networking> The {country code} for Montserrat.

        (1999-01-27)

MS Access

        {Microsoft Access}

MSAU

        {Media Access Unit}

MSB

        {Most Significant Bit}

MS-BASIC

        <language> {Microsoft Basic}.

MS-DOG

        <abuse> A pejorative name for {MS-DOS}.

MS-DOS

        <operating system> /em ess doss/ Microsoft Disk Operating
        System. (Or "{DOS}", "{MS-DOG}", "{mess-dos}") {Microsoft
        Corporation}'s {clone} of {CP/M} for the {8088} crufted
        together in 6 weeks by hacker Tim Paterson, who is said to
        have regretted it ever since.

        MS-DOS is a single user {operating system} that runs one
        program at a time and is limited to working with one megabyte
        of memory, 640 kilobytes of which is usable for the
        {application program}.  Special add-on {EMS} memory boards
        allow EMS-compliant software to exceed the 1Mbyte limit.
        Add-ons to DOS, such as {Microsoft Windows} and {DESQview},
        take advantage of EMS and allow the user to have multiple
        applications loaded at once and switch between them.

        Numerous features, including vaguely {Unix}-like but rather
        broken support for subdirectories, {I/O redirection}, and
        {pipeline}s, were hacked into MS-DOS 2.0 and subsequent
        versions; as a result, there are two or more incompatible
        versions of many system calls, and MS-DOS programmers can
        never agree on basic things like what character to use as an
        option switch or whether to be case-sensitive.  The resulting
        mess is now the highest-unit-volume {operating system} in
        history.  It is used on many {Intel} 16 and 32 bit
        {microprocessor}s and {IBM PC} compatibles.

        Many of the original DOS functions were calls to {BASIC} (in
        {ROM} on the original {IBM PC}), e.g. Format and Mode.  People
        with non-IBM PCs had to buy {MS-Basic} (later called
        {GWBasic}).  Most version of DOS came with some version of
        BASIC.

        Also know as PC-DOS or simply as DOS, which annoys people
        familiar with other similarly abbreviated operating systems
        (the name goes back to the mid-1960s, when it was attached to
        {IBM}'s first disk operating system for the {IBM 360}).  Some
        people like to pronounce DOS like "dose" or to compare it to a
        dose of brain-damaging drugs (a slogan button in wide
        circulation among hackers exhorts: "MS-DOS: Just say No!").

        (1998-07-19)

MSG.84

        ["Analysis and Design in MSG.84: Formalizing Functional
        Specifications", V. Berzins et al IEEE Trans Soft Eng
        SE-11(8):657-670 (Aug 1985)].

        [What is it?]

        (1995-05-04)

msgGUI

        <library> A {graphical user interface} for {GNU Smalltalk}.
        This package contains the basics for creating window
        {application}s in the manner available in other graphical
        {Smalltalk} implementations.  Version 1.0 of the library was
        by Mark Bush <bush@ecs.ox.ac.uk>.

        {(ftp://ftp.comlab.ox.ac.uk/pub/Packages/mst/mstGUI-1.0.tar.Z)}

        (1992-12-14)

MSIE

        {Internet Explorer}

MSM

        {Micronetics Standard MUMPS}

MS Mail

        {Microsoft Mail}

MSN     
        
        {The Microsoft Network}

MSS

        {maximum segment size}

MS-Windows

        {Microsoft Windows}

MswLogo

        <language> A {Microsoft Windows} {front-end} for {Berkeley
        Logo} by George Mills <mills@softronix.com>.  MswLogo has 3D
        {primitives} and {GUI} support.  It runs on every flavour of
        Windows from 16-bit to NT.

        {Home (http://www.softronix.com/logo.html)}.

        (1997-12-01)

MS Word

        {Microsoft Word}

MSX

        {Microsoft Extended}

MSX-DOS

        {Microsoft Extended}

mt

        <networking> The {country code} for Malta.

        (1999-01-27)

MTA

        1. <messaging> {Message Transfer Agent}.

        2. <messaging> {Message Transfer Architecture}. ({AT&T}).

        3. {Multiple Terminal Access}.

        4. {Maintenance Task Analysis}.

        (1997-02-28)

MTBF

        {Mean Time Between Failures}

mtc

        A {Modula-2} to {C} translator.

        {(ftp://rusmv1.rus.uni-stuttgart.de/soft/Unixtools/compilerbau/mtc.tar.
Z)}

        (1991/10/25)

M Technology Association

        The {MUMPS} User's Group.

        Address: 1738 Elton Road, Suite 205, Silver Spring, MD
        20903-1725, USA.

        Telephone: +1 301 431-4070.  Fax: +1 301 431-0017.

        (1995-01-10)

MTOS

        1. <operating system> A family of {real-time} {operating systems}
        for use in {embedded  systems}.  It is  developed and marketed by
        {Industrial Programming, Inc.}.

        2. <operating system> {MultiTOS}

        (1997-06-03)

MTS

        1. {Message Transport System}.

        2. <programming> {Microsoft Transaction Server}.

        (1999-03-29)

MTTR

        {Mean Time To Recovery}

MTU

        {Maximum Transmission Unit}

Mu

        <character> (Greek letter).

        1. <unit> /micro/ prefix denoting division by 10^6, e.g. mu m
        (micrometre, a millionth part of a metre).  Sometimes written
        as a 'u', the ASCII character nearest in appearance.

        2. <mathematics> /myoo/ In the theory of functions, mu x . E
        denotes the least value of x for which E = x, i.e. the {least
        fixed point} of the function \ x . E.  The {recursive}
        function mu f . H f satisfies (and is defined by) the equation

                mu f . H f = H (mu f . H f)

        An alternative notation for the same function is

                fix H = H (fix H)

        See {fixed point combinator}.

        3. /moo/ The correct answer to the classic trick question
        "Have you stopped beating your wife yet?".  Assuming that you
        have no wife or you have never beaten your wife, the answer
        "yes" is wrong because it implies that you used to beat your
        wife and then stopped, but "no" is worse because it suggests
        that you have one and are still beating her.  According to
        various Discordians and Douglas Hofstadter the correct answer
        is usually "mu", a Japanese word alleged to mean "Your
        question cannot be answered because it depends on incorrect
        assumptions".

        Hackers tend to be sensitive to logical inadequacies in
        language, and many have adopted this suggestion with
        enthusiasm.  The word "mu" is actually from Chinese, meaning
        "nothing"; it is used in mainstream Japanese in that sense,
        but native speakers do not recognise the Discordian
        question-denying use.  It almost certainly derives from
        overgeneralisation of the answer in the following well-known
        Rinzei Zen teaching riddle:

        A monk asked Joshu, "Does a dog have the Buddha nature?"
        Joshu retorted, "Mu!"

        See also {has the X nature}, {AI Koan}, and Douglas
        Hofstadter's book, "Gdel, Escher, Bach: An Eternal Golden
        Braid".

        4. <database> {multiple value}.

        (1995-10-30)

mu

        <networking> The {country code} for Mauritius.

        (1999-01-27)

MUA

        {Mail User Agent}

MUCAL

        <language, music> A language for playing music on the {PDP-8}.

        (1995-04-16)

MUD

        <games> {Multi-User Dimension} or "Multi-User Domain".
        Originally "Multi-User Dungeon".

        (1995-04-16)

muddie

        <games> Synonym {mudhead}.  More common in Great Britain,
        possibly because system administrators there like to mutter
        "bloody muddies" when annoyed at the species.

Muddle

        Original name of {MDL}.

mudhead

        <games> A {MUD} player who eats, sleeps, and breathes MUD.
        Mudheads have been known to fail their degrees, drop out,
        etc. with the consolation, however, that they made wizard
        level.  When encountered in person, on a MUD or in a chat
        system, all a mudhead will talk about is three topics: the
        tactic, character, or wizard that is supposedly always
        unfairly stopping him/her from becoming a wizard or beating a
        favourite MUD; why the specific game he/she has experience
        with is so much better than any other; and the MUD he or she
        is writing or going to write because his/her design ideas are
        so much better than in any existing MUD.  See also {wannabee}.

        To the anthropologically literate, this term may recall the
        Zuni/Hopi legend of the mudheads or "koyemshi", mythical
        half-formed children of an unnatural union.  Figures
        representing them act as clowns in Zuni sacred ceremonies.

        (1994-11-29)

MUD Object Oriented

        <games> (MOO) One of the many {MUD} spin-offs (e.g. {MUSH},
        {MUSE}, and {MUX}) created to diversify the realm of
        interactive text-based gaming.  A MOO is similar to a MUSH in
        that the users themselves can create objects, rooms, and code
        to add to the environment.

        The most frequently used {server} {software} for running a MOO
        is {LambdaMOO} but alternatives include {WinMOO
        (http://www-personal.umich.edu/~cunkel/WinMOO/)} and
        {MacGoesMOO
        (http://neon.ci.lexington.ma.us/SpamCentral/scaron/mgm.html)}.

        (1999-05-25)

muFP

        A {functional language} for hardware design, a predecessor of
        {Ruby}.

mu-law

        The North America {standard} for {nonuniform quantising
        logarithmic compression}.

        [Equation?]

        (1995-02-21)

Mule

        <text, tool> A multi-lingual enhancement of {GNU Emacs}.  Mule
        can handle not only {ASCII} characters (7 bit) and {ISO
        Latin 1} characters (8 bit), but also {16-bit characters} like
        Japanese, Chinese, and Korean.  Mule can have a mixture of
        languages in a single buffer.

        Mule runs under the {X window system}, or on a {Hangul
        terminal}, {mterm} or {exterm}.

        Latest version: 2.3.

        {Home (ftp://etlport.etl.go.jp/pub/mule)}

        (1996-01-28)

Mul-T

        An implementation of {Multilisp} built on {T}, for the {Encore
        Multimax}.

        ["Mul-T: A High-Performance Parallel Lisp", SIGPLAN Notices
        24(7):81-90 (Jul 1989)].

        (1995-02-21)

Multi-BinProlog

        <language> A {multi-threaded} {Linda}-style parallel extension
        to {BinProlog} for {Solaris} 2.3.

        Version: 3.30.

        (1995-04-04)

multiC

        <language> A {data-parallel} version of {C} from {Wavetracer}.

        (1995-04-04)

MultiCal System

        E-mail: Richard Snodgrass <rts@cs.arizona.edu>.

        {(ftp://ftp.cs.arizona.edu/tsql/multical)}

        [What is it?]

        (1994-11-11)

multicast addressing

        {Ethernet} addressing scheme used to send {packet}s to devices
        of a certain type or for {broadcast}ing to all nodes.  The
        least significant bit of the most significant byte of a
        multi-cast address is one.

multicast backbone

        (MBONE) A {virtual network} on top of the {Internet} which
        supports {routing} of {IP} {multicast} {packet}s, intended for
        {multimedia} transmission.  MBONE gives public access {desktop
        video} communications.  The quality is poor with only 3-5
        frames per second instead of the 30 frames per second of
        commercial television.  Its advantage is that it avoids all
        telecommunications costs normally associated with
        teleconferencing.  An interesting innovation is the use of
        MBONE for audio communications and an electronic "whiteboard"
        where the computer screen becomes a shared workspace where two
        physically remote parties can draw on and edit shared
        documents in {real-time}.

        (1994-10-27)

Multi-channel Memorandum Distribution Facility

        <messaging> (MMDF) An {electronic mail} system for Unix(?)
        which is much easier to configure than {sendmail}.  The source
        is available.

        MMDF is a versatile and configurable mail routing system
        ({MTA}) which also includes user interface programs ({MUA}).
        It can be set up to route mail to different {domains} and
        {hosts} over different channels (e.g. {SMTP}, {UUCP}).  On
        {UNIX} systems, its configuration begins with the
        /usr/mmdf/mmdftailor file, which defines the machine and
        domain names, various other configuration tables (alias,
        domain, channel) and other configuration information.

        [Home?]

        (1997-01-14)

multician

        <jargon, person> /muhl-ti'shn/ A term coined at {Honeywell},
        ca. 1970 for a competent user of {Multics}.  Perhaps oddly, no
        one has ever promoted the analogous "Unician".

        (1996-08-24)

Multics

        <operating system> /muhl'tiks/ MULTiplexed Information and
        Computing Service.  A {time-sharing} {operating system}
        co-designed by a consortium including {MIT}, {GE} and {Bell
        Laboratories} as a successor to MIT's {CTSS}.  The system
        design was presented in a special session of the 1965 Fall
        Joint Computer Conference and was planned to be operational in
        two years.  It was finally made available in 1969, and took
        several more years to achieve respectable performance and
        stability.

        Multics was very innovative for its time - among other things,
        it was the first major OS to run on a {symmetric
        multiprocessor}; provided a {hierarchical file system} with
        {access control} on individual files; mapped files into a
        paged, segmented {virtual memory}; was written in a
        {high-level language} ({PL/I}); and provided dynamic
        inter-procedure linkage and memory (file) sharing as the
        default mode of operation.  Multics was the only
        general-purpose system to be awarded a B2 {security rating} by
        the {NSA}.

        Bell Labs left the development effort in 1969.  {Honeywell}
        commercialised Multics in 1972 after buying out GE's computer
        group, but it was never very successful: at its peak in the
        1980s, there were between 75 and 100 Multics sites, each a
        multi-million dollar {mainframe}.

        One of the former Multics developers from Bell Labs was {Ken
        Thompson}, a circumstance which led directly to the birth of
        {Unix}.  For this and other reasons, aspects of the Multics
        design remain a topic of occasional debate among hackers.  See
        also {brain-damaged} and {GCOS}.

        MIT ended its development association with Multics in 1977.
        Honeywell sold its computer business to {Bull} in the mid
        1980s, and development on Multics was stopped in 1988 when
        Bull scrapped a Boston proposal to port Multics to a
        {platform} derived from the {DPS-6}.

        A few Multics sites are still in use as late as 1996.

        The {Jargon file} 3.0.0 claims that on some versions of
        Multics one was required to enter a password to log out but
        James J. Lippard <lippard@primenet.com>, who was a Multics
        developer in Phoenix, believes this to be an {urban legend}.
        He never heard of a version of Multics which required a
        password to logout.  Tom Van Vleck <thvv@best.com> agrees.  He
        suggests that some user may have implemented a 'terminal
        locking' program that required a password before one could
        type anything, including logout.

        {Home (http://www.best.com/~thvv/multics.html)}.

        {Usenet} newsgroup: {news:alt.os.multics}.

        (1996-11-15)

Multics Relational Data Store

        <database> (MRDS) The first commercial {relational database},
        implemented as part of {Multics} by Jim Weeldreyer and Oris
        Friesen of {Honeywell} Phoenix in about 1977.  MRDS included a
        report writer called LINUS written by Jim Falksen.

        {(http://www.best.com/~thvv/mgm.html#MRDS)}.

        (1997-01-29)

Multiflow Computer

        <company> A now-defunct computer company, best known for its
        work in {Very Long Instruction Word} processors.

        Address: New Haven, Conn. USA.

        (1995-03-01)

Multi-Garnet

        A better constraint system for Garnet.  Version 2.1 by Michael
        Sannella <sannella@cs.washington.edu>.

        {(ftp://a.gp.cs.cmu.edu/usr/garnet/alpha/src/contrib/multi-garnet)}

        (1992-09-21)

multihomed host

        A {host} which has more than one connection to a {network}.
        The host may send and receive data over any of the links but
        will not route traffic for other nodes.

multilayer perceptron

        A network composed of more than one layer of {neuron}s, with
        some or all of the outputs of each layer connected to one or
        more of the inputs of another layer.  The first layer is
        called the input layer, the last one is the output layer, and
        in between there may be one or more hidden layers.

MultiLisp

        <language> A {parallel} extension of {Scheme} with explicit
        {concurrency}.  The form (future X) immediately returns a
        "{future}", and creates a {task} to evaluate X.  When the
        evaluation is complete, the future is resolved to be the
        value.

        ["MultiLisp: A Language for Concurrent Symbolic Computation",
        R. Halstead, TOPLAS pp.501-538 (Oct 1985)].

        [Did MultiLisp use {PVM} as its intermediate language?]

        (1998-02-10)

multimedia

        Human-computer interaction involving text, graphics, voice and
        video.  Often also includes concepts from {hypertext}.

        This term has come to be almost synonymous with {CD-ROM} in
        the {personal computer} world because the large amounts of
        data involved are currently best supplied on CD-ROM.

        {Usenet} newsgroup: {news:comp.multimedia}.

        (1994-12-02)

Multimedia and Hypermedia information coding Expert Group

        <multimedia, standard> (MHEG) is an {ISO} {standard} encoding
        for {multimedia} and {hypermedia} information, designed to
        facilitate use and interchange of such information in varied
        domains such as games, electronic publishing and medical
        applications.

        {Fokus MHEG page (http://www.fokus.gmd.de/ovma/mheg/)}.

        (1996-04-16)

MultiMedia Compact Disc

        <storage> (MMCD) A {CD-ROM} {standard} for storing 4.7 GB of
        data including video.  MMCD is being developed by a large
        numer of computer manufacturers and is expected to be shipped
        in late 1996 or early 1997.  Initially it will be aimed at the
        consumer market, then perhaps in {CD-ROM} format for
        computers, and maybe later on erasble CD.

        (1995-11-23)

MultiMedia Extension

        {MMX}

Multimedia Integrated Conferencing for European Researchers

        <communications, project> (MICE) A project which aims to
        create a pilot (virtual) network between European researchers,
        and also to connect them to sites in the US.  The MICE system
        currently allows {multimedia} conferencing ({audio}, {video}
        and shared workspace) between conference rooms and
        {workstation}-based facilities, hardware and software,
        {packet-switched} networks and {ISDN}, using both {unicast}
        (point-to-point) and {multicast} (multi-point) {protocols}.

        {Home (http://www-mice.cs.ucl.ac.uk/mice)}.

        (1997-12-18)

Multimedia Internet Mail Extensions

        Called {Multipurpose Internet Mail Extensions} in the {RFC}.

        [Is this an old name for it?]

Multimedia Personal Computer

        <multimedia> (MPC) A specification published by the Multimedia
        PC Marketing Council in 1990 to encourage the adoption of a
        standard {multimedia} computing platform.  In May 1993, the
        MPC Marketing Council published a new specification called
        {MPC Level 2 Specification} as an enhanced multimedia computer
        standard.  The original MPC specification, now also known as
        the {MPC Level 1 Specification}, continues in full effect.

        The appearance of the MPC or MPC2 certification mark on a
        computer system or upgrade kit indicates that the {hardware}
        meets the corresponding (Level 1 or Level 2) MPC Marketing
        Council specification. Software bearing the Multimedia PC mark
        has been designed to work on Multimedia PC licensed hardware.

        By establishing a standard platform, certifying hardware
        compliance and providing inter-operability between software
        and hardware for the consumer, the MPC Marketing Council is
        encouraging widespread use of multimedia applications and
        hardware.

        (1997-01-19)

multi-part key

        {compound key}

Multi-Pascal

        An extension of {Pascal-S} with {multiprocessing} features.
        Used in "The Art of Parallel Programming", Bruce P. Lester,
        P-H 1993.

multiple access

        {multiplexing}

Multiple Document Interface

        <programming> (MDI) The ability of an {application program} to
        show windows giving views of more than one document at a time.

        The opposite is {Single Document Interface} (SDI).

        (1999-03-30)

multiple inheritance

        <programming> In {object-oriented programming}, the
        possibility that a {sub-class} may be derived from multiple
        {parent classes} which are themselves not derived one from the
        other.

        (1997-08-06)

Multiple Instruction Multiple Data

        {Multiple Instruction/Multiple Data}

Multiple Instruction/Multiple Data

        (MIMD) The classification under {Flynn's taxonomy} of a
        {parallel processor} where many {functional unit}s perform
        different operations on different data.  Examples would be a
        network of {workstation}s or {transputer}s.  Compare {SIMD}.

        (1994-11-08)

Multiple Master

        <text, tool, software> (Or "Multiple Master Font") A {font}
        that is a mixture of two or more other fonts.

        A Multiple Master font is a single font containing from two to
        sixteen master designs (the current implementation limit).  A
        weight factor specifies the contribution of each master design
        for the creation of a multiple master font {instance}.

        A Multiple Master instance is a single {interpolation} of a
        multiple master font as created by a user or application.

        {ATM Glossary
        (http://www.adobe.com/supportservice/devrelations/typeforum/glossary.ht
ml)}.

        {Useable fonts
        (http://susi.informatik.rwth-aachen.de/Mirror/winsite/win3/fonts_atm.ht
ml)}.

        (1998-05-31)

multiple perspective software development

        <programming> A decentralised approach to software development
        which, instead of adopting a monolithic representation and
        centralised control, models development in terms of
        collaboration between autonomous partial systems.

        Software development usually involves people with different
        goals, expertise, and backgrounds, and the use of a wide range
        of formalisms, tools, and environments.  As information is
        exchanged between participants, dependencies may be
        established between information created by them.  Multiple
        perspective software development may be mapped into the
        transaction model which can be used to prevent uncoordinated
        access to interdependent information causing inconsistency.

        [Fox Wai-Leung Poon]

        (1995-12-14)

multiple value

        <database> (MU) A one-to-many relationship between entries in
        a database, for example a person may have an address field
        which spanned multiple records (with different indexes).
        Multiple values are a non-{relational} technique.

        MUs have recently been made available in {DB2}, despite the
        product being so heavily influenced by {Codd's Laws} of
        {relational databases}.

        [Confirm, clarify?]

        (1995-10-30)

Multiple Virtual Storage

        <operating system> (MVS) Release 2 of {OS/VS2}, called MVS
        because it had multiple 16 MB virtual address spaces, in
        contrast to {SVS}.  MVS ran on the {IBM 390} series
        {mainframes}.  It became MVS/SP, then MVS/XA (with 31-bit
        addressing) and then MVS/ESA.

        MVS/Open Edition (MVS/OE), aimed at the growing {open systems}
        market, added {TCP/IP} and {Unix} support in an MVS address
        space, allowing users to run IBM, {CICS}-type applications,
        {batch} applications and Unix.

        MVS/ESA was repackaged as {OS/390} as a marketing exercise but
        it's basically the same thing.

        Version: 5.1.

        [Features?  Dates?]

        (1999-01-20)

multiplexer

        {multiplexor}

multiplexing

        <communications> (Or "multiple access") Combining several
        signals for transmission on some shared medium (e.g. a
        telephone wire).  The signals are combined at the transmitter
        by a multiplexor (a "mux") and split up at the receiver by a
        demultiplexor.  The communications channel may be shared
        between the independent signals in one of several different
        ways: {time division multiplexing}, {frequency division
        multiplexing} or {code division multiplexing}.

        If the inputs take turns to use the output channel ({time
        division multiplexing}) then the output bandwidth need be no
        greater than the maximum bandwidth of any input.

        If many inputs may be active simultaneously then the output
        bandwidth must be at least as great as the total bandwidth of
        all simultaneously active inputs.  In this case the
        multiplexor is also known as a {concentrator}.

        (1995-03-02)

multiplexor

        (Or "mux") A device for {multiplexing}.

Multiplexor Channel

        (MPX) {mainframe} terminology for a slow peripheral device
        connection, e.g. for a {printer}, operator console, or card
        reader.

        (1997-06-30)

Multipop-68

        <operating system> An early {time-sharing} {operating system}
        developed in Edinburgh by Robin Popplestone and others.  It
        was inspired by {MIT}' {Project MAC}, via a "MiniMac" project
        which was aborted when it became obvious that {Elliot
        Brothers} Ltd. could not supply the necessary disk storage.
        Multipop was highly efficient in its use of machine resources
        to support {symbolic programming}, and effective - e.g. in
        supporting the development of the {Boyer-Moore theorem prover}
        and of Burstall and Darlington's transformation work.

        It was not good at supporting the user programs which were
        then the standard fare of computing, e.g. matrix inversion.
        This arose from the fact that while the {POP-2} compiler
        generated good code for function call (which is a lot of what
        layered systems like operating systems do) it did not generate
        efficient code for arithmetic or store access, because there
        was no way to police the generation of illegal objects
        statically.  ({Hindley-Milner type} checking did not exist).
        Indeed, since many OS features like file-access were performed
        by function-call (of a {closure}) rather than an OS call
        requiring a {context switch}, POP-2 actually gained
        performance.

        Multipop68 was efficient primarily because the one language,
        POP-2 served all purposes: it was the command language for the
        operating system as well as being the only available
        programming language.  Thus there was no need to swap in
        compilers etc.  All store management was accomplished
        uniformly by the {garbage collector}, as opposed to having
        store management for the OS and store management for each
        application.

        There was a substantial amount of {assembly language} in
        Multipop68.  This was primarily for interrupt handling, and it
        is difficult to handle this without a {real-time}
        garbage-collector.

        [Edited from a posting by Robin Popplestone].

        (1995-03-15)

multiprocessing

        {multitasking}

multiprocessor

        {parallel processor}

multiprogramming

        {multitasking}

Multiprotocol Label Switching

        <networking, standard> (MPLS) a standards-based approach to
        applying {label switching} to large-scale {networks} being
        defined by the {Internet Engineering Task Force} since early
        1997.

        MPLS defines {protocols} and procedures that enable the fast
        switching capabilities of {ATM} and {frame relay} to be used
        by {IP} networks.

        It represents the next level of standards-based evolution in
        combining layer two ({data link layer}) switching with layer
        three ({network layer}) {routing} in order to create flexible,
        faster, and more scalable networking.  This includes traffic
        engineering capabilities which provide, for example, aspects
        of {Quality of Service} (QoS)/{Class of Service} (CoS) and
        facilitate the use of {Virtual Private Networks} (VPNs).

        {ITEF MPLS Working Group
        (http://www.ietf.org/html.charters/mpls-charter.html)}.

        (1999-06-14)

Multipurpose Internet Mail Extensions

        <file format, multimedia> (MIME) A {standard} for multi-part,
        {multimedia} {electronic mail} messages and {World-Wide Web}
        {hypertext} documents on the {Internet}.  MIME provides the
        ability to transfer non-textual data, such as graphics,
        {audio} and fax.  It is defined in {RFC 1341}.  It uses
        {mimencode} to encode binary data into {base 64} using a
        subset of {ASCII}.

        {FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mime-faq/top.h
tml)}.

        (1995-04-04)

multiscan

        <hardware> A {monitor} that can synchronise to a variety of
        {horizontal scan rates} and {refresh rates}, allowing it to
        display images at different {resolutions}.

        (1996-02-09)

MultiScheme

        An implementation of {Multilisp} built on MIT's {C-Scheme},
        for the {BBN Butterfly}.

        ["MultiScheme: A Paralled Processing System Based on MIT
        Scheme", J. Miller, TR-402, MIT LCS, Sept 1987].

        (1995-04-04)

Multistation Access Unit

        {Media Access Unit}

multisync

        <hardware> An {NEC} trademark term for {multiscan}.  As NEC
        was the first to manufacture multiscan {monitors} the term is
        often used interchangeably with multiscan.

        (1996-02-09)

Multisystem eXtention Interface Bus

        <hardware> (MXIbus) A high performance communication link that
        interconnects devices using round, flexible cable.  MXIbus is
        used between a {GPIB} card and a {VXI} cage.

        (1999-10-12)

multitasking

        <computer, parallel> (Or "multi-tasking", "multi-processing",
        "multiprogramming", "concurrency", "process scheduling") A
        technique used in an {operating system} for sharing a single
        processor between several independent jobs.  The first
        multitasking operating systems were designed in the early
        1960s.

        Under "{cooperative multitasking}" the running task decides
        when to give up the CPU and under "{pre-emptive multitasking}"
        (probably more common) a system process called the
        "{scheduler}" suspends the currently running task after it has
        run for a fixed period known as a "{time-slice}".  In both
        cases the scheduler is responsible for selecting the next task
        to run and (re)starting it.

        The running task may relinquish control voluntarily even in a
        pre-emptive system if it is waiting for some external {event}.
        In either system a task may be suspended prematurely if a
        hardware {interrupt} occurs, especially if a higher priority
        task was waiting for this event and has therefore become
        runnable.

        The scheduling {algorithm} used by the scheduler determines
        which task will run next.  Some common examples are
        {round-robin} scheduling, {priority scheduling}, {shortest job
        first} and {guaranteed scheduling}.

        Multitasking introduces {overheads} because the processor
        spends some time in choosing the next job to run and in saving
        and restoring tasks' state, but it reduces the worst-case time
        from job submission to completion compared with a simple
        {batch} system where each job must finish before the next one
        starts.  Multitasking also means that while one task is
        waiting for some external event, the {CPU} to do useful work
        on other tasks.

        A multitasking operating system should provide some degree of
        protection of one task from another to prevent tasks from
        interacting in unexpected ways such as accidentally modifying
        the contents of each other's memory areas.

        The jobs in a multitasking system may belong to one or many
        users.  This is distinct from {parallel processing} where one
        user runs several tasks on several processors.  {Time-sharing}
        is almost synonymous but implies that there is more than one
        user.

        {Multithreading} is a kind of multitasking with low
        {overheads} and no protection of tasks from each other, all
        threads share the same memory.

        (1998-04-24)

Multi-tasking Program for Microcomputers

        <operating system> (MP/M) An {operating system}, written by
        {Gary Kildal}, very similar to {CP/M}, also written by Kildal.
        MP/M allowed {virtual terminals}, each of which could execute
        an {application} while another terminal was called to the
        screen with a special key combination.

        See also {Control Program for Microcomputers}.

        (1996-09-08)

multithreaded

        {multithreading}

multithreading

        <parallel> Sharing a single {CPU} between multiple tasks (or
        "threads") in a way designed to minimise the time required to
        switch threads.  This is accomplished by sharing as much as
        possible of the program execution environment between the
        different threads so that very little state needs to be saved
        and restored when changing thread.

        Multithreading differs from {multitasking} in that threads
        share more of their environment with each other than do tasks
        under multitasking.  Threads may be distinguished only by the
        value of their {program counters} and {stack pointers} while
        sharing a single {address space} and set of {global
        variables}.  There is thus very little protection of one
        thread from another, in contrast to multitasking.

        Multithreading can thus be used for very fine-grain
        multitasking, at the level of a few instructions, and so can
        hide {latency} by keeping the processor busy after one thread
        issues a long-latency instruction on which subsequent
        instructions in that thread depend.

        A {light-weight process} is somewhere between a thread and a
        full process.

        {TL0} is an example of a threaded machine language.
        {Dataflow} computation (E.g. {Id} and {SISAL}) is an extreme
        form of multithreading.

        (1997-12-23)

MultiTOS

        <operating system> (MTOS) A new version of {TOS}.  MultiTOS's
        main advantage was support for {pre-emptive multitasking} and
        {memory protection}.  It also supported the latest (and far
        superior) versions of {GEM}.  MultiTOS was supplied with the
        Falcon030 range of computers from {Atari}.

        It is a little known fact that the MultiTOS {kernel} was based
        heavily on the {freeware} OS {MinT} which was developed long
        before Atari got MultiTOS working.

        (1997-01-10)

Multi-User Dimension

        <games> (MUD) (Or Multi-User Domain, originally "Multi-User
        Dungeon") A class of multi-player interactive game, accessible
        via the {Internet} or a {modem}.  A MUD is like a real-time
        {chat} forum with structure; it has multiple "locations" like
        an {adventure} game and may include combat, traps, puzzles,
        magic and a simple economic system.  A MUD where characters
        can build more structure onto the database that represents the
        existing world is sometimes known as a "{MUSH}".  Most MUDs
        allow you to log in as a guest to look around before you
        create your own character.

        Historically, MUDs (and their more recent progeny with names
        of MU- form) derive from a hack by Richard Bartle and Roy
        Trubshaw on the University of Essex's {DEC-10} in 1979.  It
        was a game similar to the classic {Colossal Cave} adventure,
        except that it allowed multiple people to play at the same
        time and interact with each other.  Descendants of that game
        still exist today and are sometimes generically called
        BartleMUDs.  There is a widespread myth that the name MUD was
        trademarked to the commercial MUD run by Bartle on {British
        Telecom} (the motto: "You haven't *lived* 'til you've *died*
        on MUD!"); however, this is false - Richard Bartle
        explicitly placed "MUD" in the {PD} in 1985.  BT was upset at
        this, as they had already printed trademark claims on some
        maps and posters, which were released and created the myth.

        Students on the European academic networks quickly improved on
        the MUD concept, spawning several new MUDs ({VAXMUD},
        {AberMUD}, {LPMUD}).  Many of these had associated
        {bulletin-board system}s for social interaction.  Because
        these had an image as "research" they often survived
        administrative hostility to {BBS}s in general.  This, together
        with the fact that {Usenet} feeds have been spotty and
        difficult to get in the UK, made the MUDs major foci of
        hackish social interaction there.

        AberMUD and other variants crossed the Atlantic around 1988
        and quickly gained popularity in the US; they became nuclei
        for large hacker communities with only loose ties to
        traditional hackerdom (some observers see parallels with the
        growth of {Usenet} in the early 1980s).  The second wave of
        MUDs (TinyMUD and variants) tended to emphasise social
        interaction, puzzles, and cooperative world-building as
        opposed to combat and competition.  In 1991, over 50% of MUD
        sites are of a third major variety, LPMUD, which synthesises
        the combat/puzzle aspects of AberMUD and older systems with
        the extensibility of TinyMud.  The trend toward greater
        programmability and flexibility will doubtless continue.

        The state of the art in MUD design is still moving very
        rapidly, with new simulation designs appearing (seemingly)
        every month.  There is now a move afoot to deprecate the term
        {MUD} itself, as newer designs exhibit an exploding variety of
        names corresponding to the different simulation styles being
        explored.

        {UMN MUD Gopher page
        (gopher://spinaltap.micro.umn.edu/11/fun/Games/MUDs/Links)}.

        {U Pennsylvania MUD Web page
        (http://www.cis.upenn.edu/~lwl/mudinfo.html)}.

        See also {bonk/oif}, {FOD}, {link-dead}, {mudhead}, {MOO},
        {MUCK}, {MUG}, {MUSE}, {chat}.

        {Usenet} newsgroups: {news:rec.games.mud.announce},
        {news:rec.games.mud.admin}, {news:rec.games.mud.diku},
        {news:rec.games.mud.lp}, {news:rec.games.mud.misc},
        {news:rec.games.mud.tiny}.

        (1994-08-10)

Multi-User Dungeon

        {Multi-User Dimension}

Multi-User Shared Hallucination

        <communications, application> (MUSH) A user-extendable {MUD}.
        A MUSH provides commands which the players can use to
        construct new rooms or make objects and puzzles for other
        players to explore.

        {(http://www.cis.upenn.edu/~lwl/muds.html)}

        (1995-03-16)

Multi-Version Concurrency Control

        <database> (MVCC) An advanced technique for improving
        multi-user {database} performance.

        The main difference between multiversion and lock models is
        that in MVCC locks acquired for querying (reading) data don't
        conflict with locks acquired for writing data and so reading
        never blocks writing and writing never blocks reading.

        This technique is used in the {free software} database
        {PostgreSQL}.

        (1999-06-18)

multi-way branch

        {switch statement}

MuMath

        <mathematics, tool> A {symbolic mathematics} package for the
        {IBM PC}, written in {MuSimp}.

        (1995-04-12)

mumblage

        /muhm'bl*j/ The topic of one's mumbling (see {mumble}).  "All
        that mumblage" is used like "all that stuff" when it is not
        quite clear how the subject of discussion works, or like "all
        that crap" when "mumble" is being used as an implicit
        replacement for pejoratives.

mumble

        1. Said when the correct response is too complicated to
        enunciate, or the speaker has not thought it out.  Often
        prefaces a longer answer, or indicates a general reluctance to
        get into a long discussion.  "Don't you think that we could
        improve LISP performance by using a hybrid reference-count
        transaction garbage collector, if the cache is big enough and
        there are some extra cache bits for the {microcode} to use?"
        "Well, mumble ... I'll have to think about it."

        2. Yet another {metasyntactic variable}, like {foo}.

        3. Sometimes used in "public" contexts on-line as a
        placefiller for things one is barred from giving details
        about.  For example, a poster with pre-released hardware in
        his machine might say "Yup, my machine now has an extra 16M of
        memory, thanks to the card I'm testing for Mumbleco."

        4. A conversational wild card used to designate something one
        doesn't want to bother spelling out, but which can be
        {glark}ed from context.  Compare {blurgle}.

        5. [XEROX PARC] A colloquialism used to suggest that further
        discussion would be fruitless.

        (1997-03-27)

mumble mode

        <jargon> The mode a program, piece of hardware, or other
        system is said to be in when it is still running and perhaps
        reacting to input and/or occasionally producing output
        (especially if it shouldn't), but in a way that appears wildly
        inappropriate to the task it is supposed to perform.

        Compare "{off the trolley}" and "{deep space}".

        (1997-03-27)

MUMPS

        (Or "M") Massachusetts General Hospital Utility
        Multi-Programming System.

        A programming language with extensive tools for the support of
        {database management system}s.  MUMPS was originally used for
        medical records and is now widely used where multiple users
        access the same databases simultaneously, e.g. banks, stock
        exchanges, travel agencies, hospitals.

        Early MUMPS implementations for {PDP-11} and {IBM PC} were
        complete {operating system}s, as well as programming
        languages, but current-day implementations usually run under a
        normal host {operating system}.

        A MUMPS program hardly ever explicitly performs low-level
        operations such as opening a file - there are programming
        constructs in the language that will do so implicitly, and
        most MUMPS programmers are not even aware of the {operating
        system} activity that MUMPS performs.

        Syntactically MUMPS has only one data-type: strings.
        Semantically, the language has many data-types: Text strings,
        binary strings, {floating point} values, integer values,
        {Boolean} values.  Interpretation of strings is done inside
        functions, or implicitly while applying mathematical
        operators.  Since many operations involve only moving data
        from one location to another, it is faster to just move
        uninterpreted strings.  Of course, when a value is used
        multiple times in the context of arithmetical operations,
        optimised implementations will typically save the numerical
        value of the string.

        MUMPS was designed for portability.  Currently, it is possible
        to share the same MUMPS database between radically different
        architectures, because all values are stored as text strings.
        The worst an implementation may have to do is swap pairs of
        bytes.  Such multi-CPU databases are actually in use, some
        offices share databases between {VAX}, {DEC Alpha}, {SUN},
        {IBM PC} and {HP} {workstation}s.

        Versions of MUMPS are available on practically all hardware,
        from the smallest ({IBM PC}, {Apple Macintosh}, {Acorn}
        {Archimedes}), to the largest {mainframe}.  MSM ({Micronetics
        Standard MUMPS}) runs on {IBM PC RT} and {R6000}; DSM (Digital
        Standard Mumps) on the {PDP-11}, {VAX}, {DEC Alpha}, and
        {Windows-NT}; {Datatree MUMPS} from {InterSystems} runs on
        {IBM PC}; and {MGlobal MUMPS} on the {Macintosh}.
        Multi-{platform} versions include {M/SQL}, available from
        {InterSystems}, {PFCS} <mumps@pfcs.com> and {MSM}.

        {Greystone Technologies}' GT/M runs on {VAX} and {DEC Alpha}.
        This is a compiler whereas the others are {interpreter}s.
        {GT/SQL} is their {SQL} pre-processor.

        ISO standard 11756 (1991).  ANSI standard: "MUMPS Language
        Standard", X11.1 (1977, 1984, 1990, 1995?).

        The MUMPS User's Group is known as the {M Technology
        Association}.

        {Usenet} newsgroups: {news:comp.lang.mumps}.

        (1996-04-28)

munch

        To transform information in a serial fashion, often requiring
        large amounts of computation.  To trace down a data structure.
        Related to {crunch} and nearly synonymous with {grovel}, but
        connotes less pain.

        Often confused with {mung}.

        (1995-01-10)

munching

        Exploration of security holes of someone else's computer for
        thrills, notoriety or to annoy the system manager.  Compare
        {cracker}.  See also {hacked off}.

munching squares

        A {display hack} dating back to the {PDP-1} (ca. 1962,
        reportedly discovered by Jackson Wright), which employs a
        trivial computation (repeatedly plotting the graph Y = X XOR T
        for successive values of T - see {HAKMEM} items 146--148) to
        produce an impressive display of moving and growing squares
        that devour the screen.  The initial value of T is treated as
        a parameter, which, when well-chosen, can produce amazing
        effects.  Some of these, later (re)discovered on the {LISP
        Machine}, have been christened "munching triangles" (try AND
        for XOR and toggling points instead of plotting them),
        "munching w's", and "munching mazes".  More generally, suppose
        a graphics program produces an impressive and ever-changing
        display of some basic form, foo, on a display terminal, and
        does it using a relatively simple program; then the program
        (or the resulting display) is likely to be referred to as
        "munching foos".  [This is a good example of the use of the
        word {foo} as a {metasyntactic variable}.]

munchkin

        /muhnch'kin/ [Squeaky-voiced little people in L. Frank Baum's
        "The Wizard of Oz"] A teenage-or-younger micro enthusiast
        hacking BASIC or something else equally constricted.  A term
        of mild derision - munchkins are annoying but some grow up
        to be hackers after passing through a {larval stage}.  The
        term {urchin} is also used.  See also {wannabee}, {bitty box}.

mundane

        [SF fandom] 1. A person who is not in science fiction fandom.

        2. A person who is not in the computer industry.  In this
        sense, most often an adjectival modifier as in "in my mundane
        life...."  See also {Real World}.

mung

        /muhng/ (MIT, 1960) Mash Until No Good.

        Sometime after that the derivation from the {recursive
        acronym} "Mung Until No Good" became standard.  1. To make
        changes to a file, especially large-scale and irrevocable
        changes.

        See {BLT}.

        2. To destroy, usually accidentally, occasionally maliciously.
        The system only mungs things maliciously; this is a
        consequence of {Finagle's Law}.

        See {scribble}, {mangle}, {trash}, {nuke}.

        Reports from {Usenet} suggest that the pronunciation /muhnj/
        is now usual in speech, but the spelling "mung" is still
        common in program comments (compare the widespread confusion
        over the proper spelling of {kluge}).

        3. The kind of beans of which the sprouts are used in Chinese
        food.  (That's their real name!  Mung beans!  Really!)

        Like many early hacker terms, this one seems to have
        originated at {TMRC}; it was already in use there in 1958.
        Peter Samson (compiler of the original TMRC lexicon) thinks it
        may originally have been onomatopoeic for the sound of a relay
        spring (contact) being twanged.  However, it is known that
        during the World Wars, "mung" was army slang for the ersatz
        creamed chipped beef better known as "SOS".

        (1994-12-02)

munge

        /muhnj/ 1. A derogatory term meaning to imperfectly transform
        information.

        2. A comprehensive rewrite of a routine, data structure or the
        whole program.

        This term is often confused with {mung} and may derive from
        it, or possibly vice-versa.

        (1994-12-02)

MUP

        {Multiple Universal naming convention Provider}

MU-Prolog

        <language> {Prolog} with "wait" declarations for
        {coroutining}, developed by L. Naish of the {Univeristy of
        Melbourne} in 1982.

        ["Negation and Control in Prolog", L. Naish, TR 85/12, U
        Melbourne (1985)].  See {NU-Prolog}.

        (1998-02-14)

Murphy's Law

        <humour> (Or "Sod's Law") The correct, *original* Murphy's Law
        reads: "If there are two or more ways to do something, and one
        of those ways can result in a catastrophe, then someone will
        do it."  This is a principle of defensive design, cited here
        because it is usually given in mutant forms less descriptive
        of the challenges of design for {lusers}.  For example, you
        don't make a two-pin plug symmetrical and then label it "THIS
        WAY UP"; if it matters which way it is plugged in, then you
        make the design asymmetrical (see also the anecdote under
        {magic smoke}).

        Edward A. Murphy, Jr. was one of the engineers on the
        rocket-sled experiments that were done by the US Air Force in
        1949 to test human acceleration tolerances (USAF project
        MX981).  One experiment involved a set of 16 accelerometers
        mounted to different parts of the subject's body.  There were
        two ways each sensor could be glued to its mount, and somebody
        methodically installed all 16 the wrong way around.  Murphy
        then made the original form of his pronouncement, which the
        test subject (Major John Paul Stapp) quoted at a news
        conference a few days later.

        Within months "Murphy's Law' had spread to various technical
        cultures connected to aerospace engineering.  Before too many
        years had gone by variants had passed into the popular
        imagination, changing as they went.  Most of these are
        variants on "Anything that can go wrong, will"; this is
        sometimes referred to as {Finagle's Law}.  The memetic drift
        apparent in these mutants clearly demonstrates Murphy's Law
        acting on itself!

        (1998-02-14)

Muse

        <language> {OR-parallel} {logic programming}.

        [Details?]

        (1995-03-16)

museum

        {Museums on the Web
        (http://www.comlab.ox.ac.uk/archive/other/museums.html)}.
        {(http://galaxy.einet.net/GJ/museums.html)}.

        (1995-03-16)

MUSH

        1. <games> {Multi-User Shared Hallucination}.

        2. <messaging> {Mail Users' Shell}.

Music

        <language, music> A series of languages for musical sound
        synthesis from {Bell Labs}, 1960's.  Versions: Music I through
        Music V.

        ["An Acoustical Compiler for Music and Psychological Stimuli",
        M.V. Mathews, Bell Sys Tech J 40 (1961)].

        (1999-06-04)

Musical Instrument Digital Interface

        <music, hardware, protocol, file format> (MIDI /mi'-dee/,
        /mee'-dee/) A {hardware} specification and {protocol} used to
        communicate note and effect information between synthesisers,
        computers, music keyboards, controllers, and other electronic
        music devices.  It is basically a high-speed {serial}
        connection with separate connections for MIDI in, MIDI out and
        MIDI through (to allow devices to be chained).

        The basic unit of information is a "note on/off" event which
        includes a note number (pitch) and key velocity (loudness).
        There are many other message types for events such as pitch
        bend, patch changes and synthesizer-specific events for
        loading new patches etc.

        There is a file format for expressing MIDI data which is like
        a dump of data sent over a MIDI port.

        The {MIME} type "audio/midi" isn't actually registered so it
        should probably be "audio/x-midi".

        {Filename} {extension}: .mid or .midi

        {(http://www.update.uu.se/~vick/Coordinator.html)}.

        {Usenet} newsgroups: {news:comp.music.midi},
        {news:alt.music.midi}.

        (1998-06-27)

MuSimp

        <language> A {Lisp} variant used as the programming language
        for the {IBM PC} {symbolic mathematics} package {MuMath}.

        (1995-04-12)

MUSL

        {Manchester University Systems Language}

mutant

        <programming> {Microsoft}'s term for a {mutex} which is
        generally used in {user mode} but can also be used in {kernel
        mode}.  According to this terminology a mutex is only used in
        kernel mode.

        ["Microsoft Windows NT Workstation Resource Kit"].

        (1997-07-30)

Mutation Testing

        <testing> A method to determine {test set thoroughness} by
        measuring the extent to which a test set can discriminate the
        program from slight variants of the program.

        (1996-12-27)

MuTeX

        <tool, music> An extension of {TeX} for typesetting music.

        {(ftp://nic.stolaf.edu/pub/mutex/MuTeX.tar.Z)}

        (1995-02-06)

mutex

        <parallel> A {mutual exclusion} object that allows multiple
        {threads} to synchronize access to shared resources.  A mutex
        has two states: locked and unlocked.  Once a mutex has been
        locked by a thread, other threads attempting to lock it will
        block.  When the locking thread unlocks (releases) the mutex,
        one of the blocked threads will acquire (lock) it and proceed.

        [Which blocked thread proceeds?]

        (1997-05-13)

mutter

        To quietly enter a command not meant for the ears, eyes, or
        fingers of ordinary mortals.  Often used in "mutter an
        {incantation}".

        See also {wizard}.

        (1995-02-06)

mutual exclusion

        <parallel, operating system> (Or "mutex", plural: "mutexes") A
        collection of techniques for sharing resources so that
        different uses do not conflict and cause unwanted
        interactions.  One of the most commonly used techniques for
        mutual exclusion is the {semaphore}.

        (1995-04-08)

mutually recursive

        {recursion}

mutual recursion

        {recursion}

mux

        {multiplexor}

mv

        <networking> The {country code} for Maldives.

        (1999-01-27)

MVC

        {Model View Controller}

MVCC

        {Multi-Version Concurrency Control}

MVS

        {Multiple Virtual Storage}

MVS/ESA

        {Multiple Virtual Storage}

MVS/OE

        {Multiple Virtual Storage}

MVS/Open Edition

        {Multiple Virtual Storage}

MVS/SP

        {Multiple Virtual Storage}

MVS/XA

        {Multiple Virtual Storage}

mw

        <networking> The {country code} for Malawi.

        (1999-01-27)

mx

        <networking> The {country code} for Mexico.

        (1999-01-27)

MXI

        {Multisystem eXtention Interface Bus}

MXIbus

        {Multisystem eXtention Interface Bus}

MX Record

        {Mail Exchange Record}

my

        <networking> The {country code} for Malaysia.

        (1999-01-27)

My Favourite Toy Language

        <jargon, language> (MFTL) Describes a talk on a {programming
        language} design that is heavy on {syntax} (with lots of
        {BNF}), sometimes even talks about {semantics} (e.g. {type
        system}s), but rarely, if ever, has any content (see
        {content-free}).  More broadly applied to talks - even when
        the topic is not a programming language --- in which the
        subject matter is gone into in unnecessary and meticulous
        detail at the sacrifice of any conceptual content.  "Well, it
        was a typical MFTL talk".

        2. A language about which the developers are passionate (often
        to the point of prosyletic zeal) but no one else cares about.
        Applied to the language by those outside the originating
        group.  "He cornered me about type resolution in his MFTL."

        The first great goal in the mind of the designer of an MFTL is
        usually to write a compiler for it, then bootstrap the design
        away from contamination by lesser languages by writing a
        compiler for it in itself.  Thus, the standard put-down
        question at an MFTL talk is "Has it been used for anything
        besides its own compiler?".  On the other hand, a language
        that *cannot* be used to write its own compiler is beneath
        contempt.

        {Doug McIlroy} once proposed a test of the generality and
        utility of a language and the {operating system} under which
        it is compiled: "Is the output of a {FORTRAN} program
        acceptable as input to the FORTRAN compiler?"  In other words,
        can you write programs that write programs?  Alarming numbers
        of (language, OS) pairs fail this test, particularly when the
        language is FORTRAN.  Aficionados are quick to point out that
        {Unix} (even using FORTRAN) passes it handily.  That the test
        could ever be failed is only surprising to those who have had
        the good fortune to have worked only under modern systems
        which lack OS-supported and -imposed "file types".

        See {break-even point}, {toolsmith}.

        (1995-03-07)

MYOB

        <chat> mind your own business.

MYSTIC

        <language> An early system on the {IBM 704}, {IBM 650}, {IBM
        1103} and 1103A.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-03-07)

mz

        <networking> The {country code} for Mozambique.

        (1999-01-27)

N

        /N/ quant. 1. A large and indeterminate number of objects:
        "There were N bugs in that crock!"  Also used in its
        original sense of a variable name: "This crock has N bugs,
        as N goes to infinity."  (The true number of bugs is always
        at least N + 1; see {Lubarsky's Law of Cybernetic
        Entomology}.)

        2. A variable whose value is inherited from the current
        context.  For example, when a meal is being ordered at a
        restaurant, N may be understood to mean however many people
        there are at the table.  From the remark "We'd like to order N
        wonton soups and a family dinner for N - 1" you can deduce
        that one person at the table wants to eat only soup, even
        though you don't know how many people there are.

        3. "Nth": The ordinal counterpart of N, senses 1 and 2.  "Now
        for the Nth and last time..." In the specific context
        "Nth-year grad student", N is generally assumed to be at least
        4, and is usually 5 or more (see {tenured graduate student}).
        See also {random numbers}, {two-to-the-N}.

N10

        Original codename of the {Intel} {i860} {microprocessor}.

na

        <networking> The {country code} for Namibia.

        (1999-01-27)

nadger

        /nad'jr/ [Great Britain] Of software or hardware (not people),
        to twiddle some object in a hidden manner, generally so that
        it conforms better to some format.  For instance, string
        printing routines on 8-bit processors often take the string
        text from the instruction stream, thus a print call looks like

                jsr print:"Hello world"

        The print routine has to "nadger" the saved {instruction
        pointer} so that the processor doesn't try to execute the text
        as instructions when the subroutine returns.

NAG

        1. {Numerical Algorithms Group}.

        2. The {Linux Network Administrators' Guide}.

Nagling Coalescence

        <networking, algorithm> An algorithm for improving {TCP/IP}
        network performance by combining small {packets} ("tinygrams")
        into larger ones, thus reducing the per-packet overhead.  The
        server transmits the packet either when it has reached a
        preset size or when it receives an acknowledgment of the
        previous packet.

        [Who was Nagling?]

        (1998-11-06)

nagware

        /nag'weir/ [{Usenet}] The variety of {shareware} that displays
        a large screen at the beginning or end reminding you to
        register, typically requiring some sort of keystroke to
        continue so that you can't use the software in batch mode.
        Compare {crippleware}.

nailed to the wall

        [like a trophy] Said of a {bug} finally eliminated after
        protracted, and even heroic, effort.

nailing jelly

        See {like nailing jelly to a tree}.

naive

        Untutored in the perversities of some particular program or
        system; one who still tries to do things in an intuitive way,
        rather than the right way (in really good designs these
        coincide, but most designs aren't "really good" in the
        appropriate sense).  This trait is completely unrelated to
        general maturity or competence or even competence at any other
        specific program.  It is a sad commentary on the primitive
        state of computing that the natural opposite of this term is
        often claimed to be "experienced user" but is really more like
        "cynical user".

        (1994-11-29)

naive user

        A {luser}.  Tends to imply someone who is ignorant mainly
        owing to inexperience.  When this is applied to someone who
        *has* experience, there is a definite implication of
        stupidity.

NAK

        {Negative Acknowledgement}

name capture

        <reduction> In {beta reduction}, when a term containing a
        {free} occurrence of a variable v is substituted into another
        term where v is bound the free v becomes spuriously bound or
        "captured".  E.g.

                (\ x . \ y . x y) y  -->  \ y . y y     (WRONG)

        This problem arises because two distinct variables have the
        same name.  The most common solution is to rename the bound
        variable using {alpha conversion}:

                (\ x . \ y' . x y') y --> \ y' . y y'

        Another solution is to use {de Bruijn notation}.

        Note that the argument expression, y, contained a {free
        variable}.  The whole expression above must therefore be
        notionally contained within the body of some {lambda
        abstraction} which binds y.  If we never reduce inside the
        body of a lambda abstraction (as in reduction to {weak head
        normal form}) then name capture cannot occur.

        (1995-03-14)

named

        <networking> Name Daemon.

        <networking> A {Unix} {background} process that converts
        {hostnames} to {Internet addresses} for the {TCP/IP}
        {protocol}.

        {Unix manual page}: named(8).

        See also {DNS}.

        (1995-03-28)

named pipe

        <operating system> A {Unix} {pipe} with a {filename} created
        using the "{mknod}" command.  Named pipes allow unrelated
        processes to communicate with each other whereas the normal
        (un-named) kind can only be used by processes which are parent
        and child or siblings ({fork}ed from the same parent).

        (1996-12-01)

name resolution

        <networking> The process of mapping a name into its
        corresponding address.

        The {Domain Name System} is the system which does name
        resolution on the {Internet}.

        (1997-12-15)

name service switching

        {Domain Name System}

namespace

        A set of names in which all names are unique.

NaN

        {Not-a-Number}

NAND

        Not AND.

        The {Boolean} function which is true unless both its arguments
        are true, the {logical complement} of {AND}:

        A NAND B = NOT (A AND B) = (NOT A) OR (NOT B)

        Its {truth table} is:

                A | B | A NAND B
                --+---+---------
                F | F |    T
                F | T |    T
                T | F |    T
                T | T |    F

        NAND, like {NOR}, forms a complete set of {Boolean} functions
        on its own since it can be used to make NOT, AND, OR and any
        other Boolean function:

        NOT A = A NAND A

        A AND B = NOT (A NAND B)

        A OR B = (NOT A) NAND (NOT B)

        (1995-01-24)

nano-

        /nan'oh/ 1. <unit> A {prefix}.

        2. Used losely to mean "small", e.g. {nanotechnology}.

        3. <jargon> (CMU, from "nanosecond") A brief period of time.
        "Be with you in a nano" means you really will be free shortly,
        i.e. implies what mainstream people mean by "in a jiffy".

        Compare {jiffy}.

        (1995-09-20)

nanoacre

        <unit, humour> /nan'oh-ay"kr/ A unit (about 2 mm square) of
        real estate on a {VLSI} {integrated circuit}.  VLSI nanoacres
        have costs in the same range as real acres once one allows for
        design and fabrication setup costs.

        (1995-09-20)

nanobot

        <robotics> /nan"oh-bot/ A robot of microscopic proportions,
        presumably built by means of {nanotechnology}.  As yet, only
        used informally (and speculatively!).  Also called a
        "nanoagent".

        (1999-07-19)

nanocomputer

        /nan'oh-k*m-pyoo'tr/ A computer with molecular-sized switching
        elements.  Designs for mechanical nanocomputers which use
        single-molecule sliding rods for their logic have been
        proposed.  The controller for a {nanobot} would be a
        nanocomputer.

nanofortnight

        <jargon> ({Adelaide University}) 10^-9 fortnights or about 1.2
        {milliseconds}.  This unit was used largely by students doing
        undergraduate practicals.

        See {microfortnight}, {attoparsec}, and {micro-}.

        (1996-11-15)

nanosecond

        <unit> (ns) 10^-9 seconds; one thousand millionth part of a
        second.

        This is the unit in which the fundamental logical operations
        of modern digital circuits are typically measured.  For
        example, a {microprocessor} with a {clock} frequency of 100
        {megahertz} will have a 10 nanosecond clock period.

        (1996-11-15)

nanotechnology

        /nan'-oh-tek-no"l*-jee/ A hypothetical fabrication technology
        in which objects are designed and built with the individual
        specification and placement of each separate atom.  The first
        unequivocal nanofabrication experiments took place in 1990,
        for example with the deposition of individual xenon atoms on a
        nickel substrate to spell the logo of a certain very large
        computer company.  Nanotechnology has been a hot topic in the
        hacker subculture ever since the term was coined by K. Eric
        Drexler in his book "Engines of Creation", where he predicted
        that nanotechnology could give rise to replicating assemblers,
        permitting an exponential growth of productivity and personal
        wealth.

        See also {nanobot}.

        {(http://www.lucifer.com/~sean/Nano.html)}

        (1996-01-10)

Napier

        Atkinson & Morrison, St Andrews U; design began ca. 1985,
        first implementation Napier88, 1988.  Based on {orthogonal
        persistence}, permits definition and manipulation of
        namespaces.

        ["The Napier88 Reference Manual", R. Morrison et al, CS Depts
        St Andrews U and U Glasgow, Persistent Programming Research
        Report PPRR-77-89, 1989].

NAPLPS

        North American Presentation-Level-Protocol Syntax.  Format for
        sending text and graphics over communication lines.  Used by
        {videotex} systems.

NAPSS

        Numerical Analysis Problem Solving System.  Purdue ca. 1965.

        ["NAPSS - A Numerical Analysis Problem Solving System",
        J.R. Rice et al, Proc ACM 21st Natl Conf, 1966.  Sammet 1969,
        p.299].

narrowing

        {Unification} followed by {unfolding}.  The left-hand side of
        a {rule} is unified with some term, resulting in a set of
        variable bindings.  The term is then replaced by the
        right-hand side of the rule with values substituted for {bound
        variable}s.

NAS

        Network Application Support.  {DEC}'s approach to applications
        integration across a distributed multivendor environment.

nasal demons

        Recognised shorthand on the {Usenet} group comp.std.c for any
        unexpected behaviour of a {C} compiler on encountering an
        undefined construct.  During a discussion on that group in
        early 1992, a regular remarked "When the compiler encounters
        [a given undefined construct] it is legal for it to make
        demons fly out of your nose" (the implication is that the
        compiler may choose any arbitrarily bizarre way to interpret
        the code without violating the {ANSI C} {standard}).  Someone
        else followed up with a reference to "nasal demons", which
        quickly became established.

NASI

        {NetWare Asynchronous Services Interface}

        {Novell NetWare}.

nastistical

        <humour, mathematics> A description of a method, thought by
        the programmer to be correct statistics, but which is not.  An
        example is averaging together several averages of samples of
        different sizes.  The correct way to do this is to average
        together all of the individual samples.

        (1997-02-12)

NASTRAN

        NAsa STRess ANalysis program.  A program for solving large
        stress analysis problems.

        ["The NASTRAN User's Manual", SP-222(C3), NASA, 1976].

nastygram

        /nas'tee-gram/ 1. A protocol packet or item of e-mail (the
        latter is also called a {letterbomb}) that takes advantage of
        misfeatures or security holes on the target system to do
        untoward things.

        2. Disapproving mail, especially from a {net.god}, pursuant to
        a violation of {netiquette} or a complaint about failure to
        correct some mail- or news-transmission problem.  Compare
        {shitogram}, {mailbomb}.

        3. A status report from an unhappy, and probably picky,
        customer.  "What did Corporate say in today's nastygram?"

        4. [deprecated] An error reply by mail from a {daemon}; in
        particular, a {bounce message}.

NAT

        {Network Address Translation}

Nathan Hale

        <character> An asterisk ("*", see also {splat}, {ASCII}).
        Notionally, from "I regret that I have only one asterisk for
        my country!" ("life to give" -> "ass to risk" -> "asterisk"),
        a misquote of the famous remark uttered by Nathan Hale just
        before he was hanged.  Hale was a (failed) spy for the rebels
        in the American War of Independence.

        (1996-09-22)

National Center for Supercomputing Applications

        <body, World-Wide Web> (NCSA) The birthplace of the first
        version of the {Mosaic} {World-Wide Web} {browser}.

        Address: Urbana, IL, USA.

        {Home (http://www.ncsa.uiuc.edu/)}

        (1994-10-27)

national characters

        <character> {Characters} with accents and other diacritical
        marks that are used in certain written languages (that are
        based on the Roman alphabet) but not in others, particularly
        not in English.  A standard list is {ISO} {Latin 1}.

        (1996-06-24)

National Database Language

        <database, standard> (NDL) A US {standard} for portability of
        {database} definitions and {application programs}.

        (1996-06-24)

National Information Infrastructure

        <project> (NII, or "{information superhighway}") Future
        integrated communications in the USA.  The NII will be based
        on a nationwide network of networks, and will supposedly allow
        all Americans to take advantage of the country's information,
        communication, and computing resources.

        The NII will include current and future public and private
        high-speed, interactive, {narrow-band} and {broadband}
        networks.  It is the satellite, terrestrial, and wireless
        communications systems that deliver content to homes,
        businesses, and other public and private institutions.  It is
        the information and content that flows over the infrastructure
        whether in the form of {database}s, the written word, a film,
        a piece of music, a sound recording, a picture, or computer
        software.  It is the computers, televisions, telephones,
        radios, and other products that people will employ to access
        the infrastructure.  It is the people who will provide,
        manage, and generate new information, and those that will help
        others do the same.  And it is the individual Americans who
        will use and benefit from the NII.  The NII is a term that
        encompasses all these components and captures the vision of a
        nationwide, invisible, seamless, dynamic web of transmission
        mechanisms, information appliances, content, and people.

        {(http://sunsite.unc.edu/nii/NII-Table-of-Contents.html)}

        (1995-04-08)

National Information Services and Systems

        (NISS) An information archive service at {Bath University},
        intended primarily for UK eductional institutions.

        {(http://www.niss.ac.uk/)}

        (1994-11-23)

National Institute of Standards and Technology

        (NIST) United States governmental body that provides
        assistance in developing {standard}s.  Formerly the National
        Bureau of Standards.

        (1994-11-23)

National Research and Education Network

        (NREN) The realisation of an interconnected gigabit computer
        network devoted to High Performance Computing and
        Communications.

        See also {HPPC}, {IINREN}.

        (1994-11-23)

National Science Foundation

        <body> (NSF) A US government agency that promotes the
        advancement of science by funding science researchers,
        scientific projects and infrastructure to improve the quality
        of scientific research.  The {NSFNET} is funded by NSF.

        {Home (http://www.nsf.org/)}.

        (1999-01-15)

National Science Foundation Network

        (NSFNET) A high speed hierarchical "network of networks" in
        the US, funded by the {National Science Foundation}.  At the
        highest level, it is a {backbone} network comprising 16 nodes
        connected to a 45Mb/s facility which spans the continental
        United States.  Attached to that are mid-level networks and
        attached to the mid-levels are campus and local networks.
        NSFNET also has connections out of the US to Canada, Mexico,
        Europe, and the Pacific Rim.  The NSFNET is part of the
        {Internet}.

        (1993-01-01)

National Software Reuse Directory

        (NSRD) A directory of reusable software in the {ASSET} system.

        (1995-02-03)

National Spatial Data Infrastructure

        (NSDI)

        {(http://fgdc.er.usgs.gov/nsdiover.html)}

        [Summary?]

        (1995-03-06)

National Television Standards Committee

        <electronics> (NTSC) The body defining the television video
        signal format used in the USA.  The UK equivalent is {PAL}.

        Also, humorously, "Never Twice the Same Colour".

        (1997-07-17)

native compiler

        <programming, tool> A {compiler} which runs on the computer
        for which it is producing {machine code}, in contrast to a
        {cross-compiler}, which produces code for a different
        computer.

        (1995-11-04)

Native Language System

        (NLS) A set of interfaces specified by {X/Open} for developing
        applications to run in different {natural language}
        environments.

        (1995-02-03)

NATURAL

        An integrated {4GL} from {Software AG}, Germany.  The
        menu-driven version is SUPER/NATURAL.

        Natural 2 is a major upgrade to Natural 1.

        Version 2.1.7 in the MVS environment (June 1995, also
        available for Unix).

        Natural works with {DB2} and various other {databases}, but
        Natural and {Adabas} normally go together.  There are many
        products available in the "Natural" family, including
        SuperNatural, Natural for Windows, Entire Connection (enables
        up/downloading and interaction with {Excel}) and Esperant.

        (1995-11-14)

natural deduction

        A set of rules expressing how valid {proof}s may be
        constructed in {predicate logic}.

        A horizontal line separates premises (above) from conclusions
        (below).  Vertical ellipsis (dots) stand for a series of
        applications of the rules.  "T" is the constant "true" and "F"
        is the constant "false" (sometimes written with a {LaTeX}
        {\perp}).

        "^" is the AND (conjunction) operator, "v" is the inclusive OR
        (disjunction) operator and "/" is NOT (negation or
        {complement}, normally written with a {LaTeX} {\neg}).

        P, Q, P1, P2, etc. stand for {proposition}s such as "Socrates
        was a man".  P[x] is a proposition possibly containing
        instances of the variable x, e.g. "x can fly".

        A proof (a sequence of applications of the rules) may be
        enclosed in a box.  A boxed proof produces conclusions that
        are only valid given the assumptions made inside the box,
        however, the proof demonstrates certain relationships which
        are valid outside the box.  For example, the box below
        labelled "Implication introduction" starts by assuming P,
        which need not be a true {propoistion} so long as it can be
        used to derive Q.

        Truth introduction:

         -
         T

        (Truth is free).

        Binary AND introduction:

         -----------
         | .  | .  |
         | .  | .  |
         | Q1 | Q2 |
         -----------
           Q1 ^ Q2

        (If we can derive both Q1 and Q2 then Q1^Q2 is true).

        N-ary AND introduction:

         ----------------
         | .  | .. | .  |
         | .  | .. | .  |
         | Q1 | .. | Qn |
         ----------------
          Q1^..^Qi^..^Qn

        Other n-ary rules follow the binary versions similarly.

        Quantified AND introduction:

         ---------
         | x  .  |
         |    .  |
         |  Q[x] |
         ---------
         For all x . Q[x]

        (If we can prove Q for arbitrary x then Q is true for all x).

        Falsity elimination:

         F
         -
         Q

        (Falsity opens the floodgates).

        OR elimination:

           P1 v P2
         -----------
         | P1 | P2 |
         | .  | .  |
         | .  | .  |
         | Q  | Q  |
         -----------
              Q

        (Given P1 v P2, if Q follows from both then Q is true).

        Exists elimination:

         Exists x . P[x]
         -----------
         | x  P[x] |
         |     .   |
         |     .   |
         |     Q   |
         -----------
               Q

        (If Q follows from P[x] for arbitrary x and such an x exists
        then Q is true).

        OR introduction 1:

            P1
         -------
         P1 v P2

        (If P1 is true then P1 OR anything is true).

        OR introduction 2:

            P2
         -------
         P1 v P2

        (If P2 is true then anything OR P2 is true).  Similar
        symmetries apply to ^ rules.

        Exists introduction:

             P[a]
         -------------
         Exists x.P[x]

        (If P is true for "a" then it is true for all x).

        AND elimination 1:

         P1 ^ P2
         -------
            P1

        (If P1 and P2 are true then P1 is true).

        For all elimination:

         For all x . P[x]
         ----------------
               P[a]

        (If P is true for all x then it is true for "a").

        For all implication introduction:

         -----------
         | x  P[x] |
         |     .   |
         |     .   |
         |    Q[x] |
         -----------
         For all x . P[x] -> Q[x]

        (If Q follows from P for arbitrary x then Q follows from P for
        all x).

        Implication introduction:

         -----
         | P |
         | . |
         | . |
         | Q |
         -----
         P -> Q

        (If Q follows from P then P implies Q).

        NOT introduction:

         -----
         | P |
         | . |
         | . |
         | F |
         -----
          / P

        (If falsity follows from P then P is false).

        NOT-NOT:

         //P
         ---
          P

        (If it is not the case that P is not true then P is true).

        For all implies exists:

         P[a]   For all x . P[x] -> Q[x]
         -------------------------------
                      Q[a]

        (If P is true for given "a" and P implies Q for all x then Q
        is true for a).

        Implication elimination, modus ponens:

         P   P -> Q
         ----------
              Q

        (If P and P implies Q then Q).

        NOT elimination, contradiction:

         P   /P
         ------
           F

        (If P is true and P is not true then false is true).

        (1995-01-16)

Natural English

        Programming in normal, spoken English.  [Sammet 1969, p.768].

natural language

        <application> A language spoken or written by humans, as
        opposed to a language use to program or communicate with
        computers.  Natural language understanding is one of the
        hardest problems of {artificial intelligence} due to the
        complexity, irregularity and diversity of human language and
        the philosophical problems of meaning.

        See also {Pleuk grammar development system}, {proof}.

        {An on-line demonstration (http://sakharov.ai.mit.edu/Start)}

        {New York U
        (http://www.nyu.edu/pages/linguistics/ling.html)}.

        (1995-04-24)

Natural Language Information Analysis Method

        (NIAM, or Nijssen IAM) A method for {data model}ling.

        ["Conceptual Scheme and Relational Database Design", Nijssen
        and Halpin, Prentice-Hall, 1989].

        (1995-03-31)

natural language processing

        <artificial intelligence> (NLP) Computer understanding,
        analysis, manipulation, and/or generation of {natural
        language}.

        This can refer to anything from fairly simple
        string-manipulation tasks like {stemming}, or building
        concordances of natural language texts, to higher-level
        {AI}-like tasks like processing user {queries} in {natural
        language}.

        (1997-09-12)

natural number

        <mathematics> An {integer} greater than or equal to zero.  A
        natural number is an {isomorphism class} of a finite set.

        (1995-03-25)

nature

        {has the X nature}

NAU

        <networking>

        1. {Network Addressable Unit}.

        2. {Network Access Unit}.

        (1997-05-10)

navigating

        <networking, hypertext> Finding your way around.  Often used
        of the {Internet}, particularly the {World-Wide Web}.

        A {browser} is a tool for navigating {hypertext} documents.

        (1995-03-25)

Navigator

        {Netscape Navigator}

Nawk

        New AWK.  AT&T.  Pattern scanning and processing language.  An
        enhanced version of AWK, with dynamic regular expressions,
        additional built-ins and operators, and user-defined
        functions.

NB

        {C}

NBFCP

        {NetBIOS Frames Control Protocol}

NBS

        National Bureau of Standards: part of the US  Department of
        Commerce, now NIST.

NBT

        {NetBios over TCP/IP}

NC

        {Network Computer}

nc

        <networking> The {country code} for New Caledonia.

        (1999-01-27)

NCD

        {Network Computing Devices}

NCP

        <networking>

        1. {IBM} {Advanced Communication Function/Network Control
        Program}.

        2. {Novell, Inc.} {NetWare Core Protocol}.

        (1999-01-20)

NCR Corporation

        <company> Electronics company mainly active in the midrange
        server market.

        NCR was founded 1884 as National Cash Register Company.  It
        joint the computer industry in th 1950s.  In 1991 it was
        absorbed by {AT&T} (see {dinosaurs mating}), only to be spat
        out again in 1996.

        NCR {mainframes} of the 1960's are remembered by some for
        their hardware incompatibility with {IBM} mainframes: NCR
        punched round holes in their {punched cards} while IBM punched
        rectangular ones.  The codes and machines were not compatible
        and information could not be easily shared between NCR and IBM
        customers.

        {(http://www.ncr.com/)}

        (1997-03-10)

NCS

        Network Computing System: Apollo's RPC system used by DEC and
        Hewlett-Packard.The protocol has been adopted by {OSF}.

NCSA

        {National Center for Supercomputing Applications}

ND

        {natural deduction}

NDIS

        {Network Device Interface Specification}

NDL

        1. {National Database Language}.

        2. {Network Definition Language}.

NDS

        {Netware Directory Services}

ne

        <networking> The {country code} for Niger.

        (1999-01-27)

neat hack

        1. A clever technique.

        2. A brilliant practical joke, where neatness is correlated
        with cleverness, harmlessness, and surprise value.  Example:
        the Caltech Rose Bowl card display switch.  See also {hack}.

neats vs. scruffies

        <artificial intelligence, jargon> The label used to refer to
        one of the continuing {holy wars} in {artificial intelligence}
        research.  This conflict tangles together two separate issues.
        One is the relationship between human reasoning and AI;
        "neats" tend to try to build systems that "reason" in some way
        identifiably similar to the way humans report themselves as
        doing, while "scruffies" profess not to care whether an
        {algorithm} resembles human reasoning in the least as long as
        it works.  More importantly, neats tend to believe that
        {logic} is king, while scruffies favour looser, more ad-hoc
        methods driven by empirical knowledge.  To a neat, scruffy
        methods appear promiscuous, successful only by accident and
        not productive of insights about how intelligence actually
        works; to a scruffy, neat methods appear to be hung up on
        formalism and irrelevant to the hard-to-capture "common sense"
        of living intelligences.

        (1994-11-29)

Nebula

        An early business-oriented language from {ICL} for the
        {Ferranti Orion} computer.

        ["NEBULA - A Programming Language for Data Processing", T.G.
        Braunholtz et al, Computer J 4(3):197-201 (1961)].

        (1994-11-29)

NEC

        {Nippon Electronics Corporation}

neep-neep

        /neep neep/ [onomatopoeic, from New York SF fandom] One who is
        fascinated by computers.  Less specific than {hacker}, as it
        need not imply more skill than is required to {boot} {game}s
        on a {personal computer}.  The derived noun "neeping" applies
        specifically to the long conversations about computers that
        tend to develop in the corners at most SF-convention parties
        (the term "neepery" is also in wide use).  Fandom has a
        related proverb to the effect that "Hacking is a
        conversational black hole!".

        (1994-11-29)

negation by failure

        An {extralogical} feature of {Prolog} and other {logic
        programming} languages in which failure of {unification} is
        treated as establishing the negation of a {relation}.  For
        example, if Ronald Reagan is not in our {database} and we
        asked if he was an American, Prolog would answer "no".

        (1994-11-29)

negative acknowledge

        1. <character> (NAK) The {mnemonic} for {ASCII} character 21.

        Sometimes used as the response to receipt of a corrupted
        {packet} of information.

        Opposite of {Acknowledgement}.

        2. <communications> (NAK) Any message transmitted to indicate
        that some data has been received incorrectly, for example it
        may have a {checksum} or message length error.  A NAK message
        allows the sender to distinguish a message which has been
        received in a corrupted state from one which is not received
        at all.

        An alternative is to use only {ACK} messages, in which case
        the non-receipt of an ACK after a certain time is counted as a
        NAK but gives no information about the integrity of the
        communications channel.

        See also {ACK}.

        (1997-01-07)

NELIAC

        Navy Electronics Laboratory International ALGOL Compiler.

        An {Algol} variant designed for numeric and logical
        computations and based on {IAL}.  1958-1959.

        Version: BC NELIAC.

        ["Neliac - A Dialect of Algol", H.D. Huskey et al, CACM
        3(8):463-468 (Aug 1960)].

        (1994-11-29)

Neon

        Charles Duff.  An object-oriented extension of FORTH, for the
        Mac.  Inheritance, SANE {floating-point}, system classes and
        objects for Mac interfacing, overlays.  Sold by Kriya Systems,
        1985-1988.  Modified, made PD and renamed Yerk.

neophilia

        /nee"oh-fil"-ee-*/ The trait of being excited and pleased by
        novelty.  Common among most hackers, SF fans, and members of
        several other connected leading-edge subcultures, including
        the pro-technology "Whole Earth" wing of the ecology movement,
        space activists, many members of Mensa, and the
        Discordian/neo-pagan underground.  All these groups overlap
        heavily and (where evidence is available) seem to share
        characteristic hacker tropisms for science fiction, music,
        and oriental food.  The opposite tendency is "neophobia".

        (1999-06-04)

Neptune

        A hypertext system for computer assisted software engineering,
        developed at Tektronix.

Nerd pride

        <body> The Nerd Pride movement, modeled on the Gay Pride
        movement, was started at {MIT} by Professors {Gerald Sussman}
        and {Hal Abelson}.  Nerd pride paraphernalia includes baseball
        hats, buttons and - of course - pocket protectors.

        "My idea is to present an image to children that it is good to
        be intellectual, and not to care about the peer pressures to
        be anti-intellectual.  I want every child to turn into a nerd
        - where that means someone who prefers studying and learning
        to competing for social dominance".

        -- {Gerald Sussman}, quoted by Katie Hafner, "New York Times",
        1994-08-29.

        (1994-11-11)

NERECO

        NEtwork REmote COmmunications.

        {CSP} with extensions to allow asymmetrical and {asynchronous}
        communications and fault handling.  It is implemented on a
        network of {Sun}s.

        ["A Concurrent Programming Support for Distributed Systems",
        G. Spezzano et al, in Computing Systems vol 3, pp.423-447, U
        Cal Press, 1990].

        (1994-11-11)

NESL

        <language> A parallel language loosely based on {ML},
        developed at {Carnegie Mellon University} by the {SCandAL}
        project.  NESL integrates parallel {algorithms}, {functional
        languages} and implementation techniques from the system's
        community.

        Nested {data parallelism} offers concise code that is easy to
        understand and debug and suits irregular data structures such
        as {trees}, {graphs} or {sparse matrices}.

        NESL's language based performance model is a formal way to
        calculate the "work" and "depth" of a program.  These measures
        can be related to running time on a {parallel computer}.

        NESL was designed to make parallel programming easy and
        portable.  Algorithms are typically more concise in NESL than
        in most other parallel programming languages and the code
        resembles high-level {pseudocode}.  This places more
        responsibility on the {compiler} and {runtime system} for
        achieving good efficiency.

        NESL currently runs on {Unix} {workstations}, the {IBM SP-2},
        the {Thinking Machines} {CM5}, the {Cray} {C90} and {J90}, the
        {MasPar} {MP2}, and the {Intel} {Paragon}.  Work is underway
        (April 1997) on a portable {MPI} {back end}, and an
        implementation for {symmetric multiprocessors}, such as the
        {SGI} {Power Challenge} or the {DEC} {AlphaServer}.

        Latest version as of 1995-11-01: Release 3.1.

        {Home
        (http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/www/nesl.h
tml)}.

        ["NESL: A Nested Data-Parallel Language", Guy Blelloch,
        CMU-CS-93-129, April 1993].

        (1997-04-13)

net

        1. <networking> {network}.

        2. <networking> {network, the}.

        3. <architecture> {neural network}.

        4. <networking> The {top-level domain} originally for
        networks, although it sees heavy use for {vanity domains} of
        all types.

        (1999-01-26)

net.-

        <convention, networking, messaging> /net dot/ A prefix used to
        describe people and events related to {Usenet} and the
        {Internet}.  The convention dates from the time before the
        {Great Renaming}, when most non-local {Usenet} newsgroups had
        names beginning "net.".  Includes {net.god}s, "net.goddesses"
        (various charismatic net.women with circles of on-line
        admirers), "net.lurkers" (see {lurker}), "net.person",
        "net.parties" (a synonym for {boink}), and many similar
        constructs.

        See also {net.police}.

        (1995-03-21)

netaddress

        See {Knowbot Information Service}.

NetBEUI

        {NetBIOS} Extended User Interface.  The network transport
        {protocol} used by all of {Microsoft}'s network systems and
        {IBM}'s {LAN Server} based systems.

        NetBEUI is often confused with {NetBIOS}.  NetBIOS is the
        {applications programming interface} and NetBEUI is the
        transport protocol.

NetBIOS

        An {applications programming interface} (API) which activates
        {network} operations on {IBM PC} compatibles running under
        {Microsoft}'s {DOS}.  It is a set of network commands that the
        application program issues in order to transmit and receive
        data to another {host} on the network.  The commands are
        interpreted by a {network control program} or {network
        operating system} that is NetBIOS compatible.  See
        {NetBOLLIX}.

NetBIOS Frames Control Protocol

        <protocol> (NBFCP, NBF protocol, originally "NetBEUI
        protocol")

        [RFC 2097]

        [What is it?]

        (1997-05-10)

NetBios over TCP/IP

        <protocol> (NBT) A protocol supporting {NetBIOS} services in a
        {TCP/IP} environment, defined by {RFCs} 1001 and 1002.

        (1997-07-04)

NetBOLLIX

        ["bollix": to bungle] {IBM}'s {NetBIOS}, an extremely
        {brain-damaged} {network} {protocol} that, like {Blue Glue},
        is used at commercial shops that don't know any better.

netbui

        <spelling> It's spelled "{NetBEUI}".

        (1996-12-23)

netburp

        <networking, chat> (Or "netsplit") When {netlag} gets really
        bad, and delays between {IRC} servers exceed a certain
        threshhold, the network effectively becomes partitioned for a
        period of time, and large numbers of people seem to be signing
        off at the same time and then signing back on again when
        things get better.  An instance of this is called a "netburp"
        (or, sometimes, {netsplit}).

        (1996-06-04)

netCDF

        Network Common Data Form.  A machine-independent,
        self-describing file format for scientific data.

Netcom On-line Communication Services, Inc.

        <company> A company providing {Internet} access on {Sun
        Microsystems} computers running {Unix}.  Customers either log
        in to a {shell} running on a Netcom computer, or rent a {SLIP}
        or {PPP} connection and run their own net software.  Most
        hosts are in San Jose, California, but they have {Points of
        Presence} all over the USA.

        {Home (http://www.netcom.com/)}

        Address: 3031 Tisch Way San Jose, CA 95128, USA.

        Telephone: +1 (408) 983 5950, +1 800 353 6600.  Fax: +1 (408)
        241 9145.

        (1996-04-23)

netdead

        [IRC] The state of someone who signs off {IRC}, perhaps during
        a {netburp}, and doesn't sign back on until later.  In the
        interim, he is "dead to the net".

Netfind

        A research prototype that provides a simple {Internet} "{white
        pages}" user directory.  It runs on {SunOS} 4.0 or more recent
        systems that are connected to the Internet (however, you can
        run Netfind on one server at your site, and let the others use
        Netfind on that server).  Given the name of a person on the
        Internet and a rough description of where the person works,
        Netfind attempts to locate telephone and electronic mailbox
        information about the person.

        {(ftp://ftp.cs.colorado.edu/pub/cs/distribs/netfind)}

net.god

        <person> /net god/ Accolade referring to anyone who satisfies
        some combination of the following conditions: has been visible
        on {Usenet} for more than 5 years, ran one of the original
        backbone sites, moderated an important newsgroup, wrote news
        software, or knows Gene, Mark, Rick, Mel, Henry, Chuq, and
        Greg personally.

        Net.goddesses such as Rissa or the Slime Sisters have (so far)
        been distinguished more by personality than by authority.

        See {demigod}.

        (1996-01-07)

NetHack

        <games> /net'hak/ (Unix) A dungeon game similar to {rogue} but
        more elaborate, distributed in {C} source over {Usenet} and
        very popular at {Unix} sites and on {PC}-class machines
        (nethack is probably the most widely distributed of the
        {freeware} dungeon games).  The earliest versions, written by
        Jay Fenlason and later considerably enhanced by Andries
        Brouwer, were simply called "hack".  The name changed when
        maintenance was taken over by a group of hackers originally
        organised by Mike Stephenson.

        Version: NetHack 3.2 (Apr 1996?).

        {(http://www.win.tue.nl/games/roguelike/nethack/)}

        {FAQ
        (ftp://rtfm.mit.edu/pub/usenet/rec.games.roguelike.nethack/)}.

        {FTP U Penn (ftp://linc.cis.upenn.edu/pub/NH3.1/)} No large
        downloads between 9:00 and 18:00 local or the directory will
        be removed.

        {Usenet} newsgroup: {news:rec.games.roguelike.nethack}.

        E-mail: <nethack-bugs@linc.cis.upenn.edu>.

        (1996-06-13)

netiquette

        <convention, networking> /net'ee-ket/ or /net'i-ket/ Network
        etiquette.

        The conventions of politeness recognised on {Usenet} and in
        {mailing list}s, such as not (cross-)posting to inappropriate
        groups and refraining from commercial advertising outside the
        biz groups.

        The most important rule of netiquette is "Think before you
        post".  If what you intend to post will not make a positive
        contribution to the newsgroup and be of interest to several
        readers, don't post it!  Personal messages to one or two
        individuals should not be posted to newsgroups, use private
        e-mail instead.

        When following up an article, quote the minimum necessary to
        give some context to your reply and be careful to attribute
        the quote to the right person.  If the article you are
        responding to was posted to several groups, edit the
        distribution ("Newsgroups:") header to contain only those
        groups which are appropriate to your reply, especially if the
        original message was posted to one or more inappropriate
        groups in the first place.

        Re-read and edit your posting carefully before you post.
        Check the spelling and grammar.  Keep your lines to less than
        70 characters.  Don't post test messages (except to test
        groups) - wait until you have something to say.  When posting
        humorous or sarcastic comments, it is conventional to append
        a {smiley}, but don't overuse them.

        Before asking a question, read the messages already in the
        group and read the group's {FAQ} if it has one.  When you do
        post a question, follow it with "please reply by mail and I
        will post a summary if requested" and make sure you DO post a
        summary if requested, or if only a few people were interested,
        send them a summary by mail.  This avoids umpteen people
        posting the same answer to the group and umpteen others
        posting "me too"s.

        If you believe someone has violated netiquette, send them a
        message by _private e-mail_, DO NOT post a follow-up to the
        news.  And be polite, they may not realise their mistake, they
        might be a beginner or may not even have been responsible for
        the "crime" - their account may have been used by someone else
        or their address forged.

        Be proud of your postings but don't post just to see your name
        in pixels.  Remember: your future employer may be reading.

        {Netiquette for Usenet Site Administrators
        (http://ancho.ucs.indiana.edu/FAQ/USAGN/index.html)}.

        {"net.acceptable"
        (http://marketing.tenagra.com/net-acceptable.html)}.

        (1999-10-18)

NETL

        A {semantic network} language, for {connectionist}
        architectures.

        ["NETL: A System for Representing and Using Real-World Data",
        S.E. Fahlman, MIT Press 1979].

        (1995-01-05)

netlag

        <networking> A condition that occurs when the delays in the
        {IRC} network, a {MUD} connection, a {telnet} connection, or
        any other networked interactive system, become severe enough
        that servers briefly lose and then reestablish contact,
        causing messages to be delivered in bursts, often with delays
        of up to a minute.  (Note that this term has nothing to do
        with mainstream "jet lag").

        (1996-06-21)

netload

        A program to down-load {Excelan} {TCP/IP} software.  The
        host's {Ethernet} address can be specified as

                netload -e aabbccddeeff

        where aabbccddeeff is a 12 {hexadecimal} digit number.

        (1994-12-14)

Netmarq Limited

        A small technical consultancy specialising in the testing of
        network components.  They do performance tests of network
        interface cards, {router}s, {hub}s, {file server}s, etc.  To
        reflect the marketplace, most tests are carried out in a
        {Novell NetWare} environment, although they can equally well
        use {Lan server}, {Banyan Vines}, {NT Advanced Server}, {IBM
        PC} Support.  They claim to be Europe's leading such test lab
        and compete with US Labs such as {LanQuest} and {NSTL}.  They
        also do some network design, installation, support, and
        troubleshooting.

        E-mail: <netmarq@cix.compulink.co.uk>.

        (1994-12-14)

netmask

        <networking> A 32-bit {bit mask} which shows how an {Internet
        address} is to be divided into network, {subnet} and host
        parts.  The netmask has ones in the bit positions in the 32-bit address
 which are to be used for the network and subnet
        parts, and zeros for the host part.  The mask should contain
        at least the standard network portion (as determined by the
        address's {class}), and the subnet field should be contiguous
        with the network portion.

        If a `+' (plus sign) is given for the netmask value, then the
        network number is looked up in the {NIS} netmasks.byaddr map
        (or in the /etc/netmasks) file if not running the NIS service.

        {Unix manual page}: ifconfig(8).

        (1995-01-30)

NetNanny

        <networking> A small program for children to block access to
        certain sites.

        [Company?  Address?]

        (1997-02-12)

netnews

        /net'n[y]ooz/ 1. The software that makes {Usenet} run.

        2. The content of {Usenet}.  "I read netnews right after my
        mail most mornings."

        (1994-12-14)

net.personality

        Someone who has made a name for him or herself on {Usenet},
        through either longevity or attention-getting posts, but
        doesn't meet the other requirements of {net.god}hood.

netpipes

        <networking> A package by Robert Forsman <thoth@cis.ufl.edu>
        to manipulate {BSD Unix} {TCP/IP} stream {sockets}.  The
        netpipes package makes TCP/IP streams usable in {shell
        scripts}.  It can also simplify {client-server} code by
        allowing the programmer to skip all the tedious programming
        related to sockets and concentrate on writing a
        filter/service.

        {Home (http://www.cis.ufl.edu/~thoth/netpipes/)}.

        (1996-10-03)

net.police

        /net-p*-lees'/ (Or "net police", "net.cops") Those {Usenet}
        readers who feel it is their responsibility to pounce on and
        {flame} any posting which they regard as offensive or in
        violation of their understanding of {netiquette}.  Generally
        used sarcastically or pejoratively.

        See also {net.-}, {code police}.

netquette

        <spelling> It's spelled "{netiquette}".

        (1999-09-30)

Netrek

        <games> A 16-player graphical {real-time} battle simulation
        with a Star Trek theme.  The game is divided into two teams of
        eight (or less), who dogfight each other and attempt to
        conquer each other's planets.  There are several different
        types of ships, from fast, fragile scouts up to big, slow
        battleships; this allows a great deal of variance in play
        styles.  Netrek is played using a {client} to connect to one
        of several Netrek {servers} on the {Internet}.  There is a
        metaserver which distributes details of games in progress on
        other servers.

        See also {ogg}.

        [Dates?  Versions?  Authors?  Addresses?]

        (1998-02-01)

netrock

        /net'rok/ (IBM) A {flame}; used especially on {VNET}, {IBM}'s
        internal corporate network.

        (1994-11-18)

Netscape

        1. {Netscape Navigator}.

        2. {Netscape Communications Corporation}.

Netscape Communications Corporation

        <company> (Formlerly "Mosaic Communications Corporation") A
        company set up in April 1994 by {Dr. James H. Clark} and {Marc
        Andreessen} <marca@netcom.com> (creator of the {NCSA} {Mosaic}
        program) to market their version of {Mosaic}, known as
        {Netscape} or {Mozilla}.

        {Home (http://www.netscape.com/)}.

        Address: 501 East Middlefield Road, Mountain View, CA 94043,
        USA.

        Telephone: +1 (415) 254 1900.  Fax: +1 (415) 254 2601.

        (1995-03-10)

Netscape Navigator

        <networking, tool, product> /Mozilla/ (Often called just
        "Netscape") A {World-Wide Web} {browser} from {Netscape
        Communications Corporation}.  The first {beta-test} version
        was released free to the {Internet} on 13 October 1994.
        Netscape evolved from {NCSA} {Mosaic} (with which it shares at
        least one author) and runs on the {X Window System} under
        various versions of {Unix}, on {Microsoft Windows} and on the
        {Apple Macintosh}.

        It features integrated support for sending {electronic mail}
        and reading {Usenet} news, as well as {RSA encryption} to
        allow secure communications for commercial applications such
        as exchanging credit card numbers with net retailers.  It
        provides multiple simultaneous interruptible text and image
        loading; native inline {JPEG} image display; display and
        interaction with documents as they load; multiple independent
        windows.  Netscape was designed with 14.4 kbps modem links in
        mind.

        You can download Netscape Navigator for evaluation, or for
        unlimited use in academic or not-for-profit environments.  You
        can also pay for it.

        Version: 1.0N.

        {(ftp://ftp.netscape.com/netscape/)}

        E-mail: <sales@netscape.com>.

        (1995-01-25)

netsplit

        {netburp}

netstat

        <networking> (Or "rstat") A {Unix} command to give statistics
        about the {network} including {socket} status, interfaces that
        have been auto-configured, memory statistics, {routing}
        tables.

        {Unix manual pages}: rstat(3), netstat(8).

        (1996-06-04)

netter

        1. Loosely, anyone with a {network address}.

        2. More specifically, a {Usenet} regular.  Most often found in
        the plural.  "If you post *that* in a technical group, you're
        going to be flamed by angry netters for the rest of time!"

NetWare

        {Novell NetWare}

NetWare Core Protocol

        <networking> (NCP) A {Novell} trademark for the {protocol}
        used to access {Novell NetWare} file and print service
        functions.  It uses an underlying {IPX} or {IP} {transport
        protocol}.

        (1995-11-11)

Netware Input/Output Subsystem

        <operating system, networking> (NIOS) The lowest {layer} in
        the {Novell NetWare} {client} architecture.  NIOS is the
        interface layer between the client operating system and the
        32-bit client services provided by NetWare.

        {(http://developer.novell.com/research/appnotes/1996/november/01/04.htm
)}.

        (1999-04-24)

NetWare Link State Protocol

        <networking, protocol> (NLSP) A companion {protocol} to {IPX}
        for exchange of {routing} information in a {Novell}
        {network}.  NLSP supersedes Novell's {RIP}.

        (1997-03-04)

network

        <networking> Hardware and software data communication systems.

        The {OSI} seven layer model attempts to provide a way of
        partitioning any computer network into independent modules
        from the lowest (physical) layer to the highest (application)
        layer.  Many different specifications exist at each of these
        layers.

        Networks are often also classified according to their
        geographical extent: {local area network} (LAN), {metropolitan
        area network} (MAN), {wide area network} (WAN) and also
        according to the {protocol}s used.

        See {BITNET}, {Ethernet}, {Internet}, {Novell}, {PSTN},
        {network, the}.

        [Tanenbaum, A., "Computer Networks; 2nd ed.", Prentice Hall,
        Englewood Cliffs, NJ, 1989.]

        (1995-03-10)

network address

        <networking> 1. The network portion of an {IP address}.  For a
        {class A} network, the network address is the first {byte} of
        the IP address.  For a {class B network}, the network address
        is the first two bytes of the IP address.  For a {class C
        network}, the network address is the first three bytes of the
        IP address.  In each case, the remainder is the {host
        address}.  In the {Internet}, assigned network addresses are
        globally unique.

        See also {subnet address}, {Internet Registry}.

        2. (Or "net address") An {electronic mail} address on {the
        network}.  In the 1980s this might have been a {bang path} but
        now (1997) it is nearly always a {domain address}.  Such an
        address is essential if one wants to be to be taken seriously
        by {hackers}; in particular, persons or organisations that
        claim to understand, work with, sell to, or recruit from among
        hackers but *don't* display net addresses are quietly presumed
        to be clueless poseurs and mentally {flush}ed.

        Hackers often put their net addresses on their business cards
        and wear them prominently in contexts where they expect to
        meet other hackers face-to-face (e.g. {science-fiction
        fandom}).  This is mostly functional, but is also a signal
        that one identifies with hackerdom (like lodge pins among
        Masons or tie-dyed T-shirts among Grateful Dead fans).  Net
        addresses are often used in e-mail text as a more concise
        substitute for personal names; indeed, hackers may come to
        know each other quite well by network names without ever
        learning each others' real monikers.

        See also {sitename}, {domainist}.

        (1997-05-10)

Network Addressable Unit

        <networking> (NAU) The {SNA} term for an {addressable entity}.
        Examples include {PU}s, {LU}s, and {SSCP}s.

        (1997-05-10)

Network Address Translation

        <networking> (NAT, or Network Address Translator, Virtual LAN)
        A hardware device currently being developed and used to extend
        the {Internet address}es already in use.  NAT has been
        suggested as an alternative to adopting {IPv6} (IPng).  It
        allows duplicate IP addresses to be used within a corporation
        and unique addresses outside.

        ["NATs are next naughty Internet issue", Christine
        Hudgins-Bonafield <cbonafield@nwc.com>, in "Network
        Computing", March 1, 1995].

        (1995-04-01)

Network Address Translator

        {Network Address Translation}

network byte order

        <networking> The order in which the {bytes} of a multi-byte
        number are transmitted on a network - most significant byte
        first (as in "{big-endian}" storage).  This may or may not
        match the order in which numbers are normally stored in memory
        for a particular processor.

        {(http://www.sun.com/realitycheck/headsup980803.html)}.
        {(http://www.hp.com/unixwork/whatsnew/fyi/bissue/aug98/article3.htm)}.

        (1998-11-15)

network card

        {network interface controller}

network closet

        <networking> The place where {network} {hardware} (other than
        cabling) is installed.  The space should be used primarily for
        storage, be dry, and have electricity available.  Since
        network equipment rarely needs attention once installed and
        tested, the network closet can have limited accessibility.

        (1995-05-05)

Network Computing Devices

        <company> (NCD) Producer of {X terminals}, {PC-Xware} and
        {Z-Mail}.

        {Home (http://www.ncd.com/)}.

        (1998-10-07)

network database

        <database> A kind of {database management system} in which
        each record type can have multiple owners, e.g. orders are
        owned by both customers and products.  This contrasts with a
        {hierarchical database} (one owner) or {relational database}
        (no explicit owner).

        (1998-10-07)

Network Definition Language

        (NDL) The language used to program the DCP (Data
        Communications Processor) on {Burroughs Large System}.

        Version: NDL II.

        (1994-12-12)

Network Device Interface Specification

        (NDIS) A programming interface for different {protocol}s
        sharing the same network hardware.  The NDIS 2.0 specification
        is 5000 lines and seems to be written by {Microsoft} and
        {3Com}.

        {cdrom.com NDIS archive
        (ftp://ftp.cdrom.com/pub/os2/network/ndis/)}.

        Winter 1991 issue of "3TECH, The 3COM Technical Journal".

        {NDIS 3.0 specification (ftp://ftp.microsoft.com
        misc/ndis.doc)} ({MS Word} file).

        (1997-08-08)

Network extensible Window System

        (NeWS) An elegant {PostScript}-based windowing environment,
        invented by James Gosling, the author of {GOSMACS}.

        NeWS would almost certainly have won the {standard}s war with
        the {X Window System} if it hadn't been {proprietary} to {Sun
        Microsystems}.  There is a lesson here that too many software
        vendors haven't yet heeded.  Communication is based on
        {PostScript} and server functions can be extended.

        See also {HyperNeWS}, {OpenWindows}.

        (1994-12-12)

Network File System

        <networking, operating system> (NFS) A {protocol} developed by
        {Sun Microsystems}, and defined in {RFC 1094}, which allows a
        computer to access files over a network as if they were on its
        local disks.  This {protocol} has been incorporated in
        products by more than two hundred companies, and is now a {de
        facto} standard.  NFS is implemented using a {connectionless
        protocol} ({UDP}) in order to make it {stateless}.

        See {Nightmare File System}, {WebNFS}.

        (1994-12-12)

Network Filing System

        <spelling> Misnomer for {Network File System}.

Network Information Center

        (NIC) A body that provides information, assistance and
        services to {network} users.  These will typically include
        telephone and {electronic mail} "help desk" type services for
        users and network information services such as {hostname}s and
        addresses which are accessed automatically by computers using
        some {client-server} protocol (usually Sun's {NIS}).

        See also {Network Operations Center}.

        (1994-12-13)

Network Information Service

        <networking, protocol> (NIS) {Sun Microsystems}' Yellow Pages
        (yp) {client-server} {protocol} for distributing system
        configuration data such as user and host names between
        computers on a network.

        Sun licenses the technology to virtually all other {Unix}
        vendors.

        The name "Yellow Pages" is a registered trademark in the
        United Kingdom of British Telecommunications plc for their
        (paper) commercial telephone directory.  Sun changed the name
        of their system to NIS, though all the commands and functions
        still start with "yp", e.g. {ypcat}, {ypmatch}, {ypwhich}.

        {Unix manual pages}: yp(3), ypclnt(3), ypcat(1), ypmatch(1).

        (1995-04-08)

Network Information System

        <spelling> A mis-expansion of {NIS}.

        (1995-04-08)

networking

        {network}

network interface card

        {network interface controller}

network interface controller

        <hardware, networking> (NIC or "network interface card") An
        adapter circuit board installed in a computer to provide a
        physical connection to a network.

        [Examples?  Attributes?]

        (1996-03-04)

network layer

        <networking> (communications subnet layer) The third lowest
        layer in the {OSI} seven layer model.  The network layer
        determines routing of {packets} of data from sender to
        receiver via the {data link layer} and is used by the
        {transport layer}.  The most common network layer {protocol}
        is {IP}.

        (1994-12-13)

network management

        <networking> The process of controlling a {network} so as to
        maximise its efficiency and productivity.  {ISO}'s model
        divides network management into five categories: {fault
        management}, {accounting management}, {configuration
        management}, {security management} and {performance
        management}.

        Fault management is the process of identifying and locating
        faults in the network.  This could include discovering the
        existence of the problem, identifying the source, and possibly
        repairing (or at least isolating the rest of the network from)
        the problem.

        Configuration management is the process of identifying,
        tracking and modifying the setup of devices on the network.
        This category is extremely important for devices that come
        with numerous custom settings (e.g. {router}s and {file
        server}s).

        Security management is the process of controlling (granting,
        limiting, restricting or denying) access to the network and
        resources thereon.  This could include setting up and managing
        {access list}s in {router}s (creating "{firewall}s" to keep
        intruders out), creating and maintaining password access to
        critical network resources, identifying the points of entry
        used by intruders and closing them.

        Performance Management is the process of measuring the
        performance of various network components.  This also includes
        taking measures to optimise the network for maximum system
        performance (periodically measuring of the use of network
        resources).

        {Usenet} newsgroup: {news:comp.dcom.net-management}.

        ["Network Management: A Practical Perspective", Allan Leinwand
        and Karen Fang].

        (1994-11-18)

network meltdown

        (By analogy with catastrophic failure of a nuclear reactor) An
        event that causes saturation, or near saturation, on a
        network.  It usually results from illegal or misrouted packets
        and typically lasts only a short time.  It is the network
        equivalent of {thrash}ing.  This may be induced by a
        {Chernobyl packet}.

        See also {broadcast storm}, {kamikaze packet}.

        (1994-11-29)

Network News Transfer Protocol

        (NNTP) A {protocol} defined in {RFC} 977 for the distribution,
        inquiry, retrieval and posting of {Usenet} {news} articles
        over the {Internet}.  It is designed to be used between a
        {news reader} {client} such as {nn} or {GNUS} and a news
        {server}.  It is normally used on a connection to {TCP} {port}
        119 on the news {server}.  NNTP is a simple {ASCII} text
        protocol so even if you don't have a news reader program, you
        can just connect to the server using {telnet}:

                telnet news 119

        where news is the name of your server
        (e.g. news.doc.ic.ac.uk).  Typing HELP will give a list of
        other commands.

network number

        {network address}

network operating system

        An {operating system} which includes software to communicate
        with other computers via a {network}.  E.g. {Berkeley System
        Distribution} {Unix}, {Novell}, {LAntastic}, {MS LAN Manager}.

        [Is there a specific OS called "Network Operating System"?]

        (1995-01-16)

Network Operations Center

        (NOC) A location from which the operation of a {network} or
        {internet} is monitored.  Additionally, this center usually
        serves as a clearinghouse for connectivity problems and
        efforts to resolve those problems.

        See also {Network Information Center}.

        (1994-12-01)

network redirector

        <networking> An {operating system} {driver} that sends data to
        and receives data from a remote device.  A network redirector
        often provides mechanisms to locate, open, read, write, and
        delete files and submit print jobs.

        It also makes available application services such as {named
        pipes} and {mailslots}.  When an application needs to send or
        receive data from a remote device, it sends a call to the
        redirector.  The redirector provides the functionality of the
        {Application layer} and {Presentation layer} of the {OSI}
        model.

        In {Microsoft Networking}, the network redirectors are
        implemented as {installable file systems} (IFS).

        (1999-08-08)

network segment

        <networking> A part of an {Ethernet} or other network, on
        which all message traffic is common to all nodes, i.e. it is
        broadcast from one node on the segment and received by all
        others.  This is normally because the segment is a single
        continuous conductor, though it may include {repeaters}(?).

        Since all nodes share the physical medium, {collision
        detection} or some other {protocol} is required to determine
        whether a message was transmitted without interference from
        other nodes.  The recieving node inspects the destination
        address of a {packet} to tell if it was (one of) the intended
        recipient(s).

        Communication between nodes on different segments is via one
        or more {routers}.

        (1996-10-16)

Network Solutions, Inc.

        <company> (NSI) One of the three companies that provide and
        coordinate {InterNIC} services for the {NSFNet}.  NSI is
        responsible for registration.  NSI has been bought by, and is
        now a wholly-owned subsidiary of, {Science Applications
        International Corporation} (SAIC).

        (1995-11-09)

Network Termination

        (NT, NT1) A device connecting the customer's data or telephone
        equipment to the local {ISDN} exchange carrier's line.  The NT
        device provides a connection for {terminal equipment} (TE) and
        {terminal adaptor} (TA) equipment to the {local loop}.

        (1994-11-30)

network, the

        1. <jargon, networking> (Or "the net") The union of all the
        major noncommercial, academic and hacker-oriented networks,
        such as {Internet}, the old {ARPANET}, {NSFnet}, {BITNET}, and
        the virtual {UUCP} and {Usenet} "networks", plus the corporate
        in-house networks and commercial {time-sharing} services (such
        as {CompuServe}) that gateway to them.

        A site was generally considered "on the network" if it could
        be reached by {electronic mail} through some combination of
        Internet-style (@-sign) and UUCP ({bang-path}) addresses.
        Since the explosion of the Internet in the mid 1990s, the term
        is now synonymous with the Internet.

        See {network address}.

        2. <body> A fictional conspiracy of libertarian
        hacker-subversives and anti-authoritarian monkeywrenchers
        described in Robert Anton Wilson's novel "Schrdinger's Cat",
        to which many {hackers} have subsequently decided they belong
        (this is an example of {ha ha only serious}).

        (1999-01-26)

Network Time Protocol

        (NTP) A {protocol} built on top of {TCP/IP} that assures
        accurate local timekeeping with reference to radio, atomic or
        other clocks located on the {Internet}.  This protocol is
        capable of synchronizing distributed clocks within
        milliseconds over long time periods.  It is defined in {STD}
        12, {RFC 1119}.

network transparency

        <networking> A feature of an {operating system} or other
        service which lets the user access a remote resource through a
        {network} without having to know if the resource is remote or
        local.

        For example {NFS} allow users to access remote files as if
        they were local files.

        (1996-12-21)

NetX

        <company> A LukeCo Company that designs {web pages} and web
        software.  Not to be confused with {Net:X}.

        {Home (http://members.aol.com/netx11/index.html)}.

        (1996-12-15)

Net:X

        <company> A Canadian company.  Not to be confused with {NetX}.

        {Home (http://www.netx.ca/)}.

        [Summary?]

        (1998-06-25)

neural nets

        {artificial neural network}

neural network

        {artificial neural network}

neuron

        {artificial neural network}

Neutral Interconnect

        Network infrastructure where network service providers can
        freely exchange traffic without policy restrictions.  Examples
        are the GIX (Global Internet Exchange) at MAE-East (A
        Metropolitan Area Ethernet around Washington), and the Ebone
        (European Backbone).  There is currently (November 1993) no UK
        Neutral Interconnect.

neutrosophic

        {Neutrosophy}

neutrosophic logic

        <logic> (Or "Smarandache logic") A generalisation of {fuzzy
        logic} based on {Neutrosophy}.  A proposition can be T true, I
        indeterminate, and F false, with no restriction on T, I, F, or
        their sum N=T+I+F.  Neutrosophic logic thus generalises:

        - {intuitionistic logic}, which supports incomplete theories
        (for 0<n<100 and i=0, 0<=t,i,f<=100);

        - {fuzzy logic} (for n=100 and i=0, and 0<=t,i,f<=100);

        - {Boolean logic} (for n=100 and i=0, with t,f either 0 or
        100);

        - {multi-valued logic} (for 0<=t,i,f<=100);

        - {paraconsistent logic} (for n>100 and i=0, with both
        t,f<100);

        - {dialetheism}, which says that some contradictions are true
        (for t=f=100 and i=0; some {paradoxes} can be denoted this
        way).

        Compared with all other logics, neutrosophic logic introduces
        a percentage of "indeterminacy" - due to unexpected parameters
        hidden in some propositions.  It also allows each component
        t,i,f to "boil over" 100 or "freeze" under 0.  For example, in
        some {tautologies} t>100, called "overtrue".

        {Home (http://www.gallup.unm.edu/~smarandache/NeutLog.txt)}.

        ["Neutrosophy / Neutrosophic probability, set, and logic",
        F. Smarandache, American Research Press, 1998].

        (1999-10-04)

neutrosophic probability

        <logic> An extended form of probability based on
        {Neutrosophy}, in which a statement is held to be T% true, I%
        indeterminate, and F% false.

        {Home (http://www.gallup.unm.edu/~smarandache/NeutProb.txt)}.

        ["Neutrosophy / Neutrosophic Probability, Set, and Logic",
        Florentin Smarandache, American Research Press, 1998].

        (1999-10-04)

neutrosophic set

        <logic> A generalisation of the {intuitionistic set},
        classical set, {fuzzy set}, {paraconsistent set}, {dialetheist
        set}, {paradoxist set}, {tautological set} based on
        {Neutrosophy}.  An element x(T,I,F) belongs to the set M in
        the following way: it is T% true in the set, I% indeterminate
        in the set, and F% false, with no restriction on T, I, F, nor
        on their sum N=T+I+F.

        The neutrosophic set generalises:

        - the {intuitionistic set}, which supports incomplete set
        theories (for 0<N<100 and I=0, 0<=T,I,F<=100);

        - the {fuzzy set} (for N=100 and I=0, and 0<=T,I,F<=100);

        - the classical set (for N=100 and I=0, with T,F either 0 or
        100);

        - the {paraconsistent set} (for N>100 and I=0, with both
        T,F<100);

        - the {dialetheist set}, which says that the intersection of
        some disjoint sets is not empty (for T=F=100 and I=0; some
        paradoxist sets can be denoted this way).

        {Home (http://www.gallup.unm.edu/~smarandache/NeutSet.txt)}.

        ["Neutrosophy / Neutrosophic Probability, Set, and Logic",
        Florentin Smarandache, American Research Press, 1998].

        (1999-10-04)

neutrosophic statistics

        <statistics> Analysis of events described by {neutrosophic
        probability}.

        ["Neutrosophy / Neutrosophic Probability, Set, and Logic",
        Florentin Smarandache, American Research Press, 1998].

        (1999-07-05)

Neutrosophy

        <philosophy> (From Latin "neuter" - neutral, Greek "sophia" -
        skill/wisdom) A branch of philosophy, introduced by Florentin
        Smarandache in 1980, which studies the origin, nature, and
        scope of neutralities, as well as their interactions with
        different ideational spectra.

        Neutrosophy considers a proposition, theory, event, concept,
        or entity, "A" in relation to its opposite, "Anti-A" and that
        which is not A, "Non-A", and that which is neither "A" nor
        "Anti-A", denoted by "Neut-A".  Neutrosophy is the basis of
        {neutrosophic logic}, {neutrosophic probability},
        {neutrosophic set}, and {neutrosophic statistics}.

        {Home (http://www.gallup.unm.edu/~smarandache/NeutroSo.txt)}.

        ["Neutrosophy / Neutrosophic Probability, Set, and Logic",
        Florentin Smarandache, American Research Press, 1998].

        (1999-07-29)

Never Offline

        <software> (NOL) /noh-el/ A software service provided by
        {America's Multimedia Online} that allows {Internet} users to
        be constantly connected to the Internet.

        {Home (http://neveroffline.com/)}.

        (1999-09-21)

newbie

        <jargon> /n[y]oo'bee/ (Originally from British public-school
        and military slang variant of "new boy") An inexperienced user
        of {Usenet} or other system.

        This term surfaced in the {newsgroup} {news:talk.bizarre} but
        is now in wide use.  Criteria for being considered a newbie
        vary wildly; a person can be called a newbie in one newsgroup
        while remaining a respected regular in another.  The label
        "newbie" is sometimes applied as a serious insult to a person
        who has been around {Usenet} for a long time but who carefully
        hides all evidence of having a clue.

        See {BIFF}.

        (1998-02-18)

New Flavors

        An {object-oriented} {Lisp} from {Symbolics}, the successor to
        {Flavors}, it led to {CLOS}.

        ["Reference Guide to Symbolics-Lisp", Symbolics, March 1985].

        (1994-10-10)

newgroup wars

        /n[y]oo'groop worz/ [{Usenet}] The salvos of dueling
        "newgroup" and "rmgroup" messages sometimes exchanged by
        persons on opposite sides of a dispute over whether a
        {newsgroup} should be created net-wide, or (even more
        frequently) whether an obsolete one should be removed.  These
        usually settle out within a week or two as it becomes clear
        whether the group has a natural constituency (usually, it
        doesn't).  At times, especially in the completely anarchic alt
        hierarchy, the names of newsgroups themselves become a form of
        comment or humour; e.g. the spinoff of
        alt.swedish.chef.bork.bork.bork from alt.tv.muppets in early
        1990, or any number of specialised abuse groups named after
        particularly notorious {flamer}s, e.g. alt.weemba.

New Jersey

        [Primarily Stanford/Silicon Valley] Brain-damaged or of poor
        design.  This refers to the allegedly wretched quality of such
        software as {C}, {C++} and {Unix} (which originated at {Bell
        Labs} in Murray Hill, New Jersey).  "This compiler bites the
        bag, but what can you expect from a compiler designed in New
        Jersey?"  Compare {Berkeley Quality Software}.  See also {Unix
        conspiracy}.

newline

        <character, jargon> /n[y]oo'li:n/ {Line feed} or other
        character sequence used to terminate a line of text.

        {Unix} uses {line feed} as its text line terminator - a
        {Bell-Labs}-ism rather than a {Berkeley}ism.  Interestingly
        (and unusually for Unix jargon), it is said to have originally
        been an {IBM} usage.  Though the term "newline" appears in
        {ASCII} {standards}, it never caught on in the general
        computing world before {Unix}.  The encoding of line feed as
        "\n" in {C} and {Unix} strings comes from this name.

        The term has been used more generally for any {end of line}
        character, character sequence (e.g. {crlf}), or operation
        (like {Pascal}'s writeln procedure or {Lisp 1.5}'s {terpri})
        required to terminate a text record or separate lines.

        (1997-07-14)

NEWP

        {NEW Programming language}

NEW Programming language

        <language> (NEWP) A language which replaced {ESPOL} on the
        {Burroughs Large System}.

        (1994-12-13)

NeWS

        /nee'wis/, /n[y]oo'is/ or /n[y]ooz/ {Network extensible Window
        System}.

        Many hackers insist on the two-syllable pronunciations above
        as a way of distinguishing NeWS from {news} (the {netnews}
        software).

news

        See {netnews}.

NewsClip

        A very high level language designed for writing {netnews
        filter}s.  It translates into {C}.  It includes support for
        various {newsreader}s.  Version 1.01 includes a translator
        from NewsClip to {C}, examples and documentation.

        NewsClip was written by {Looking Glass Software} Ltd. and is
        distributed and used by {ClariNet Communications} Corporation  It is
        only supported for ClariNet customers.  Output of the filters
        may not be sold and donation for use of this program is hinted
        at.

        E-mail: <newsclip@clarinet.com>.

        (1992-10-25)

newsfroup

        <messaging, humour> A silly synonym for {Usenet} {newsgroup},
        originally a typo but now in regular use on {Usenet}'s
        {news:talk.bizarre} and other lunatic-fringe groups.

        Compare {hing}, {grilf}, and {filk}.

        (1994-12-13)

newsgroup

        <messaging> One of {Usenet}'s huge collection of topic groups
        or {fora}.  {Usenet} groups can be "unmoderated" (anyone can
        post) or "moderated" (submissions are automatically directed
        to a {moderator}, who edits or filters and then posts the
        results).  Some newsgroups have parallel {mailing list}s for
        {Internet} people with no netnews access, with postings to the
        group automatically propagated to the list and vice versa.
        Some moderated groups (especially those which are actually
        gatewayed {Internet} {mailing lists}) are distributed as
        "{digest}s", with groups of postings periodically collected
        into a single large posting with an index.

        Among the best-known are comp.lang.c (the {C}-language forum),
        comp.arch (on computer architectures), comp.Unix.wizards (for
        {Unix wizard}s), rec.arts.sf-lovers (for science-fiction
        fans), and talk.politics.misc (miscellaneous political
        discussions and {flamage}).

        Barry Shein <bzs@world.std.com> is alleged to have said,
        "Remember the good old days when you could read all the group
        names in one day?"  This gives a good idea of the growth and
        size of {Usenet}.

        See also {netiquette}.

        (1994-12-13)

newsletter

        <publication> A periodically published work containing news
        and announcements on some subject, typically with a small
        circulation.  Newsletters are a common application for {DTP}
        and may be distributed by {electronic mail}.

        (1996-12-10)

Newspeak

        A language inspired by {Scratchpad}.

        [J.K. Foderaro.  "The Design of a Language for Algebraic
        Computation", Ph.D. Thesis, UC Berkeley, 1983].

Newsqueak

        A {concurrent} {applicative} language with {synchronous}
        channels.

        ["Newsqueak: A Language for Communicating with Mice", R. Pike
        CSTR143, Bell Labs (March 1989)].

        ["The Implementation of Newsqueak", Rob Pike, Soft Prac & Exp
        20(7):649-659 (July 1990)].

.newsrc

        <messaging> (news run commands) The configuration file for the
        {Unix} {rn} {news reader}.

        See also {rc}.

        (1996-04-09)

news reader

        <messaging> A {browser} program which enables a user to read
        articles posted to {Usenet}.  Articles may be stored in a
        local (or {NFS}-mounted) {spool} directory, or retrieved via
        {NNTP}.

        Examples are {rn}, {GNUS}, and {nn}.

        (1996-04-09)

New Storage System

        <storage> (NSS) A major {Multics} implementation project
        during the 1970s.  The initial Multics {file system} design
        had evolved from the one-huge-disk world of {CTSS}.  When
        multiple disk units were used they were just assigned
        increasing ranges of disk addresses, so a {segment} could have
        {pages} scattered over all disks on the system.  This provided
        good {I/O} {parallelism} but made {crash recovery} expensive.
        NSS redesigned the lower levels of the file system,
        introducing the concepts of {logical volume} and {physical
        volume} and a mapping from a Multics directory branch to a
        {VTOC} entry for each file.  The new system had much better
        recovery performance in exchange for a small space and
        performance cost.

        (1997-01-29)

new talk

        {ntalk}

New Testament

        [C programmers] The second edition of {K&R}'s "The C
        Programming Language" (Prentice-Hall, 1988; ISBN
        0-13-110362-8), describing {ANSI C}.

Newton

        1. (Named after Isaac Newton (1642-1727)).  Rapin et al, Swiss
        Federal Inst Tech, Lausanne 1981.  General purpose expression
        language, syntactically ALGOL-like, with object-oriented and
        functional features and a rich set of primitives for
        concurrency.  Used for undergraduate teaching at Lausanne
        (EPFL).

        Versions: Newton 2.6 for VAX/VMS and Newton 1.2 for
        DEC-Alpha/{OSF}-1.

        E-mail: J. Hulaas <hulaas@lcodec1.epfl.ch>.
        {(ftp://ellc4.epfl.ch /pub/languages/Newton)}.

        ["Procedural Objects in Newton", Ch. Rapin, SIGPLAN Notices
        24(9) (Sep 1989)].

        ["The Newton Language", Ch. Rapin et al, SIGPLAN Notices
        16(8):31-40 (Aug 1981)].

        ["Programming in Newton", Wuetrich and Menu, EPFL 1982].

        2. {Apple Newton}.

Newton-Raphson

        A well-known {algorithm} for solving equations.  Given an
        equation,

                f x = 0

        and an initial approximation, x(0), a better approximation is
        given by:

                x(i+1) = x(i) - f(x(i)) / f'(x(i))

        where f'(x) is the first derivative of f, df/dx.

NewWave

        A graphical user interface and object-oriented environment
        from Hewlett-Packard, based on Windows and available on Unix
        workstations.

NewYacc

        A {parser generator} by Jack Callahan
        <callahan@mimsy.cs.umd.edu>.  Version 1.0.

        {(ftp://flubber.cs.umd.edu/src/)}

        [Dec 89 CACM, A brief overview of NewYacc].

        (1992-02-10)

New York State Educational Reasearch  ETwork

        (NYSERNET) A New York {Internet} access provider and regional
        network.  NYSERNet has been in the Internet business since
        about 1985 and have recently upgraded to a {T3} backbone (45
        megabits per second).  They work with {Sprint}, {NYNEX} and
        Rochester Telephone.

        NYSERNet, Inc., provides Internet Training provided through
        the NYSERNet Internet Training and Education Center (NITEC), a
        twenty-four station hands-on facility in Syracuse, NY.  The
        Information Services Group supplies tools for marketing via
        the {Internet} and NYSERNET also provide Technical Consulting
        Services.

        {Home (http://nysernet.org/)}

        E-mail: <info@nysernet.org>.

        (1995-02-01)

New York University

        (NYU) Established in 1831, New York University today includes
        thirteen schools, colleges and divisions located in New York
        City's borough of Manhattan, as well as research centers and
        programs in the surrounding suburbs and abroad.

        {(http://www.nyu.edu/)}

NEXOR

        <company> A technology company that specialises in providing
        electronic communication software products and services to a
        worldwide market.  It is also the home of {CUSI}.

        {Home (http://www.nexor.com/)}.

        (1997-11-10)

Nexpert Object

        An {expert system}.

NEXTSTEP

        <operating system> The original {multitasking} {operating
        system} that {NeXT} Software [were they called that then?]
        developed to run on its proprietary {NeXT} computers
        (informally known as "black boxes").  NEXTSTEP includes a
        specific {graphical user interface}, an interface builder,
        {object-oriented} application builder and several "kits" of
        prebuilt software {objects} such as the Indexing Kit for
        databases.  This software runs on top of NeXT's version of the
        {Mach} operating system on {NeXT}, {486}, {Pentium}, {HP-PA}
        and {Sun} {SPARC} computers.

        The last release of NEXTSTEP was 3.3 which NeXT then developed
        into "{OpenStep}".  After NeXT was bought by {Apple Computer,
        Inc.} OpenStep was merged[?] into "{Rhapsody}".

        {(http://turnpike.net/metro/bagingry/index.html)}

        (1997-10-15)

nf

        <networking> The {country code} for Norfolk Island.

        (1999-01-27)

NFA

        {Finite State Machine}

NFQL

        ["NFQL: The Natural Forms Query Language", D. Embley, Trans
        Database Sys 14(2):168-211 (June 1989)].

NFS

        {Network File System}

NFT

        Network File Transfer.  An INTERLINK command on CERNVM.

ng

        <networking> The {country code} for Nigeria.

        (1999-01-27)

NGL

        A dialect of {IGL}.

NHOH

        <chat> Never heard of him/her.  Often used in {initgame}.

        (1998-01-18)

ni

        <networking> The {country code} for Nicaragua.

        (1999-01-27)

NIAL

        Nested Interactive Array Language.

        A high-level {array}-oriented language from {Queen's
        University}, Canada, based on {Array Theory} as developed by
        Trenchard More Jr.

        {Q'NIAL} is an implementation in {C}.

        ["Programming Styles in NIAL", M.A.  Jenkins et al, IEEE
        Software 3(1):46-55 (Jan 1986)].

        (1995-01-25)

NIAL Systems Ltd.

        Distributors of {Q'NIAL}.

        Address: Ottawa Canada.

        Telephone: Canada (613) 234 4188.

        (1995-01-25)

NIAM

        {Natural Language Information Analysis Method} (or Nijssen IAM).

nibble

        <data> /nib'l/ (US "nybble", by analogy with "bite" -> "byte")
        Half a {byte}.  Since a byte is nearly always eight {bits}, a
        nibble is nearly always four bits (and can therefore be
        represented by one {hex} digit).

        Other size nibbles have existed, for example the {BBC
        Microcomputer} disk file system used eleven bit sector numbers
        which were described as one byte (eight bits) and a nibble
        (three bits).

        Compare {crumb}, {tayste}, {dynner}; see also {bit}, {nickle},
        {deckle}.

        The spelling "nybble" is uncommon in {Commonwealth Hackish} as
        British orthography suggests the pronunciation /ni:'bl/.

        (1997-12-03)

Nibble Mode DRAM

        <storage> A standard {DRAM} where four successive {bits} can
        be clocked out of the single data line by successive pulses on
        the CAS\ line while RAS\ is active.  A column address is only
        required for the first bit.

        This mode is now unfashionable but can be found on some older
        64 kilobit and 256 kilobit chips.

        (1997-12-03)

NIC

        1. <networking> {Network Information Center}.

        2. <hardware> {Network Interface Card}.

        (1996-02-13)

NIC.DDN.MIL

        <networking> {Defense Data Network}'s {Network Information
        Center}.

        (1996-02-13)

NICE

        The {Nonprofit International Consortium for Eiffel}.

nick

        [IRC] nickname.  On {IRC}, every user must pick a nick, which
        is sometimes the user's real name or login name, but is often
        more fanciful.  Compare {handle}.

nickle

        /ni'kl/ ["nickel", common name for the US 5-cent coin] A
        {nibble} + 1; 5 bits.  Reported among developers for Mattel's
        {GI 1600} (the {Intellivision} games processor), a chip with
        16 bit-wide {RAM} but 10 bit-wide {ROM}.  See also {deckle}.

NICOL I

        1. Small subset of PL/I by (Massachusetts) Computer Assoc,
        ca. 1965.  Version: NICOL II (1967).  Sammet 1969, p.542.

        2. ICL, 1968. [same as 1?]

Nightmare File System

        Pejorative hackerism for {Sun}'s {Network File System} (NFS).
        In any nontrivial network of Suns where there is a lot of NFS
        {cross-mount}ing, when one Sun goes down, the others often
        freeze up.  Some machine tries to access the down one, and
        (getting no response) repeats indefinitely.  This causes it to
        appear dead to some messages (what is actually happening is
        that it is locked up in what should have been a brief
        excursion to a higher {spl} level).  Then another machine
        tries to reach either the down machine or the pseudo-down
        machine, and itself becomes pseudo-down.  The first machine to
        discover the down one is now trying both to access the down
        one and to respond to the pseudo-down one, so it is even
        harder to reach.  This situation snowballs very quickly, and
        soon the entire network of machines is frozen - worst of
        all, the user can't even abort the file access that started
        the problem!

        Many of NFS's problems are excused by partisans as being an
        inevitable result of its {stateless}ness, which is held to be
        a great feature (critics, of course, call it a great
        {misfeature}).  {ITS} partisans are apt to cite this as proof
        of {Unix}'s alleged bogosity; ITS had a working NFS-like
        shared file system with none of these problems in the early
        1970s.  See also {broadcast storm}.

night mode

        See {phase} (of people).

NIH

        The United States National Institutes of Health.

NIHCL

        A {class library} for {C++} from the US National Institutes of
        Health (NIH).

NII

        {National Information Infrastructure}

NIKL

        Frame language.

        ["Recent Developments in NIKL", T.R. Kaczmarek et al, Proc
        AAAI-86, 1986].

Niklaus Wirth

        <person> The designer of the {Modula-2} and {Modula-3}
        programming languages.

        (1995-03-25)

NIL

        /nil/ 1. New Implementation of Lisp.  A language intended to
        be the successor of {MacLisp}.  A large {Lisp}, implemented
        mostly in {VAX} {assembly language}.  A forerunner of {Common
        LISP}.

        ["NIL: A Perspective", Jon L. White, MACSYMA Users' Conf Proc,
        1979].

        2. Network Implementation Language.  Strom & Yemini, TJWRC,
        IBM.  Implementation of complex networking protocols in a
        modular fashion.

        ["NIL: An Integrated Language and System for Distributed
        Programming", R. Strom et al, SIGPLAN Notices 18(6):73-82
        (June 1983)].

        3. Empty list or False.  In {Lisp}, the empty list (or "nil
        list") is used to represent the {Boolean} value False.  This
        is possible because {Lisp} is not typed.  True is represented
        by the special {atom} "t".

        4. Spoken in reply to a question, particularly one asked using
        the "-P" convention it means "No".  Most hackers assume this
        derives simply from LISP, but NIL meaning "no" was
        well-established among radio hams decades before LISP existed.
        The historical connection between early hackerdom and the ham
        radio world was strong enough that this may have been an
        influence.

niladic

        <programming, jargon> A contrivance (possibly of {Microsoft}
        origin) to describe a {function} taking no {arguments}.  An
        extension of the more common series monadic, dyadic, etc.

        (1998-09-21)

Ninety-Ninety Rule

        <humour> "The first 90% of the code accounts for the first 90%
        of the development time.  The remaining 10% of the code
        accounts for the other 90% of the development time".

        An aphorism attributed to Tom Cargill of Bell Labs, and
        popularised by Jon Bentley's September 1985 "Bumper-Sticker
        Computer Science" column in "Communications of the ACM".  It
        was there called the "Rule of Credibility", a name which seems
        not to have stuck.

        (1995-07-14)

NIOS

        {Netware Input/Output Subsystem}

nipple

        {Trackpoint}

NIS

        {Network Information Service}

NISO

        National Information Standards Organisation (USA).  NISO
        Standards cover many aspects of library science, publishing,
        and information services, and address the application of both
        traditional and new technologies to information services.

NISS

        {National Information Services and Systems}

NIST

        {National Institute of Standards and Technology}

NJCL

        Network Job Control Language.

        ["NJCL - A Network Job Control Language", J. du Masle et al,
        IFIP Congress 1974].

        (1995-02-03)

nl

        <networking> The {country code} for the Netherlands (Holland).

        (1999-01-27)

NLM

        {Netware Loadable Module}

NLP

        1. <application> {Natural Language Processing}.

        2. <networking> {Network Layer Protocol}.

NLS

        {Native Language System}

NLSP

        {NetWare Link State Protocol}

NLX

        <hardware, standard> A low-profile, low {TCO} {motherboard}
        design created jointly by {Intel Corp.}, {IBM}, {DEC} and
        other PC vendors.  In contrast to the traditional single-board
        design, NLX uses a {riser} card to carry {PCI}, {ISA} and
        {AGP} {bus} data (despite {Intel}'s stated intent to rid PC
        motherboards of the {ISA} {bus} by 2000).

        Version 1.2 of NLX is the final specification, and was frozen
        in March 1997.  Minor modifications appear in the form of
        "Engineering Change Requests".

        {Home (http://www.teleport.com/~nlx/)}.

        {Intel (http://www.intel.com/design/motherboard/nlx.htm)}.

        ["NLX Motherboard Specification", various, pub. Intel Corp. 1997]

        (1998-09-21)

NMI

        {Non-Maskable Interrupt}

nML

        <language> A specification language for {instruction set}s,
        based on {attribute grammar}s, for {back-end generator}s.

        ["The nML Machine Description Formalism", M. Freericks
        <mfx@cs.tu-berlin.de> TR TU Berlin, FB20, Bericht 1991/15].

        (1995-11-28)

NN

        {neural network}

nn

        <tool, messaging> A {terminal based} program for reading
        {Usenet} {news} by Kim F. Storm <storm@texas.dk>, Texas
        Instruments A/S, Denmark.

        nn lets you decide which of the many {news groups} you are
        interested in, and unsubscribe to those which don't interest
        you.  nn lets you select articles to read from a menu in each
        of the groups you subscribe.  nn sorts and presents new
        articles very quickly because it uses its own local database
        to maintain all the necessary information (this database is
        built and maintained by the nnmaster program).

        The {NNTP} support was designed and implemented by Ren'e
        Seindal, Institute of Datalogy, University of Copenhagen,
        Denmark.

        E-mail: <nn-bugs@dkuug.dk> (bugs, fixes, suggestions, etc.)

        {Usenet} newgroup: {news:news.software.nn}.

        (1995-12-04)

NNTP

        <messaging> {Network News Transfer Protocol}.

        (1996-02-26)

no

        <networking> The {country code} for Norway.

        (1999-01-27)

NOC

        {Network Operations Center}

NODAL

        Interpreted language implemented on Norsk Data's NORD-10
        computers.  Used by CERN and DESY high energy physics labs to
        control their accelerator hardware, PADAC and SEDAC.  Included
        trackball input, graphics.

Nodal Switching System

        (NSS) Main {routing} nodes in the {NSFnet} {backbone}.

noddy

        /nod'ee/ [UK: from the children's books] 1. Small and
        un-useful, but demonstrating a point.  Noddy programs are
        often written by people learning a new language or system.
        The archetypal noddy program is {hello, world}.  Noddy code
        may be used to demonstrate a feature or bug of a compiler.
        May be used of real hardware or software to imply that it
        isn't worth using.  "This editor's a bit noddy."

        2. A program that is more or less instant to produce.  In this
        use, the term does not necessarily connote uselessness, but
        describes a {hack} sufficiently trivial that it can be written
        and debugged while carrying on (and during the space of) a
        normal conversation.  "I'll just throw together a noddy {awk}
        script to dump all the first fields."  In North America this
        might be called a {mickey mouse program}.  See {toy program}.

        3. A simple (hence the name) language to handle text and
        interaction on the {Memotech} home computer.  Has died with
        the machine.

node

        1. A point or vertex in a {graph}.

        2. An addressable device attached to a computer {network}.
        More often called a "host".

        3. A {hypertext} document.

NOMAD

        <language, database> A {database} language.

        Version: NOMAD2 from {Must Software} International.

        ["NOMAD Reference Manual", Form 1004, National CSS Inc, Dec
        1976].

        (1995-04-01)

NOMEX underwear

        /noh'meks uhn'-der-weir/ [{Usenet}] Synonym {asbestos
        longjohns}, used mostly in auto-related {mailing lists} and
        newsgroups.  NOMEX underwear is an actual product available on
        the racing equipment market, used as a fire resistance measure
        and required in some racing series.

Nominal Semidestructor

        Soundalike slang for "{National Semiconductor}", found among
        other places in the {4.3BSD} networking sources.  During the
        late 1970s to mid-1980s this company marketed a series of
        {microprocessor}s including the {NS16000} and {NS32000} and
        several variants.  At one point early in the great
        {microprocessor} race, the specs on these chips made them look
        like serious competition for the rising {Intel 80x86} and
        {Motorola 680x0} series.  Unfortunately, the actual parts were
        notoriously flaky and never implemented the full {instruction
        set} promised in their literature, apparently because the
        company couldn't get any of the mask steppings to work as
        designed.  They eventually sank without trace, joining the
        {Zilog Z8000} and a few even more obscure also-rans in the
        graveyard of forgotten {microprocessor}s.

        Compare {HP-SUX}, {AIDX}, {buglix}, {Macintrash}, {Telerat},
        {Open DeathTrap}, {ScumOS}, {sun-stools}.

        (1994-12-23)

non-algorithmic procedure

        {heuristic}

nondeterminism

        <algorithm> A property of a computation which may have more
        than one result.

        One way to implement a nondeterministic {algorithm} is using
        {backtracking}, another is to explore (all) possible solutions
        in parallel.

        (1995-04-13)

nondeterministic

        Exhibiting {nondeterminism}.

nondeterministic automaton

        <theory> (Or "probabilistic automaton") An {automaton} in
        which there are several possible actions (outputs and next
        states) at each state of the computation such that the overall
        course of the computation is not completely determined by the
        program, the starting state, and the initial inputs.

        See also {nondeterministic Turing Machine}.

        (1996-05-07)

nondeterministic polynomial time

        <complexity> (NP) A set or property of computational {decision
        problem}s solvable by a {nondeterministic Turing Machine} in a
        number of steps that is a {polynomial} function of the size of
        the input.  The word "nondeterministic" suggests a method of
        generating potential solutions using some form of
        {nondeterminism} or "trial and error".  This may take
        {exponential time} as long as a potential solution can be
        verified in {polynomial time}.

        NP is obviously a superset of P ({polynomial time} problems
        solvable by a deterministic {Turing Machine} in {polynomial
        time}) since a deterministic algorithm can be considered as a
        degenerate form of nondeterministic algorithm.  The question
        then arises: is NP equal to P?  I.e. can every problem in NP
        actually be solved in polynomial time?  Everyone's first guess
        is "no", but no one has managed to prove this; and some very
        clever people think the answer is "yes".

        If a problem A is in NP and a polynomial time algorithm for A
        could also be used to solve problem B in polynomial time, then
        B is also in NP.

        See also {Co-NP}, {NP-complete}.

        [Examples?]

        (1995-04-10)

Nondeterministic Turing Machine

        <complexity> A normal (deterministic) {Turing Machine} that
        has a "guessing head" - a write-only head that writes a guess
        at a solution on the tape first, based on some arbitrary
        internal {algorithm}.  The regular {Turing Machine} then runs
        and returns "yes" or "no" to indicate whether the solution is
        correct.

        A {nondeterministic Turing Machine} can solve
        {nondeterministic polynomial time} computational {decision
        problems} in a number of steps that is a {polynomial} function
        of the size of the input

        (1995-04-27)

non-impact printer

        <printer> Any printer, such as a {laser printer}, {ink-jet
        printer}, {LED page printer}, that prints without striking the
        paper, unlike a {dot matrix printer} which hits the paper with
        small pins.  Non-impact printers are quieter than impact
        printers, and also faster due the lack of moving parts in the
        print head.

        (1995-11-20)

non-interlaced

        {interlace}

nonintrusive testing

        <testing> Testing that is transparent to the software under
        test, i.e., does not change its timing or processing
        characteristics.  Nonintrusive testing usually involves
        additional hardware that collects timing or processing
        information and processes that information on another
        platform.

nonlinear

        (Scientific computation) A property of a system whose output
        is not proportional to its input.  For example, a {transistor}
        has a region of input voltages for which its output voltage is
        found by multiplying the input voltage by the gain of the
        transistor.  Outside this region though, the transistor
        behaves non-linearly, meaning that it does not obey this
        simple equation.  The behaviour of a system containing
        non-linear components is thus harder to model and to predict.

Non-Maskable Interrupt

        (NMI) An IRQ 7 on the {PDP-11} or {680x0} or the NMI line on
        an 80x86.  In contrast with a {priority interrupt} (which
        might be ignored, although that is unlikely), an NMI is
        *never* ignored.

        (1994-12-13)

non-optimal solution

        (Or "sub-optimal solution") An astoundingly stupid way to do
        something.  This term is generally used in deadpan sarcasm, as
        its impact is greatest when the person speaking looks
        completely serious.

        See also {Bad Thing}.

        (1994-12-13)

Nonpareil

        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)].  The others
        were {Brilliant}, {Diamond}, {Pearl} and {Ruby}.

non parity

        {parity}

non-polynomial

        <complexity> The set or property of problems for which no
        {polynomial-time algorithm} is known.

        This includes problems for which the only known {algorithm}s
        require a number of steps which increases exponentially with
        the size of the problem, and those for which no {algorithm} at
        all is known.  Within these two there are problems which are
        "{provably difficult}" and "{provably unsolvable}".

        (1995-04-10)

Non Return to Zero Inverted

        <storage> (NRZI) A recording method used for 9-track {magnetic
        tapes} (200 and 800 BPI) where a zero is represented by a
        change in the signal and a one by no change.

        NRZI is also used extensively in {SDLC} communications.
        {VTAM} has a parameter NRZI=YES|NO.

        Compare {Phase Encoded}, {GCR}.

        (1999-01-11)

nontrivial

        Requiring real thought or significant computing power.  Often
        used as an understated way of saying that a problem is quite
        difficult or impractical, or even entirely unsolvable
        ("Proving P=NP is nontrivial").  The preferred emphatic form
        is "decidedly nontrivial".

        See {uninteresting}, {interesting}.

        (1995-02-21)

Non-Uniform Memory Access

        <architecture> (NUMA) A memory architecture, used in
        {multiprocessors}, where the access time depends on the memory
        location.  A processor can access its own local memory faster
        than non-local memory (memory which is local to another
        processor or shared between processors).

        (1995-11-12)

non-uniform quantising logarithmic compression

        The kind of {compression} often applied to a sound waveform.
        {Logarithmic compression} is a good match for the human ear's
        sensitivity but cannot handle zero amplitude (for which the
        logarithm is negative infinity).  There are two {standard}
        compression functions which give a smooth transition between
        the logarithmic function and a linear segment passing through
        the origin: {mu-law} (North America) and {A-law} ({ITU-T}).

        (1995-02-21)

Non-Uniform Rational B Spline

        <graphics, mathematics> (nurbs) A common term in Mechanical
        {CAD}.  The NURBS has excellent continuity characteristics
        which make it useful for creating accurate models in 3D
        geometry generation and computer modeling.

        [What is a nurbs?  an rbs?  a bs?  a s?]

        (1996-08-27)

non-volatile

        {non-volatile storage}

non-volatile memory

        {non-volatile storage}

Non-Volatile Random Access Memory

        <storage> (NVRAM) {Static random access memory} which is made
        into {non-volatile storage} either by having a battery
        permanently connected or by saving its contents to {EEPROM}
        before turning the power off and reloading it when power is
        restored.

        (1995-04-22)

non-volatile storage

        <storage> (persistent storage, memory) A term describing a
        storage device whose contents are preserved when its power is
        off.  Storage using magnetic media (e.g. {magnetic disks},
        {magnetic tape} or {bubble memory}) is normally non-volatile
        by nature whereas {semiconductor} memories ({static RAM} and
        especially {dynamic RAM}) are normally volatile but can be
        made into non-volatile storage by having a (rechargable)
        battery permanently connected.

        {Dynamic RAM} is particularly volatile since it looses its
        data, even if the power is still on, unless it is {refresh}ed.
        An acoustic {delay line} is a (very old) example of a volatile
        storage device.

        Other examples of non-volatile storage are {EEPROM}, {CD-ROM},
        {paper tape} and {punched cards}.

        (1997-06-05)

no-op

        /noh'op/ alt. NOP /nop/ [no operation] 1. A machine
        instruction that does nothing (sometimes used in
        assembler-level programming as filler for data or patch areas,
        or to overwrite code to be removed in binaries).  See also
        {JFCL}.

        2. A person who contributes nothing to a project, or has
        nothing going on upstairs, or both.  As in "He's a no-op."

        3. Any operation or sequence of operations with no effect,
        such as circling the block without finding a parking space, or
        putting money into a vending machine and having it fall
        immediately into the coin-return box, or asking someone for
        help and being told to go away.  "Oh, well, that was a no-op."
        Hot-and-sour soup that is insufficiently either is "no-op
        soup"; so is wonton soup if everybody else is having
        hot-and-sour.

        (1994-12-02)

NOR

        Not OR.

        The {Boolean} function which is true if none of its inputs are
        true and false otherwise, the {logical complement} of
        {inclusive OR}.  The binary (two-input) NOR function can be
        defined (written as an {infix} operator):

        A NOR B = NOT (A OR B) = (NOT A) AND (NOT B)

        Its {truth table} is:

                A | B | A NOR B
                --+---+---------
                F | F |    T
                F | T |    F
                T | F |    F
                T | T |    F

        NOR, like {NAND}, forms a complete set of {Boolean} functions on
        its own since it can be used to make NOT, AND, OR and any
        other Boolean function:

        NOT A = A NOR A

        A OR B = NOT (A NOR B)

        A AND B = (NOT A) NOR (NOT B)

        (1995-02-06)

NORC COMPILER

        Early system on NORC machine.  Listed in CACM 2(5):16 (May
        1959).

NorCroft

        (Contraction of Norman + Mycroft) A company producing {C}
        compilers, set up by Arthur Norman and Alan Mycroft.  Now
        "sort of" called Codemist.  The original Norcroft compiler was
        written by Alan and Arthur to provide a {platform} for
        teaching languages and compilers on the {Cambridge University}
        {mainframe}.  They then went on to develop versions for the
        {transputer}, {ARM} and others.

        [What is the relationship between NorCroft and Codemist?]

        (1994-10-25)

NORD PL

        Intermediate language for {Norsk Data} computers.  {Sintran
        III}, the {operating system} of the ND 10 (late 1970's), was
        written in NORD PL.

        ["NORD PL User's Guide", ND-60.047.03].

NORDUnet

        <networking, body> (Nordic Universities Network?) A
        collaboration between the national research networks in
        Denmark, Finland, Iceland, Norway and Sweden.  It provides
        international access for these countries.

        {Home (http://info.nordu.net/)}.

        (1998-07-05)

norm

        <mathematics> A real-valued function modelling the length of a
        {vector}.  The norm must be {homogeneous} and {symmetric} and
        fulfil the following condition: the shortest way to reach a
        point is to go straight towards it.  Every {convex} symmetric
        {closed} surface surrounding point 0 introduces a norm by
        means of {Minkowski functional}; all vectors that end on the
        surface have the same norm then.

        The most popular norm is the {Euclidean norm}; it is
        calculated by summing up squares of all coordinates and taking
        the square root; this is the essence of {Pythagorus's
        theorem}.  In the infinite-dimensional case, the sum is
        infinite or is replaced with an integral when the number of
        dimensions is {uncountable}.

        (1998-07-05)

normal distribution

        <statistics> (Or "Gaussian distribution", "bell curve") The
        {frequency distribution} of many natural phenomena such as the
        height of people of a certain age and sex.  The formula looks
        something like:

                P(x) = e^(((x-m)/s)^2)

        where P(x) is the probability of a measurement x, m is the
        mean value of x and s is the {standard deviation}.

        (1995-03-18)

normal form

        1. <reduction> In {reduction} systems, the state of a term
        which contains no reducible expressions.  Variants include
        {head normal form}, {weak head normal form}.

        2. <database> See {database normalisation}.

normalisation

        1. <data processing> A transformation applied uniformly to
        each element in a set of data so that the set has some
        specific statistical property.  For example, monthly
        measurements of the rainfall in London might be normalised by
        dividing each one by the total for the year to give a profile
        of rainfall throughout the year.

        2. <programming> Representation of a {floating-point} number
        so that its {mantissa}'s left-most digit is non-zero.  If the
        leftmost fraction digit are zeros, the number is said to be
        unnormalised.  Unnormalised numbers are normalised by shifting
        the fraction left, one digit at a time, until the leftmost
        digit is nonzero and reducing the {exponent} by the number of
        shifts.

        3. <database> {database normalisation}.

        (1998-04-15)

normalised

        {normalisation}

normal order reduction

        Under this {evaluation strategy} an expression is evaluated by
        reducing the leftmost outermost {redex} first.  This method
        will terminate for any expression for which termination is
        possible, whereas {applicative order reduction} may not.  This
        method is equivalent to passing arguments unevaluated because
        arguments are initially to the right of functions applied to
        them.  See also {computational adequacy theorem}.

NorthWestNet

        (NWNET) Kochmer, J., and NorthWestNet, "The Internet Passport:
        NorthWestNets Guide to Our World Online", NorthWestNet,
        Bellevue, WA, 1992.

NOS

        {Network Operating System}

NOT

        <logic> The {Boolean} function which is true only if its input
        is false.  Its {truth table} is:

         A | NOT A
         --+----------
         F |   T
         T |   F

        (1996-11-04)

Not-a-Number

        <mathematics> (NaN) A special {IEEE floating point} value
        representing the result of a numerical operation which cannot
        return a valid number value.  A NaN can be the result of an
        invalid operation (e.g. division by zero?); the result
        returned by a library function when it would be incorrect to
        return a numeric value (e.g. ?) or an undetermined value
        (e.g. uninitialised variable?).

        NaN is encoded as a special {bit pattern} which typically
        (always?) would otherwise represent a {floating-point} number
        value.  It is used to signal error returns where other
        mechanisms are not convenient, e.g. a hardware {floating-point
        unit} and to allow errors to propagate through a calculation.

        Similar bit patterns are defined to represent positive and
        negative {overflow} and {underflow}.

        [ANSI/IEEE Std 754-1985].

        [Correct examples?]

        (1997-12-03)

notebook

        1. <computer> {laptop computer}.

        2. <tool> {Labtech Notebook}.

        (1998-01-05)

NoteCards

        An ambitious hypertext system developed at Xerox PARC,
        "designed to support the task of transforming a chaotic
        collection of unrelated thoughts into an integrated, orderly
        interpretation of ideas and their interconnections".

Notepad

        <text, tool> The very basic {text editor} supplied with
        {Microsoft Windows}.

        (1998-01-05)

Notes

        {Lotus Notes}

Nother

        A parallel {symbolic mathematics} system.

        E-mail: <karhu@cs.umu.se>.

not ready for prime time

        Usable, but only just so; not very robust; for internal use
        only.  Said of a program or device.  Often connotes that the
        thing will be made more solid {Real Soon Now}.  This term
        comes from the ensemble name of the original cast of "Saturday
        Night Live", the "Not Ready for Prime Time Players".  It has
        extra flavour for hackers because of the special (though now
        semi-obsolescent) meaning of {prime time}.  Compare {beta}.

notwork

        /not'werk/ A network, when it is acting {flaky} or is {down}.
        Compare {nyetwork}.  Said at IBM to have originally referred
        to a particular period of flakiness on IBM's VNET corporate
        network ca. 1988; but there are independent reports of the
        term from elsewhere.

Nova

        <processor> A {minicomputer}(?), introduced some time before
        1978, with four 16-bit {accumulator}s, AC0 to AC3 and a 15 bit
        {program counter}.  A later model also had a 15-bit {stack
        pointer} and {frame pointer}.  AC2 and AC3 could be used for
        indexed addresses and AC3 was used to store the return address
        on a {subroutine} call.  Apart from the small {register set},
        the NOVA was an ordinary {CPU} design.

        Memory could be access indirectly through addresses stored in
        other memory locations.  If locations 0 to 3 were used for
        this purpose, they were auto-incremented after being used.  If
        locations 4 to 7 were used, they were auto-decremented.
        Memory could be addressed in 16-bit words up to a maximum of
        32K words (64K bytes).  The instruction cycle time was 500
        {nanoseconds}(?) cycle time for each.  The Nova originally
        used {core memory} though later on they gained {dynamic RAM}.

        Like the {PDP-8}, the {Data General} Nova was also copied, not
        just in one, but two implementations - the {Data General
        MN601} and {Fairchild 9440}.  Luckily, the NOVA was a more
        mature design than the PDP-8.

        Another CPU, the {PACE}, was based on the NOVA design, but
        featured 16-bit addresses (instead of the Nova's 15), more
        {addressing mode}s and a 10-level {stack} (like the {Intel
        8008}).

        [Date, speed, mini?]

        (1996-03-01)

Novell Data Systems

        <company> A small computer {hardware} company building {CP/M}
        {Z80}-based systems.  They later went on to become {Novell,
        Inc.} and develop {Novell Netware}.

        (1995-09-23)

Novell DOS

        <operating system, product> {Novell}'s fully compatible
        alternative to {MS-DOS}.  It is intended as an {operating
        system} for {workstations} on {Novell} networks.  It features
        enhanced {memory management} that moves the operating system,
        {network drivers}, and {memory-resident programs} ({TSR}s) out
        of conventional memory on all systems with an {Intel 80286} or
        later processor and {extended memory} or {expanded memory}.
        It supports {preemptive multitasking} and {peer-to-peer
        networking} using the same {DOS Requester} and {VLM}s for a
        "common client" with native {Novell NetWare}.

        A data {compression} utility effectively doubles storage
        capacity of the hard disk.  It supports disk
        {defragmentation}, a read/write {disk cache} for better
        performance of both DOS and {Microsoft Windows} {application
        programs}.  An undelete utility recovers erased files, even on
        network drives.  It has a complete on-line reference guide,
        command help, and menu-driven install and setup utilities for
        easy configuration changes.

        Novell DOS has internal and external commands like {MS-DOS}.
        The following commands have been significantly enhanced in
        Novell DOS: CHKDSK, DISKCOPY, HELP, MEM, REPLACE, UNDELETE,
        and XCOPY.  Novell DOS also includes many new commands such as
        XDIR, CURSOR, XDEL, TOUCH, SCRIPT, and RENDIR.

        Version: 7.

        (1995-04-14)

Novell, Inc.

        <company, networking> A {software} development company
        specialising in {network}ing and {workgroup} applications.

        {Novell} started life as {Novell Data Systems}, a computer
        hardware business.  The company was reorganised as Novell,
        Inc., and began to focus almost entirely on networking in
        1983, with the release of {Novell Netware} 1, a {Network
        Operating System} for {IBM PC}s.

        {Novell Netware}'s success has left Novell in a dominant
        position in the {network}ing market.  The product has evolved
        and now supports many {hardware} and {software} {platform}s
        together with {WAN} connectivity.

        The company has diversified in recent years, with the
        acquisition of several mainstream applications, including
        {Wordperfect} and {Quattro} Pro.  Other products include
        {UnixWare}, {AppWare}, {Personal NetWare}, {Groupwise} and
        {Novell Dos 7}.

        {Home (http://www.novell.com/)}

        (21 Sept 1995)

Novell NetWare

        <operating system, networking> {Novell, Inc.}'s proprietary
        networking {operating system} for the {IBM PC}.

        NetWare uses the {IPX}/{SPX}, {NetBEUI} or {TCP/IP} network
        {protocol}s.  It supports {MS-DOS}, {Microsoft Windows},
        {OS/2}, {Macintosh} and {Unix} {clients}.  NetWare for Unix
        lets users access Unix hosts.

        NetWare 2.2 is a 16-bit operating system, versions 4.x and 3.x
        are 32-bit operating systems.

        {Home (http://netware.novell.com/)}

        {Usenet} newsgroup: {news:comp.sys.novell}.

        ["Netware", K. Siyan, pub. New Riders].

        [LAN Magazine, Sep 1993].

        (1996-01-13)

NOWEB

        <programming> A system of {structured programming} and
        documentation from M.Speh in {DESY}.

        See {literate programming}.

        (1996-01-13)

no-write allocation

        <memory management> A {cache} policy where only processor
        reads are cached, thus avoiding the need for {write-back} or
        {write-through}.

        (1996-06-12)

NP

        <complexity> {nondeterministic polynomial time}.

np

        <networking> The {country code} for Nepal.

        (1999-01-27)

NPC

        {NP-complete}

NP-complete

        <complexity> (NPC, Nondeterministic Polynomial time complete)
        A set or property of computational {decision problem}s which
        is a subset of {NP} (i.e. can be solved by a
        {nondeterministic} {Turing Machine} in {polynomial} time),
        with the additional property that it is also {NP-hard}.  Thus
        a solution for one NP-complete problem would solve all
        problems in NP.  Many (but not all) naturally arising problems
        in class NP are in fact NP-complete.

        There is always a {polynomial-time algorithm} for transforming
        an instance of any NP-complete problem into an instance of any
        other NP-complete problem.  So if you could solve one you
        could solve any other by transforming it to the solved one.

        The first problem ever shown to be NP-complete was the
        {satisfiability problem}.  Another example is {Hamilton's
        problem}.

        See also {computational complexity}, {halting problem},
        {Co-NP}, {NP-hard}.

        {(http://fi-www.arc.nasa.gov/fia/projects/bayes-group/group/NP/)}

        [Other examples?]

        (1995-04-10)

NP-hard

        <complexity> A set or property of computational {search
        problem}s.  A problem is NP-hard if solving it in {polynomial
        time} would make it possible to solve all problems in class
        {NP} in polynomial time.

        Some NP-hard problems are also in {NP} (these are called
        "{NP-complete}"), some are not.  If you could reduce an {NP}
        problem to an NP-hard problem and then solve it in polynomial
        time, you could solve all NP problems.

        See also {computational complexity}.

        [Examples?]

        (1995-04-10)

NPL

        1. New Programming Language.  IBM's original (temporary) name
        for PL/I, changed due to conflict with England's "National
        Physical Laboratory."  MPL and MPPL were considered before
        settling on PL/I.  Sammet 1969, p.542.

        2. A {functional language} with {pattern matching} designed by
        Rod Burstall and John Darlington in 1977.  The language
        allowed certain sets and logic constructs to appear on the
        right hand side of definitions, E.g.

                setofeven(X) <= <:x: x in X & even(x) :>

        The NPL {interpreter} evaluates the list of {generator}s from
        left to right so conditions can mention any bound variables
        that occur to their left.  These were known as {set
        comprehension}s.  NPL eventually evolved into {Hope} but lost
        set comprehensions which were called {list comprehension}s in
        later functional languages.

        [John Darlington, "Program Transformation and Synthesis:
        Present Capabilities", Research Report No. 77/43, Dept. of
        Computing and Control, Imperial College of Science and
        Technology, London September 1977.]

        3. NonProcedural Language.  A {relational database} language
        developed by by T.D. Truitt et al in 1980 for {Apple II} and
        {MS-DOS}.

        ["An Introduction to Nonprocedural Languages Using NPL",
        T.D. Truitt et al, McGraw-Hill 1983].

NPPL

        Network Picture Processing Language.  An interactive language
        for manipulation of {digraphs}.

        ["A Graph Manipulator for On-line Network Picture Processing",
        H.A. DiGiulio, Proc FJCC 35 (1969)].

N-Prolog

        {Prolog} extended with explicit negation.  Dov Gabbay
        <dg@doc.ic.ac.uk>.

        [J Logic Programming].

NP time

        {nondeterministic polynomial time}

NQS

        Batch processing software for Unix systems.

Nqthm

        The language used in the {Boyer-Moore} {theorem prover}.

        ["Proving Theorems About LISP Functions", R.S. Boyer et al
        JACM 22(1):129-144 (Jan 1975)].

nr

        <networking> The {country code} for Nauru.

        (1999-01-27)

NREN

        {National Research and Education Network}

nroff

        /N'rof/ [Unix, from "new {roff}"] A text formatting language
        and interpreter, companion to the Unix typesetter {troff},
        accepting identical input but preparing output for terminals
        and line printers.  See also {groff}.

NRZ

        {Non Return to Zero}

NRZI

        {Non Return to Zero Inverted}

ns

        {nanosecond}

NSA line eater

        <messaging, tool> The National Security Agency trawling
        program sometimes assumed to be reading the net for the US
        Government's spooks.  Most hackers describe it as a mythical
        beast, but some believe it actually exists, more aren't sure,
        and many believe in acting as though it exists just in case.
        Some netters put loaded phrases like "KGB", "Uzi", "nuclear
        materials", "Palestine", "cocaine", and "assassination" in
        their {sig blocks} to confuse and overload the creature.  The
        {GNU} version of {EMACS} actually has a command that randomly
        inserts a bunch of insidious anarcho-verbiage into your edited
        text.

        There is a mainstream variant of this myth involving a "Trunk
        Line Monitor", which supposedly used speech recognition to
        extract words from telephone trunks.  This one was making the
        rounds in the late 1970s, spread by people who had no idea of
        then-current technology or the storage, {signal-processing},
        or {speech recognition} needs of such a project.  On the basis
        of mass-storage costs alone it would have been cheaper to hire
        50 high-school students and just let them listen in.
        Speech-recognition technology can't do this job even now
        (1993), and almost certainly won't in this millennium, either.

        The peak of silliness came with a letter to an alternative
        paper in New Haven, Connecticut, laying out the factoids of
        this Big Brotherly affair.  The letter writer then revealed
        his actual agenda by offering - at an amazing low price, just
        this once, we take VISA and MasterCard - a scrambler
        guaranteed to daunt the Trunk Trawler and presumably allowing
        the would-be Baader-Meinhof gangs of the world to get on with
        their business.

        (1994-12-13)

NSAPI

        {Netscape Application Programming Interface}

NSDI

        {National Spatial Data Infrastructure}

NSE

        Network Software Environment: a proprietary CASE framework
        from Sun Microsystems.

NSF

        {National Science Foundation}

NSFNET

        {National Science Foundation Network}

NSI

        <company> {Network Solutions, Inc.}.

        (1995-11-09)

nslookup

        A {Unix} utility by Andrew Cherenson for querying {Internet}
        {domain name server}s.  The basic use is to find the {Internet
        address} corresponding to a given {hostname} (or vice versa).
        By changing the query type (e.g. "set type=CNAME") other types
        of information can be obtained including CNAME - the
        {canonical name} for an alias; HINFO - the host {CPU} and
        {operating system} type; MINFO - mailbox or mail list
        information; {MX} - {mail exchanger} information; NS - the
        {name server} for the named zone; PTR - the hostname if the
        query is an Internet address, otherwise the pointer to other
        information; SOA the domain's start-of-authority information;
        TXT - text information; UINFO - user information; WKS -
        supported {well-known service}s.  Other types (ANY, AXFR, MB,
        MD, MF, NULL) are described in {RFC 1035}.

        {(ftp://src.doc.ic.ac.uk/computing/operating-systems/unix/bsd-sources/u
sr.sbin/named/tools/nslookup/)}

        (1994-10-27)

NSRD

        {National Software Reuse Directory}

NSS

        1. <networking> {Nodal Switching System}.

        2. <operating system> {New Storage System}.

        (1997-01-29)

NT

        1. {Network Termination}.

        2. New Technology, as in {Windows NT}.

NT1

        {Network Termination}

ntalk

        <chat> ("new talk") An update of the {Unix} "{talk}" program,
        old versions of "talk" being referred to as "old talk".  New
        talk and old talk are generally incompatible, and attempts to
        get them to communicate result in entirely unhelpful error
        messages.

        On most modern {Unix} systems, the program "talk" is new talk,
        with some {SunOS} versions being a notable and annoying
        exception to this.

        (1997-09-11)

NTAS

        {NT Advanced Server}

NT File System

        <file system> (NTFS) The {native} {file system} of {Windows
        NT}.

        (1995-03-06)

NTFS

        {NT File System}

n-tier

        {three-tier}

NTIS

        {National Technical Information Service}

NTMBS

        <programming> {null-terminated multibyte string}.

        (1995-10-02)

NTP

        {Network Time Protocol}

NTSC

        {National Television Standards Committee}

NTU

        {Network Termination Unit}

nu

        <networking> The {country code} for Niue.

        (1999-01-27)

        Because it sounds like "new", nu is heavily
        used for {vanity domains}.

        (1999-01-27)

NuBus

        The proprietary {expansion bus} used on Apple {Macintosh}
        {personal computer}s.

        (1995-02-03)

nu-calculus

        An asynchronous version of {pi-calculus}.

NUCLEOL

        List processing language, influenced by EOL.  J. Nievergelt,
        Computer J 13(3) (Aug 1970).

nude

        Said of machines delivered without an operating system
        (compare {bare metal}).  "We ordered 50 systems, but they all
        arrived nude, so we had to spend a an extra weekend with the
        installation tapes."  This usage is a recent innovation
        reflecting the fact that most PC clones are now delivered with
        DOS or Microsoft Windows pre-installed at the factory.  Other
        kinds of hardware are still normally delivered without OS, so
        this term is particular to PC support groups.

        (1994-12-13)

nuke

        /n[y]ook/ 1. To intentionally delete the entire contents of a
        given directory or storage volume.  "On Unix, "rm -r /usr"
        will nuke everything in the usr file system."  Never used for
        accidental deletion.  Opposite: {blow away}.

        2. Synonym for {dike}, applied to smaller things such as
        files, features, or code sections.  Often used to express a
        final verdict.  "What do you want me to do with that 80-meg
        {wallpaper} file?"  "Nuke it."

        3. Used of processes as well as files; nuke is a frequent
        verbal alias for "kill -9" on Unix.

        4. On IBM PCs, a bug that results in {fandango on core} can
        trash the operating system, including the FAT (the in-core
        copy of the disk block chaining information).  This can
        utterly scramble attached disks, which are then said to have
        been "nuked".  This term is also used of analogous lossages on
        Macintoshes and other micros without memory protection.

null modem

        <communications, hardware> A cable, especially an {RS-232}
        cable, for connecting serial ports on two computers directly,
        rather than via modems.  Since, according to the
        specification, both computers should transmit on pin three of
        their RS-232 connectors and recieve on pin two, a null modem
        cable needs to connect one computer's pin two to the other's
        pin three and vice versa.  It also needs to have male
        connectors at both ends (again, according to the
        specification).

        (1996-05-17)

null-terminated multibyte string

        <programming> (NTMBS) (Defined in the {ANSI C++} draft)

        [Different from null-terminated string?]

        (1995-10-02)

NUMA

        {Non-Uniform Memory Access}

number crunching

        <application, jargon> Computations of a numerical nature,
        especially those that make extensive use of {floating-point}
        numbers.  The only thing {Fortrash} is good for.

        This term is in widespread informal use outside hackerdom and
        even in mainstream slang, but has additional hackish
        connotations: namely, that the computations are mindless and
        involve massive use of {brute force}.  This is not always
        {evil}, especially if it involves {ray tracing} or {fractal}s
        or some other use that makes {pretty pictures}, especially if
        such pictures can be used as {wallpaper}.

        See also {crunch}.

        (1995-03-17)

numbers

        (Scientific computation) Output from a computation that may
        not be significant but at least indicates that the program is
        running.  Numbers may be used to placate management, grant
        sponsors, etc.  "Making numbers" means running a program
        because output - any output, not necessarily meaningful output
        - is needed as a demonstration of progress.

        See {pretty pictures}, {math-out}, {social science number}.

        (1995-01-13)

number sign

        <character> {hash}.

Numeris

        The name given by France Telecom, the french telephone network
        operator, to its {ISDN} network.

        (1995-01-31)

Nuprl

        /nyu p*rl/ Nearly Ultimate PRL.

        A system for interactive creation of formal mathematics,
        including definitions and proofs.  It has an extremely rich
        type system, including dependent functions, products, sets,
        quotients and universes.  Types are first-class citizens.
        It is built on {Franz Lisp} and {Edinburgh ML}.

        ["Implementing Mathematics in the Nuprl Proof Development
        System", R.L. Constable et al, P-H 1986].

        (1994-12-13)

NU-Prolog

        L. Naish, U Melbourne.  A Prolog with 'when' declarations, the
        successor to MU-Prolog.  Type-checked.  "NU-Prolog Reference
        Manual - Version 1.3", J.A. Thom et al eds, TR 86/10, U
        Melbourne (1988).  Available (but not free).  (See
        PNU-Prolog).  E-mail: <jas@mulga.oz.au>.

nurbs

        {Non-Uniform Rational B Spline}

Nu Thena

        A software vendor specialising in rapid prototyping tools for
        {real-time} hardware and software systems and collaborating
        with {DAZIX}.

NUXI problem

        /nuk'see pro'bl*m/ Refers to the problem of transferring data
        between machines with differing byte-order.  The string "Unix"
        might look like "NUXI" on a machine with a different "byte
        sex" (e.g. when transferring data from a {little-endian} to a
        {big-endian}, or vice-versa).  See also {middle-endian},
        {swab}, and {bytesexual}.

NVRAM

        {Non-Volatile Random Access Memory}

NWNET

        {NorthWestNet}

NYAP

        <language> An early system on the {IBM 704}.

        [Listed in CACM 2(5):16, May 1959].

        (1997-12-03)

nybble

        {nibble}

nyetwork

        /nyet'werk/ (Russian "nyet" = no) A network, when it is acting
        {flaky} or is {down}.

        Compare {notwork}.

        (1995-02-01)

nym

        1. <tool, networking> /nim/ (From the third syllable of
        "anonymous"; or "nym server") A {server} that functions as an
        {anonymous remailer}.

        2. A popular {hostname} for nym servers.

        3. A mail-forwarding {account} on a {nym server}.

        (1999-02-26)

nym server

        {nym}

Nyquist Theorem

        <communications> A theorem stating that when an {analogue}
        waveform is digitised, only the frequencies in the waveform
        below half the {sampling frequency} will be recorded.  In
        order to reconstruct (interpolate) a signal from a sequence of
        samples, sufficient samples must be recorded to capture the
        peaks and troughs of the original waveform.  If a waveform is
        sampled at less than twice its frequency the reconstructed
        waveform will effectively contribute only {noise}.  This
        phenomenon is called "aliasing" (the high frequencies are
        "under an alias").

        This is why the best digital audio is sampled at 44,000 Hz -
        twice the average upper limit of human hearing.

        The Nyquist Theorem is not specific to digitised signals
        (represented by discrete amplitude levels) but applies to any
        sampled signal (represented by discrete time values), not just
        sound.

        (1998-12-30)

NYSERNET

        {New York State Educational Reasearch NETwork}

NYU OMNIFAX

        Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
        1959).

nz

        <networking> The {country code} for New Zealand.

        (1999-01-27)

O

        <character> {ASCII} code 79, The letter of the alphabet, not
        to be confused with 0 ({zero}) the digit.

        (1999-02-07)

O2

        Object-Oriented.  {Object-oriented database} language used in
        the {Altair} project.  Implemented as an {interpreter}.  GIP
        Altair, Versailles, France.  Francois Bancilhon et al, in
        Advances in Object-Oriented Database Systems, K.R. Dittrich
        ed, LNCS 334, Springer 1988.  See {CO2}.

Oaklisp

        <language> A portable {object-oriented} {Scheme} by K. Lang
        and Barak Perlmutter of {Yale}.  Oaklisp uses a superset of
        Scheme {syntax}.  It is based on generic operations rather
        than functions, and features {anonymous classes}, {multiple
        inheritance}, a strong error system, {setters} and {locators}
        for operations and a facility for {dynamic binding}.

        Version 1.2 includes an interface, {bytecode compiler},
        {run-time system} and documentation.

        {(ftp://f.gp.cs.cmu.edu/usr/bap/oak/ftpable/)}, {for Amiga
        (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff519)}.

        ["Oaklisp: An Object-Oriented Scheme with First-Class Types",
        K. Lang et al, SIGPLAN Notices 21(11):30-37 (Nov 1986) (OOPSLA
        '86)].

        (1992-05-01)

OAP

        {Outside Awareness Port}

OATH

        Object-oriented Abstract Type Hierarchy, a class library for
        C++ from {Texas Instruments}.

Ob-

        /ob/ prefix Obligatory.  A piece of {netiquette} acknowledging
        that the author has been straying from the newsgroup's charter
        topic.  For example, if a posting in alt.sex is a response to
        a part of someone else's posting that has nothing particularly
        to do with sex, the author may append "ObSex" (or "Obsex") and
        toss off a question or vignette about some unusual erotic act.
        It is considered a sign of great {winnitude} when one's Obs
        are more interesting than other people's whole postings.

OBDC

        Do you mean {ODBC}?

        (1996-06-30)

OBE

        {Office By Example}

Oberon

        <language> A {strongly typed} {procedural} programming
        language and an operating environment evolved from {Modula-2}
        by {Nicklaus Wirth} in 1988.  Oberon adds type extension
        ({inheritance}), extensible record types, multidimensional
        open arrays, and {garbage collection}.  It eliminates {variant
        records}, {enumeration types}, {subranges}, lower array
        indices and {for loops}.

        A successor called Oberon-2 by H. Moessenboeck features a
        handful of extensions to Oberon including type-bound
        procedures ({method}s).

        Seneca is a variant of Oberon focussing on numerical
        programming under development by R. Griesemer in April 1993
        (to be renamed).

        See also {Ceres workstation Oberon System}.

        {Home (http://www.oberon.ethz.ch)}.

        {(http://www.math.tau.ac.il/~laden/Oberon.html)}.

        {Free ETH Oberon (ftp://ftp.inf.ethz.ch/pub/Oberon)}.  {MS-DOS
        (ftp://ftp.wustl.edu/mirrors/msdos/pgmutl/)}.  {Amiga
        (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff380)}.

        ["The Programming Language Oberon", N. Wirth, Soft Prac & Exp
        18(7):671-690 July 1988].

        ["Programming in Oberon: Steps Beyond Pascal and Modula",
        M. Reiser & N. Wirth, A-W 1992].

        ["Project Oberon: the design of an operating system and
        compiler", N. Wirth & J. Gutknecht, ACM Press 1992].

        ["The Oberon Companion: A Guide to Using and Programming
        Oberon System 3", Andr Fischer, Hannes Marais, vdf Verlag der
        Fachhochschulen, Zurich, 1997, ISBN 3-7281-2493-1.  Includes
        CD-ROM for Windows, Linux, Macintosh and PC Native].

        (1998-03-14)

Oberon-2

        H. Moessenboeck, 1991.  A superset of Oberon-1 to include
        object-orientation.  A redesign of Object Oberon.  Type-bound
        procedures (equivalent to methods), read-only export of
        variables and record fields, open array variables, and a
        'with' statement with variants.  The 'for' statement is
        reintroduced.  Second Intl Modula-2 Conf, Sept 1991.

        {(ftp://neptune.inf.ethz.ch:/Oberon/)}.  {Version 4
        documentation
        (ftp://neptune.inf.ethz.ch/Oberon/Docu/Oberon2Report.ps.Z)}.

        There is an Oberon-2 {Lex} scanner and {Yacc} parser by
        Stephen J Bevan <bevan@cs.man.ac.uk> based on the one in the
        Mo"ssenbo"ck and Wirth reference.  Version 1.4

        {(ftp://ftp.psg.com/pub/oberon/tools/o2lexyac.tar.Z)} or mail
        <bevan@cs.man.ac.uk> with Subject "b-server-request" and body
        "send oberon/oberon_2_p_v1.4.shar".

        ["The Programming Language Oberon-2", H. Mo"ssenbo"ck,
        N. Wirth, Institut fu"r Computersysteme, ETH Zu"rich, January
        1992].

        (1992-07-06)

Oberon-V

        (Formerly Seneca).  R. Griesemer, 1990.  Descendant of Oberon
        designed for numerical applications on supercomputers,
        especially vector or pipelined architectures.  Includes array
        constructors and an ALL statement.  "Seneca - A Language for
        Numerical Applications on Vectorcomputers", Proc CONPAR 90 -
        VAPP IV Conf.  R. Griesemer, Diss Nr. 10277, ETH Zurich.

Obfuscated C Contest

        <programming> The International Obfuscated C Code Contest
        (IOCCC) is an annual contest run since 1984 over {Usenet} by
        Landon Curt Noll and friends.  The overall winner is whoever
        produces the most unreadable, creative, and bizarre (but
        working) {C} program.  Various other prizes are awarded at the
        judges' whim.  C's terse {syntax} and {macro-preprocessor}
        facilities give contestants a lot of maneuvering room.  The
        winning programs often manage to be simultaneously funny,
        breathtaking works of art and horrible examples of how *not*
        to code in C.

        This relatively short and sweet entry might help convey the
        flavour of obfuscated C:

         /*
         * HELLO WORLD program
         * by Jack Applin and Robert Heckendorn, 1985
         */
         main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
         (!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
         **c=!c)write(!!*c,*c,!!**c);}

        Here's another good one:

         /*
         * Program to compute an approximation of pi
         *  by Brian Westley, 1988
         */

         #define _ -F<00||--F-OO--;
         int F=00,OO=00;
         main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
         {
                    _-_-_-_
               _-_-_-_-_-_-_-_-_
            _-_-_-_-_-_-_-_-_-_-_-_
          _-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
          _-_-_-_-_-_-_-_-_-_-_-_-_-_
            _-_-_-_-_-_-_-_-_-_-_-_
                _-_-_-_-_-_-_-_
                    _-_-_-_
         }

        Note that this program works by computing its own area.  For
        more digits, write a bigger program.  See also {hello, world}.

obi-wan error

        /oh'bee-won" er"*r/ [RPI, from "off-by-one" and the Obi-Wan
        Kenobi character in "Star Wars"] A loop of some sort in which
        the index is off by 1.  Common when the index should have
        started from 0 but instead started from 1.  A kind of
        {off-by-one error}.  See also {zeroth}.

OBJ

        Joseph Goguen 1976.  A family of declarative "ultra high
        level" languages.  Abstract types, generic modules, subsorts
        (subtypes with {multiple inheritance}), pattern-matching
        modulo equations, E-strategies (user control over laziness),
        module expressions (for combining modules), theories and views
        (for describing module interfaces).  For the massively
        parallel RRM (Rewrite Rule Machine).

        ["Higher-Order Functions Considered Unnecessary for
        Higher-Order Programming", J.A. Goguen, in Research Topics in
        Functional Programming].

OBJ0

        Tardo.  Based on unsorted equational logic.

OBJ2

        Clear-like parametrised modules.  A functional system based on
        equations.  "Principles of OBJ2", K. Futatsugi et al, 12th
        POPL, ACM 1985, pp.52-66.

OBJ3

        <language> A version of {OBJ} based on {order-sorted
        rewriting}.  OBJ3 is {agent}-oriented and runs on {AKCL}.

        E-mail: <obj3sys@crl.sri.com>, <obj3dist@csl.sri.com>.

        ["Introducing OBJ3", J. Goguen et al, SRI-CSL-88-9, SRI Intl,
        1988].

        (1995-03-16)

object

        In {object-oriented programming}, a unique instance of a data
        structure defined according to the template provided by its
        {class}.  Each object has its own values for the variables
        belonging to its class and can respond to the messages
        ({method}s) defined by its class.

ObjectBroker

        <programming> A distributed {object} system from {DEC} based
        on the {CORBA} standard.

        (1999-01-14)

ObjectCenter

        A product offering similar facilities to CodeCenter for the
        C++ language, plus class browsing facilities etc (formerly
        Saber-C++).

Object CHILL

        ["Object CHILL - An Object Oriented Language for Systems
        Implementation", J. Winkler et al, ACM Comp Sci Conf 1992,
        pp. 139-147].

        (1995-01-31)

object code

        The {machine code} generated by a {source code} language
        processor such as an {assembler} or {compiler}.  A file of
        object code may be immediately executable or it may require
        {linking} with other object code files, e.g. libraries, to
        produce a complete executable program.

        (1995-01-31)

Object Compatibility Standard

        (OCS) An {88open} standard for compilers and linkers.

Object Database Management Group

        <body> (ODMG) A consortium of {object-oriented database}
        management system (ODBMS) vendors and interested parties
        working on standards to allow portability of customer software
        across products.

        (1997-03-18)

Objecteering

        <programming, tool> An {object-oriented design} tool from
        {Softeam}, based on the {Class Relation Methodology}, with
        {C++} code generation.

        (1997-03-18)

object identifier

        <programming> (OID) Generally an implementation-specific
        {integer} or {pointer} that uniquely identifies an {object}.

        (1999-07-10)

Objectionable-C

        <abuse, humour, language> A hackish take on "{Objective C}".
        Objectionable-C uses a {Smalltalk}-like {syntax}, but lacks
        the flexibility of Smalltalk {method} calls, and (like many
        such efforts) comes frustratingly close to attaining the
        {Right Thing} without actually doing so.

        (1995-02-15)

Objective C

        <language> An {object-oriented} superset of {ANSI C} by Brad
        Cox, Productivity Products.  Its additions to {C} are few and
        are mostly based on {Smalltalk}.  Objective C is implemented
        as a {preprocessor} for {C}.  Its {syntax} is a superset of
        standard C syntax, and its {compiler} accepts both C and
        Objective C {source code} ({filename extension} ".m").

        It has no operator {overloading}, {multiple inheritance}, or
        {class variables}.  It does have {dynamic binding}.  It is
        used as the system programming language on the {NeXT}.  As
        implemented for {NEXTSTEP}, the Objective C language is fully
        compatible with {ANSI C}.

        Objective C can also be used as an extension to {C++}, which
        lacks some of the possibilities for {object-oriented design}
        that {dynamic typing} and {dynamic binding} bring to Objective
        C.  C++ also has features not found in Objective C.

        Versions exist for {MS-DOS}, {Macintosh}, {VAX}/{VMS} and
        {Unix} {workstation}s.  Language versions by {Stepstone},
        {NeXT} and {GNU} are slightly different.

        There is a library of ({GNU}) Objective C {objects} by
        R. Andrew McCallum <mccallum@cs.rochester.edu> with similar
        functionality to {Smalltalk}'s Collection objects.  It
        includes: Set, {Bag}, {Array}, LinkedList, LinkList,
        CircularArray, {Queue}, {Stack}, {Heap}, SortedArray,
        MappedCollector, GapArray and DelegateList.  Version: Alpha
        Release.  {(ftp://iesd.auc.dk/pub/ObjC/)}.

        See also: {Objectionable-C}.

        ["Object-Oriented Programming: An Evolutionary Approach", Brad
        Cox, A-W 1986].

        (1999-07-10)

Objective PASCAL

        An extension of the {PASCAL} language which provides the
        possibility to use {object-oriented} programming constructs.

Object Linking and Embedding

        <operating system> (OLE) A distributed object system and
        {protocol} from {Microsoft}, also used on the Acorn
        {Archimedes}.  OLE allows an editor to "farm out" part of a
        document to another editor and then reimport it.  For example,
        a {desk-top publishing} system might send some text to a {word
        processor} or a picture to a {bitmap} editor using OLE.

        (1998-12-17)

Object Lisp

        LMI.  An object-oriented Lisp.

        ["ObjectLISP User Manual", G.  Dreschere, LMI 1987].

ObjectLOGO

        A variant of LOGO with object-oriented extensions.  Lexical
        scope.  Version 2.6, for the Mac.  Paradigm Software
        <paradigm@applelink.apple.com> (617)576-7675.

Object Management Group

        <body> (OMG) A consortium aimed at setting {standards} in
        {object-oriented programming}.  In 1989, this consortium,
        which included {IBM Corporation}, {Apple Computer Inc.} and
        {Sun Microsystems Inc.}, mobilised to create a
        cross-compatible distributed object standard.  The goal was a
        common binary object with methods and data that work using all
        types of development environments on all types of platforms.
        Using a committee of organisations, OMG set out to create the
        first {Common Object Request Broker Architecture} (CORBA)
        standard which appeared in 1991.  As of February 1998, the
        latest standard is CORBA 2.2.

        {Home (http://www.omg.org)}.

        [David S. Linthicum, DBMS, January 1997]

        (1999-02-02)

Object management system

        In an IPSE, the system which maintains information about the
        system under development.

Object Modelling Technique

        <programming> (OMT) An {object-oriented} methodology.

        [Details?]

        (1996-11-03)

Object Oberon

        {Oberon} plus {class}es and {method}s by H. Moessenboeck &
        J. Templ, 1989.  See {Oberon-2}.

        ["Object Oberon - An Object-Oriented Extension of Oberon", H.
        Moessenboeck et al, ETH TR 109 (Apr 1990)].

        ["Object Oberon - A Modest Object-Oriented Language",
        H. Moessenboeck & J. Templ, in Structured Programming 10(4),
        1989].

object-orientation

        {object-oriented}

object-oriented

        1. <programming> (OO) See {object-oriented programming}.  See
        also {object-oriented analysis}, {object-oriented database},
        {object-oriented design}.

        2. <graphics> {vector graphics}.

object-oriented analysis

        (OOA) See {object-oriented design}, {Schlaer-Mellor}.

object-oriented database

        <database> (OODB) A system offering {DBMS} facilities in an
        {object-oriented programming} environment.  Data is stored as
        {objects} and can be interpreted only using the {method}s
        specified by its {class}.  The relationship between similar
        objects is preserved ({inheritance}) as are references between
        objects.  Queries can be faster because {joins} are often not
        needed (as in a {relational database}).  This is because an
        object can be retrieved directly without a search, by
        following its object id.

        The same programming language can be used for both data
        definition and data manipulation.  The full power of the
        database programming language's {type system} can be used to
        model {data structures} and the relationship between the
        different data items.

        {Multimedia} {applications} are facilitated because the
        {class} {method}s associated with the data are responsible for
        its correct interpretation.

        OODBs typically provide better support for {versioning}.  An
        object can be viewed as the set of all its versions.  Also,
        object versions can be treated as full fledged objects.  OODBs
        also provide systematic support for {triggers} and
        {constraints} which are the basis of {active databases}.
        Most, if not all, object-oriented {application programs} that
        have database needs will benefit from using an OODB.

        {Ode} is an example of an OODB built on {C++}.

        (1997-12-07)

object-oriented design

        <programming> (OOD) A design method in which a system is
        modelled as a collection of cooperating {objects} and
        individual objects are treated as instances of a {class}
        within a {class hierarchy}.  Four stages can be identified:
        identify the classes and objects, identify their {semantics},
        identify their relationships and specify class and object
        interfaces and implementation.  Object-oriented design is one
        of the stages of {object-oriented programming}.

        ["Object-oriented analysis and design with applications",
        Grady Booch, 2nd ed., pub. Benjamin/Cummings, Redwood CA,
        1994].

        (1997-12-07)

object-oriented language

        {object-oriented programming}

Object-Oriented Pascal

        {Object Pascal}

object-oriented programming

        <programming> (OOP) Writing programs in one of a class of
        programming languages and techniques based on the concept of
        an "{object}" which is a data structure ({abstract data type})
        encapsulated with a set of routines, called "{method}s" which
        operate on the data.  Operations on the data can only be
        performed via these methods, which are common to all objects
        which are instances of a particular "{class}" (see
        {inheritance}).  Thus the interface to objects is well
        defined, and allows the code implementing the methods to be
        changed so long as the interface remains the same.

        Each class is a separate {module} and has a position in a
        "{class hierarchy}".  Methods or code in one class can be
        passed down the hierarchy to a {subclass} or inherited from a
        {superclass}.

        Procedure calls are described in term of {message passing}.  A
        message names a method and may optionally include other
        arguments.  When a message is sent to an object, the method is
        looked up in the object's class to find out how to perform
        that operation on the given object.  If the method is not
        defined for the object's class, it is looked for in its
        superclass and so on up the class hierarchy until it is found
        or there is no higher superclass.  Procedure calls always
        return a result object, which may be an error, as in the case
        where no superclass defines the requested method.

        OOP started with {SIMULA-67} around 1970.  Popular examples of
        object-oriented programming languages (OOPL) are {Smalltalk},
        from Xerox's Palo Alto Research Center (PARC) and {C++}.
        Others include {Object Pascal}, {Objective C}, {DRAGOON},
        {BETA}, {Emerald}, {POOL}, {Eiffel}, {Self}, {Oblog}, {ESP},
        {POLKA} and {Loops}.

        {(http://zgdv.igd.fhg.de/papers/se/oop/)}.
        {(http://cuiwww.unige.ch/Chloe/OOinfo)}.

        {FAQ (http://iamwww.unibe.ch/~scg/OOinfo/FAQ/)}

        {Usenet} newsgroup: {news:comp.object}.

        (1995-02-10)

object-oriented programming language

        {object-oriented programming}

Object-Oriented Turing

        Extension of {Turing} and a replacement for {Turing Plus} by
        R.C. Holt <holt@csri.toronto.edu>, U Toronto, 1991.  It is
        imperative, {object-oriented} and concurrent.  It has
        {module}s, {class}es, {single inheritance}, processes,
        exception handling, optional machine-dependent programming.

        There is an integrated environment under the {X Window System}
        and {a demo version (ftp://turing.toronto.edu/pub/turing)}.
        Versions exist for {Sun4}, {MIPS}, {RS-6000} and others.

        E-mail: <ootinfo@turing.toronto.edu>.

        ["A Conceptual Framework for Software Development", Mancoridis
        et al, eds, ACM SIGSCE Conference, Feb 1993, Indianapolis].
        ["Turing Reference Manual", 1992, ISBN 0-921598-15-7].

ObjectPAL

        {Object-oriented database} language, part of {Borland}'s
        {MS-Windows} version of {Paradox}.

Object Pascal

        <language> An {object-oriented} {Pascal} developed jointly by
        {Apple Computer} and {Niklaus Wirth}.

        ["Object Pascal Report", Larry Tesler, Structured Language
        World 9(3):10-17 (1985)].

        (1994-10-28)

Object Request Broker

        (ORB) Part of the {OMG} standard.

        (1994-10-28)

Object Role Modeling

        <programming> (ORM) A conceptual {modeling} approach that
        pictures the application world as a set of {objects} that play
        roles (parts in relationships, which may be unary, binary or
        higher order).  ORM provides both graphical and textual
        languages that enable models to be expressed naturally.  For
        {data modeling} purposes, its graphical language is more
        expressive than {ER} or {UML}.

        {Home (http://www.orm.net/)}.

        (1999-08-27)

Object Value

        <jargon> In industrial design, a measure of consumers'
        immediate desire for an object, even before they know or
        understand what it does.  "Gassee may be nuts, but at least
        the {BeBox} has great object value."

        (1997-03-30)

Objectworks

        An {object-oriented} development environment developed by
        {ParcPlace}, available under {Smalltalk} and {C++}.

        (1994-10-28)

Object Z

        University of Queensland.

        ["Object Orientation in Z", S. Stepney et al eds, Springer
        1992].

Objlog

        A {frame}-based language combining {object}s and {Prolog II}
        from {CNRS}, Marseille, France.

        ["The Inheritance Processes in Prolog", C. Chouraki et al,
        GRTC/187bis/Mars 1987 (CNRS)].

        E-mail: <somebody@grtc.cnrs-mrs.fr>.

        (1994-10-28)

OBJT

        {Error algebra}s plus an image construct.  Tardo.

ObjVlisp

        1984.  An {object-oriented} extension of {Vlisp}.
        {Reflective} architecture.

        ["Metaclasses are First Class: The ObjVlisp Model", P.
        Cointe, SIGPLAN Notices 22(121):156-167 (Dec 1987) (OOPSLA
        '87)].

ObjVProlog

        {Logic programming} and {object-orientation}, an adaptation of
        the {ObjVlisp} model to {Prolog}.

        ["ObjVProlog: Metaclasses in Logic", J. Malenfant, ECOOP '89,
        Cambridge U Press 1989, pp.257-269].

Obliq

        A small, statically scoped untyped language by Luca Cardelli,
        1993.  Obliq is {object-oriented}, higher order, concurrent,
        and distributed.  State is local to an address space, while
        computation can migrate over the network.  The distributed
        computation mechanism is based on {Modula-3} network objects.

        {(ftp://gatekeeper.dec.com/pub/DEC/Modula-3/contrib)}

oblique stroke

        {slash}

Oblog

        <language> A small, portable, {Object-oriented} extension to
        {Prolog} by Margaret McDougall of EdCAAD, Dept Arch,
        {University of Edinburgh}.

        (1995-12-29)

OBSCURE

        "A Formal Description of the Specification Language OBSCURE",
        J.  Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985.

observational equivalence

        Two terms M and N are observationally equivalent iff for all
        contexts C[] where C[M] is a valid term, C[N] is also a valid
        term with the same value.

Oc

        <language> ("Oh see!")  A {parallel} {logic language}.

        ["Self-Description of Oc and its Applications", M. Hirata,
        Proc 2nd Natl Conf Japan Soc Soft Sci Tech, pp. 153-156,
        1984].

        (1995-03-16)

OC-12

        {Optical Carrier 12}

OC-3

        {Optical Carrier 3}

OC-48

        {Optical Carrier 48}

OCAL

        On-Line Cryptanalytic Aid Language.

        ["OCAS: On-line Cryptanalytic Aid System", D.J. Edwards,
        MAC-TR-27, MIT Project MAC, May 1966.  Sammet 1969, p.642].

occam

        <language> (Note lower case) A language based on {Anthony
        Hoare}'s {CSP} and {EPL}.  Named after the English
        philosopher, William of Occam (1300-1349) who propounded
        {Occam's Razor}.  The occam language was designed by David May
        of {INMOS} to easily describe {concurrent} processes which
        communicate via one-way channels.  It was developed to run on
        the {INMOS} {transputer} but compilers are available for
        {VAX}, {Sun} and {Intel} {MDS}, inter alia.

        The basic entity in occam is the process of which there are
        four fundamental types, {assignment}, input, output, and wait.
        More complex processes are constructed from these using SEQ to
        specify sequential execution, PAR to specify parallel
        execution and ALT where each process is associated with an
        input from a channel.  The process whose channel inputs first
        is executed.  The fourth constructor is IF with a list of
        conditions and associated processes.  The process executed is
        the one with the first true condition in textual order.  There
        is no operator precedence.

        The original occam is now known as "occam 1".  It was extended
        to produce {occam 2}.

        {Simulator for VAX (ftp://watserv1.waterloo.edu/)}.

        Tahoe mailing list: <occam@sutcase.case.syr.edu>.

        [David May et al, 1982.  "Concurrent algorithms"].

        ["Occam", D. May, SIGPLAN Notices 18(4):69-79, 1983].

        (1994-11-18)

occam 2

        <language> An extension of {occam} produced in 1987.  Occam 2
        adds {floating-point}, functions and a type system.

        ["occam 2 Reference Manual", INMOS, P-H 1988, ISBN
        0-13-629312-3].

        (1994-11-18)

Occam's Razor

        <philosophy> The English philosopher, William of Occam
        (1300-1349) propounded Occam's Razor:

        Entia non sunt multiplicanda praeter necessitatem.

        (Latin for "Entities should not be multiplied more than
        necessary").  That is, the fewer assumptions an explanation of
        a phenomenon depends on, the better it is.

        For example, some claim that God caused himself to exist and
        also caused the universe to exist - he was the "first cause" -
        whereas Occam's Razor suggests that if one accepts the
        possibility of something causing itself then it is better to
        assume that it was the universe that caused itself rather than
        God because this explanation involves fewer entities.

        The negation of Occam's Razor would suggest that an
        arbitrarily complex explanation is just as good as the
        simplest one.  (E.g. God and his cat created a robot called
        Sparky who built the universe from parts bought from a shop in
        another dimension).

        See also {KISS Principle}.

        (1995-11-09)

occlude

        <programming> (Or "shadow") To make a variable inaccessible by
        declaring another with the same name within the {scope} of the
        first.

        (1995-12-14)

occurs check

        <programming> A feature of some implementations of
        {unification} which causes unification of a {logic variable} V
        and a structure S to fail if S contains V.

        Binding a variable to a structure containing that variable
        results in a cyclic structure which may subsequently cause
        unification to loop forever.  Some implementations use extra
        pointer comparisons to avoid this.

        Most implementations of {Prolog} do not perform the occurs
        check for reasons of efficiency.  Without occurs check the
        {complexity} of {unification} is

                O(min(size(term1), size(term2)))

        with occurs check it's

                O(max(size(term1), size(term2)))

        In {theorem proving} unification without the occurs check can
        lead to unsound inference.  For example, in {Prolog} it is
        quite valid to write

                X = f(X).

        which will succeed, binding X to a cyclic structure.  Clearly
        however, if f is taken to stand for a function rather than a
        {constructor}, then the above equality is only valid if f is
        the {identity function}.

        Weijland calls unification without occur check, "complete
        unification".  The reference below describes a complete
        unification algorithm in terms of Colmerauer's consistency
        algorithm.

        ["Semantics for Logic Programs without Occur Check",
        W.P. Weijland, Theoretical Computer Science 71 (1990) pp
        155-174].

        (1996-01-11)

OCL

        Operator Control Language.

        The {batch language} for the {IBM System/36}, used
        specifically with the {RPG II} {compiler}.

        See also {CL}.

        (1994-11-18)

OCLC

        {Online Computer Library Center}

OC-n

        {Optical Carrier n}

OCODE

        An {assembly language} for a {stack}-based {virtual machine},
        used as the {intermediate language} of the Cambridge {BCPL}
        compiler.

        ["The Portability of the BCPL Compiler", M. Richards, Soft
        Prac & Exp 1(2) (1971)].

        (1995-01-30)

OCP

        <processor> {Order Code Processor}.

OCR

        {Optical Character Recognition}

OCS

        {Object Compatibility Standard}

octal

        <mathematics> Base 8.  A number representation using the
        digits 0-7 only, with the right-most digit counting ones, the
        next counting multiples of 8, then 8^2 = 64, etc.  For
        example, octal 177 is digital 127:

                digit    weight        value
                  1     8^2 = 64   1* 64 = 64
                  7     8^1 =  8   7*  8 = 56
                  7     8^0 =  1   7*  1 =  7
                                          ---
                                          127

        Octal system used to be widespread back when many computers
        used 6-bit {bytes}, as a 6-bit byte can be conveniently
        written as a two-digit octal number.  Since nowadays a byte is
        almost always 8-bit long the octal system lost most of its
        appeal to the {hexadecimal} system.

        For a brief discussion on the word `octal' see {hexadecimal}.

        (1997-06-16)

octal forty

        <character> /ok'tl for'tee/ "I'm drawing a blank."

        {Octal} 40 (decimal 32) is the {ASCII} code for space
        character.  By an odd coincidence, {hex} 40 is the {EBCDIC}
        space character.

        See {wall}.

        (1995-03-06)

Octave

        <language> A high-level interactive language, like {MATLAB},
        primarily intended for numerical computations.  It provides a
        convenient command line interface for solving linear and
        nonlinear problems numerically.

        Octave can do arithmetic for real and complex scalars and
        matrices, solve sets of nonlinear algebraic equations,
        integrate functions over finite and infinite intervals, and
        integrate systems of ordinary differential and
        differential-algebraic equations.

        Octave has been compiled and tested with {g++} and libg++ on a
        {SPARCstation 2} running {SunOS} 4.1.2, an {IBM} {RS/6000}
        running {AIX} 3.2.5, {DEC Alpha} systems running {OSF}/1 1.3
        and 3.0, a {DECstation 5000}/240 running {Ultrix} 4.2a, and
        {Intel 486} systems running {Linux}.  It should work on most
        other {Unix} systems with {g++} and libg++.

        Distributed under the {GNU} {General Public License}.
        Requires {gnuplot}, {C++} compiler and {FORTRAN} compiler or
        {f2c} translator.

        Version: 1.1.1.

        {(ftp://ftp.che.utexas.edu/pub/octave/)} or your nearest {GNU
        archive site}.

        E-mail: <bug-octave@che.utexas.edu>.

        (1995-03-03)

octet

        <jargon, networking> Eight bits.  This term is used in
        networking, in preference to {byte}, because some systems use
        the term "byte" for things that are not 8 bits long.

        (1995-03-03)

octothorpe

        {hash}

OCX

        {OLE custom controls}

OD390

        <World-Wide Web> A {CICS} Web {interperter} from {IBM} used
        for application development involving web interfaces to {DB2}
        tables.

        (1998-06-21)

ODA

        {Open Document Architecture} (formerly Office
        Document Architecture).

ODBC

        {Open DataBase Connectivity}

ODC

        {Open Distributed Computing}

Ode

        An {Object-Oriented Database} from {AT&T} which extends {C++}
        and supports fast queries, complex application modeling and
        {multimedia}.

        Ode uses one integrated data model ({C++} {class}es) for both
        database and general purpose manipulation.  An Ode database is
        a collection of {persistent} {object}s.  It is defined,
        queried and manipulated using the language {O++}.  O++
        programs can be compiled with C++ programs, thus allowing the
        use of existing C++ code.  O++ provides facilities for
        specifying transactions, creating and manipulating persistent
        objects, querying the database and creating and manipulating
        versions.

        The Ode object database provides four object compatible
        mechanisms for manipulating and querying the database.  As
        well as O++ there are OdeView - an {X Window System}
        interface; OdeFS (a file system interface allowing objects to
        be treated and manipulated like normal Unix files); and CQL++,
        a {C++} variant of {SQL} for easing the transition from
        {relational database}s to OODBs such as Ode.

        Ode supports large objects (critical for {multimedia}
        applications).  Ode tracks the relationship between versions
        of objects and provides facilities for accessing different
        versions.  Transactions can be specified as read-only; such
        transactions are faster because they are not logged and they
        are less likely to {deadlock}.  'Hypothetical' transactions
        allow users to pose "what-if" scenarios (as with
        {spreadsheet}s).

        EOS, the {storage engine} of Ode, is based on a client-server
        architecture.  EOS supports {concurrency} based on
        {multi-granularity} two-version two-phase locking; it allows
        many readers and one writer to access the same item
        simultaneously.  Standard two-phase locking is also available.
        Ode supports both a {client-server} mode for multiple users
        with concurrent access and a single user mode giving improved
        performance.

        Ode 3.0 is currently being used as the {multimedia} {database
        engine} for {AT&T}'s {Interactive TV} project.  Ode 2.0 has
        also been distributed to more than 80 sites within AT&T and
        more than 340 universities.  Ode is available free to
        universities under a non-disclosure agreement.  The current
        version, 3.0, is available only for {Sun} {SPARCstations}
        running {SunOS} 4.1.3 and {Solaris} 2.3.  Ode is being ported
        to {Microsoft} {Windows NT}, {Windows 95} and {SGI}
        {platform}s.

        E-mail: Narain Gehani <nhg@research.att.com>.

        (1994-08-18)

ODI

        1. {Optical Digital Image}.

        2. {Open Data-link Interface}.

ODIF

        {Open Document Interchange Format}

ODMA

        {Open Document Management API}

ODMG

        {Object Data Management Group}

ODP

        {Open Distributed Processing}

ODSA

        {Open Distributed System Architecture}

ODT

        {Open Desktop}

OEM

        {original equipment manufacturer}

off-by-one error

        <programming> An exceedingly common error induced in many
        ways, such as by starting at zero when you should have started
        at one or vice-versa, or by writing "< N" instead of "<= N" or
        vice-versa.  Often confounded with {fencepost error}, which is
        properly a particular subtype of it.

        (1998-09-21)

Office

        {Microsoft Office}

Office By Example

        <language> (OBE) A sequel to {QBE}, described in publications
        by Moshe Zloof of {IBM} in the early 1980s but apparently
        never implemented.

        (1998-03-14)

Office Workstations Limited

        <company> (OWL) A UK software company, now a subsidiary of
        {Matsushita} (Panasonic, etc.).  They previously supported the
        {Guide} {hypertext} system but that support is now provided by
        US company {InfoAccess}.

        E-mail: <postmaster@owl-uk.owl-uk.co.uk>

        [Correct address?]

        (1996-01-15)

off-line

        <jargon> (Or "offline")

        1. Not directly connected to the computer (e.g., an off-line
        {tape drive}), or with connection suspended ("take the
        {printer} off-line").

        Contrast {background}, {on-line}.

        2. Not now or not here.  "Let's take this discussion
        off-line."  Specifically used on {Usenet} to suggest that a
        discussion be moved off a public {newsgroup} to {e-mail}.

        See also {off-line world}.

        (1996-02-02)

off-line world

        <jargon> A die-hard {nethead} term for non-computer-related
        experience.

        See also {big room}.

        ["Internet", Feb 1996].

        (1996-03-04)

off-side rule

        A lexical convention due to Landin, allowing the scope of
        declarations in a program to be expressed by indentation.  Any
        non-whitespace token to the left of the first such token on
        the previous line is taken to be the start of a new
        declaration.  Used in, for example, Miranda and Haskell.

        [P.J. Landin "The Next 700 Programming Languages", CACM vol 9
        pp157-165, March 1966]

off the trolley

        Describes the behaviour of a program that malfunctions and
        goes catatonic, but doesn't actually {crash} or abort.  See
        {glitch}, {bug}, {deep space}.

ogg

        <games> /og/ ({CMU}) 1. In the multi-player space combat game
        {Netrek}, to execute kamikaze attacks against enemy ships
        which are carrying armies or occupying strategic positions.
        Named during a game in which one of the players repeatedly
        used the tactic while playing Orion ship G, showing up in the
        player list as "Og".  This trick has been roundly denounced by
        those who would return to the good old days when the tactic of
        dogfighting was dominant, but as Sun Tzu wrote, "What is of
        supreme importance in war is to attack the enemy's strategy."
        However, the traditional answer to the newbie question "What
        does ogg mean?" is just "Pick up some armies and I'll show
        you."

        2. In other games, to forcefully attack an opponent with the
        expectation that the resources expended will be renewed faster
        than the opponent will be able to regain his previous
        advantage.  Taken more seriously as a tactic since it has
        gained a simple name.

        3. To do anything forcefully, possibly without consideration
        of the drain on future resources.  "I guess I'd better go ogg
        the problem set that's due tomorrow."  "Whoops!  I looked down
        at the map for a sec and almost ogged that oncoming car."

        (1995-01-31)

Ohm

        <unit> The {MKS} unit of electrical resistance.  One Ohm is
        the resistance of a conductor across which a {potential
        difference} of one {Volt} produces a {current} of one
        {Ampere}.

        [Who was Mr. Ohm?]

        (1998-02-27)

ohnosecond

        <unit, humour> (Presumably a play on "{nanosecond}") The
        miniscule time it takes to realize that you've just made a BIG
        mistake like typing rm -rf * in the wrong directory.

        Seen in Elizabeth P. Crowe's book, "The Electronic Traveller."

        (1998-08-27)

OIC

        <chat> oh, I see.

        (1998-01-18)

OID

        {object identifier}

-oid

        <jargon> (Suffix, from "android") 1. Used as in mainstream
        English to indicate a poor imitation, a counterfeit, or some
        otherwise slightly bogus resemblance.  Hackers will happily
        use it with all sorts of non-Greco/Latin stem words that
        wouldn't keep company with it in mainstream English.  For
        example, "He's a nerdoid" means that he superficially
        resembles a nerd but can't make the grade; a "modemoid" might
        be a 300-baud {modem} (Real Modems run at 144000 or up); a
        "computeroid" might be any {bitty box}.  The word "keyboid"
        could be used to describe a {chiclet keyboard}, but would have
        to be written; spoken, it would confuse the listener as to the
        speaker's city of origin.

        2. More specifically, an indicator for "resembling an android"
        which in the past has been confined to science-fiction fans
        and hackers.  It too has recently (in 1991) started to go
        mainstream (most notably in the term "trendoid" for victims of
        terminal hipness).  This is probably traceable to the
        popularisation of the term {droid} in "Star Wars" and its
        sequels.

        Coinages in both forms have been common in science fiction for
        at least fifty years, and hackers (who are often SF fans) have
        probably been making "-oid" jargon for almost that long
        [though GLS and ESR can personally confirm only that they were
        already common in the mid-1970s].

        (1999-07-10)

OIL

        1. ["The Architecture of the FAIM-1 Symbolic Multiprocessing
        System", A.  Davis et al, 9th Intl Joint Conf in Artif Intell,
        1985, pp.32-38].

        2. Operator Identification Language.  Used for {overloading}
        resolution by the {Eli} compiler-writing system.

OLAP

        {On-Line Analytical Processing}

OLC

        {On-Line Computer system}

OLDAS

        On-line Digital Analog Simulator.  An interactive version of
        {MIMIC}, for {IBM 360}.

        ["OLDAS: An On-line Continuous System Simulation Language",
        R.P. Cullen, in Interactive Systems for Experimental Applied
        Mathematics, A-P 1968].

old fart

        Tribal elder.  A title self-assumed with remarkable frequency
        by (especially) {Usenet}ters who have been programming for
        more than about 25 years; often appears in {sig block}s
        attached to {Jargon File} contributions of great archaeological
        significance.  This is a term of insult in the second or third
        person but one of pride in first person.

old talk

        <chat> The old implementations of {talk}.  See "{ntalk}" for
        details.

        (1997-09-11)

Old Testament

        [C programmers]  The first edition of {K&R}, the
        sacred text describing {Classic C}.

OLE

        {Object Linking and Embedding}

OLE custom controls

        <programming> (OCX) An {Object Linking and Embedding}
        (OLE) custom control allowing infinite extension of the
        {Microsoft Access} control set.  OCX is similar in purpose to
        {VBX} used in {Visual Basic}.  Available OCX's include "Scroll
        Bar Control", "Calendar Control", and "Data Outline Control".

        [Details?]

        (1995-12-05)

OLGA

        Ouf! un Langage pour les Grammaires Attribuees.

        Inria, 1985.  Language for specification of attribute
        grammars, used as the input language of the compiler writing
        system FNC-2.  Applicative, strongly typed, polymorphic,
        pattern-matching, modules.

Olivetti

        <company> A large Italian company producing office machinery,
        computers and printers.

        Olivetti took a controlling stake in {Acorn Computers} in
        September 1985.

        Olivetti computers were once marketed in USA with the ATT
        brand name.

        [Address?  Other products?]

        (1995-03-14)

O-Logic

        An {object-oriented} deductive language/database system.

OLTP

        {On-Line Transaction Processing}

OLWM

        {OpenLook Window Manager}

om

        <networking> The {country code} for Oman.

        (1999-01-27)

OMA

        Object Management Architecture.

        A set of standards under study by the {OMG}.

        (1994-11-11)

Omega

        1. <programming> A {prototype}-based {object-oriented}
        language from Austria.

        ["Type-Safe Object-Oriented Programming with Prototypes - The
        Concept of Omega", G. Blaschek, Structured Programming
        12:217-225, 1991].

        2. <text, tool> A successor to {TeX} extended to handle the
        {Unicode} character set.

        {(http://www.ens.fr/omega/)}.

        (1997-11-20)

Omega-algebraic

        In domain theory, a complete partial order is algebraic if
        every element is the lub of some chain of compact elements.
        If the set of compact elements is countable it is
        omega-algebraic.  Usually written with a Greek letter omega
        ({LaTeX} \omega).

        (1995-02-03)

Omega test

        The Omega test is a system written by William Pugh
        <pugh@cs.umd.edu> and others for performing symbolic
        manipulations of {conjunction}s of {linear constraint}s over
        integer variables.  The Omega test dependence analyser is a
        system built on top of the Omega test to analyse {array} data
        dependences.

        Version 3.2.2 includes a fortran to tiny translator, a Tiny
        interpreter(?) and analysis tools.

        {(ftp://ftp.cs.umd.edu/pub/omega)}.  E-mail: <omega@cs.umd.edu>.

        (1992-11-13)

OMF

        Object Management Facility.

        Part of the {DAA} proposed by {Hewlett-Packard} and {Sun}.

OMG

        {Object Management Group}

OMNICODE

        Thompson, 1956.  Ran on IBM 650.

        [Sammet 1969, p. 5].

OMNIFAX

        Alternate name for NYU OMNIFAX?  Early system on UNIVAC I or
        II.  Listed in CACM 2(5):16 (May 1959).

OMNITAB

        Statistical analysis and desk calculator.  Version: OMNITAB
        II.

        ["OMNITAB II User's Reference Manual", NBS Tech Note 552 (Oct
        1971).  Sammet 1969, pp. 296-299].

OMR

        {Optical Mark Reader}

OMS

        {Opportunity Management System}

OMT

        {Object Modelling Technique}

OMTool

        A graphical tool from General Electric Advanced Concepts
        Center for design and analysis of systems with the {OMT}
        methodology.  Generates {C++} and {SQL} code.

ONC

        {Open Network Computing}

Ondine

        ["Concurrency Introduction to an Object-Oriented Language
        System Ondine", T. Ogihara et al, 3rd Natl Conf Record A-5-1,
        Japan Soc for Soft Sci Tech, Japan 1986].

one-banana problem

        At mainframe shops, where the computers have operators for
        routine administrivia, the programmers and hardware people
        tend to look down on the operators and claim that a trained
        monkey could do their job.  It is frequently observed that the
        incentives that would be offered said monkeys can be used as a
        scale to describe the difficulty of a task.  A one-banana
        problem is simple; hence, "It's only a one-banana job at the
        most; what's taking them so long?"

        At IBM, folklore divides the world into one-, two-, and
        three-banana problems.  Other cultures have different
        hierarchies and may divide them more finely; at ICL, for
        example, five grapes (a bunch) equals a banana.  Their upper
        limit for the in-house {sysape}s is said to be two bananas and
        three grapes (another source claims it's three bananas and one
        grape, but observes "However, this is subject to local
        variations, cosmic rays and ISO").  At a complication level
        any higher than that, one asks the manufacturers to send
        someone around to check things.

        See also {Infinite-Monkey Theorem}.

one-line fix

        Used (often sarcastically) of a change to a program that is
        thought to be trivial or insignificant right up to the moment
        it crashes the system.  Usually "cured" by another one-line
        fix.  See also {I didn't change anything!}

one-liner wars

        <games> A game popular among hackers who code in the language
        APL (see {write-only language} and {line noise}).  The
        objective is to see who can code the most interesting and/or
        useful routine in one line of operators chosen from APL's
        exceedingly {hairy} primitive set.  A similar amusement was
        practiced among {TECO} hackers and is now popular among {Perl}
        aficionados.

        Ken Iverson, the inventor of APL, has been credited with a
        one-liner that, given a number N, produces a list of the
        prime numbers from 1 to N inclusive.  It looks like this:

          (2 = 0 +.= T o.| T) / T <- iN

        where "o" is the APL null character, the assignment arrow is a
        single character, and "i" represents the APL iota.

ones complement

        A system used in some computers to represent negative
        numbers. To negate a number, each bit of the number is
        inverted (zeros are replaced with ones and vice versa).  This
        has the consequence that there are two reperesentations for
        zero, either all zeros or all ones.

                ...
                000...00011 = +3
                000...00010 = +2
                000...00001 = +1
                000...00000 = +0
                111...11111 = -0
                111...11110 = -1
                111...11101 = -2
                111...11100 = -3
                ...

        Naive logic for ones complement addition might easily conclude
        that -0 + 1 = +0.

        The {twos complement} avoids this by using all ones to
        represent -1.

One Time Programmable Read Only Memory

        <storage> (OTPROM, EPROM OTP) A kind of storage device like an
        {EPROM} but with no quartz glass window in the package for
        erasing the contents.  This reduces the packaging cost but
        means the device cannot be erased with UV and so can only be
        written once.  Erasure is possible, but expensive, with
        X-rays.

        (1995-04-22)

one-way hash function

        <algorithm> (Or "message digest function") A function which
        takes a variable-length message and produces a fixed-length
        hash.  Given the hash it is computationally impossible to find
        a message with that hash; in fact one can't determine any
        usable information about a message with that hash, not even a
        single bit.  For some one-way hash functions it's also
        computationally impossible to determine two messages which
        produce the same hash.

        A one-way hash function can be private or public, just like an
        {encryption} function.  {MD5} and {Snefru} are examples of
        public one-way hash functions.

        A public one-way hash function can be used to speed up a
        public-key {digital signature} system.  Rather than sign a
        long message which can take a long time, compute the one-way
        hash of the message, and sign the hash.

        {sci.crypt FAQ
        (ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.crypt/)}.

        (1995-02-16)

on-line

        <jargon> 1. Ready for use.  E.g. "The graph plotter's fixed
        and on-line again".

        2. {Interactive} as opposed to {batch}.  Accessible via a
        computer (or {terminal}), rather than on paper or other
        medium.

        3. Of a user, actively using a computer system, especially the
        {Internet}.  E.g "I haven't been on-line for three days."

        "On-line" should be hyphenated because it is compounded from
        two words but the hyphen is often omitted in names of
        organisations or services.

        (1998-12-22)

On-Line Analytical Processing

        <database> (OLAP) A category of {database} software which
        provides an interface such that users can transform or limit
        raw data according to user-defined or pre-defined functions,
        and quickly and interactively examine the results in various
        dimensions of the data.

        OLAP primarily involves aggregating large amounts of diverse
        data.  OLAP can involve millions of data items with complex
        relationships.  Its objective is to analyze these
        relationships and look for patterns, trends, and exceptions.

        The term was originally coined by {Dr. Codd} in 1993 with 12
        "rules".  Since then, the {OLAP Council}, many vendors, and
        Dr. Codd himself have added new requirements and confusion.

        Richard Creeth and Nigel Pendse define OLAP as fast analysis
        of shared multidimensional information.  Their definition
        requires the system to respond to users within about five
        seconds.  It should support logical and statistical processing
        of results without the user having to program in a {4GL}.  It
        should implement all the security requirements for
        confidentiality and concurrent update locking.  The system
        must provide a multidimensional conceptual view of the data,
        including full support for multiple hierarchies.  Other
        aspects to consider include data duplication, {RAM} and disk
        space requirements, performance, and integration with {data
        warehouses}.

        {The OLAP Council (http://www.olapcouncil.org/)}.

        {(http://www.access.digex.net/~grimes/olap/)}.

        {Usenet} newsgroup: {news:comp.databases.olap}.

        {(http://www.arborsoft.com/papers/finkTOC.html)}.

        [What's a "multidimensional conceptual view"?]

        (1996-09-24)

Online Computer Library Center, Inc.

        (OCLC) A nonprofit membership organisation offering
        computer-based services and research to libraries, educational
        organisations, and their users.  OCLC operates the PRISM
        service for cataloging and resource sharing, provides on-line
        reference systems for both librarians and end-users, and
        distributes on-line electronic journals.

        OCLC's goals are to increase the availability of library
        resources and reduce library costs for the fundamental public
        purpose of furthering access to the world's information.

        The OCLC library information network connects more than 10,000
        libraries worldwide.  Libraries use the OCLC System for
        cataloguing, interlibrary loan, collection development,
        bibliographic verification, and reference searching.  Their
        most visible feature is the OCLC Online Union Catalog (OLUC).

        {(http://www.oclc.org/)}

        Address: (North America) National Sales Division, OCLC Online
        Computer Library Center, Inc., 6565 Frantz Road, Dublin, Ohio
        43017-3395 USA.  Tel: 1-800-848-5878.  Fax: 1-614-764-6096.

        (Europe, Middle East, Africa) OCLC Europe, 7th Floor, Tricorn
        House, 51-53 Hagley Road, Birmingham B16 8TP, UK.  Tel: +44
        (0)121 456 4656.  Fax: +44 (0)121 456 4680.

        (Asia, Pacific) 6565 Frantz Road, Dublin, Ohio 43017-3395 USA.
        Tel: 1-614-764-6189.  Fax: 1-614-764-4331.  E-mail:
        <asia_pacific_services@oclc.org>.

        (1994-11-11)

On-Line Computer system

        (OLC) A predecessor of the {Culler-Fried System} from {UCSB}
        ca. 1966.

        [Sammet 1969, p.253].

        (1995-11-25)

Online Media

        <company> A company formed by {Acorn Computer Group} plc to
        exploit the {ARM} RISC in television {set-top box} decoders.
        They are wooing {British Telecommunications} plc to use the
        box in some of its {video on demand} trials.

        The box will be based on an {ARM8} core with additional
        circuits to enable {MPEG} to be decoded in software - possibly
        dedicated instructions for interpolation, inverse {DCT} or
        {Huffman} table extraction.  They have already moved audio
        {MPEG} to sillicon.  The box will use Acorn's {RISC OS}
        {operating system} as the control environment and is also
        looking at putting {Oracle} and {Microword} on it.  Online
        will reduce component numbers and therefore cost by
        transferring functions presently on boards into the single
        RISC chip.

        The interactive set-top boxes are not limited to the
        television - personal computer videoconferencing and extended
        networking are being developed.  Acorn already has
        partnerships with {Bell Northern Research} and {Northern
        Telecom} Limited, News International, Alcatel NV and its
        majority shareholder Ing C {Olivetti} & Co SpA.

        The company is presently wholly owned by Acorn, but eventually
        expects to bring in external investment.  Online will start a
        four phase trial in Cambridge with Cambridge Cable Co,
        Advanced Telecommunications Modules Ltd. - the Hermann Hauser
        company promising super-cheap Asynchronous Transfer Mode - and
        Anglia Television, later this year.

        [Article by nobody@tandem.com cross-posted from
        tandem.news.computergram, 1994-07-7].

        (1997-05-14)

Online Public Access Catalog

        <library> (OPAC) A computerised system to catalogue and
        organise materials in a library (the kind that contains
        books).  OPACs have replaced card-based catalogues in many
        libraries.  An OPAC is available to library users (public
        access).

        (1997-05-14)

On-Line Transaction Processing

        <database> (OLTP) The processing of transactions by computers
        in real time.

        [Details?  Products?]

        (1997-05-14)

Ontic

        <language> {Object-oriented} language for an {inference
        system} with a {Lisp}-like appearance, but based on set
        theory.

        ["Ontic: A Knowledge Representation System for Mathematics",
        D.A. McAllester, MIT Press 1989].

        (1996-06-24)

onto

        {surjection}

ontology

        1. <philosophy> A systematic account of Existence.

        2. <artificial intelligence> (From philosophy) An explicit
        formal specification of how to represent the objects, concepts
        and other entities that are assumed to exist in some area of
        interest and the relationships that hold among them.

        For {AI} systems, what "exists" is that which can be
        represented.  When the {knowledge} about a {domain} is
        represented in a {declarative language}, the set of objects
        that can be represented is called the {universe of discourse}.
        We can describe the ontology of a program by defining a set of
        representational terms.  Definitions associate the names of
        entities in the {universe of discourse} (e.g. classes,
        relations, functions or other objects) with human-readable
        text describing what the names mean, and formal {axioms} that
        constrain the interpretation and well-formed use of these
        terms.  Formally, an ontology is the statement of a {logical
        theory}.

        A set of {agents} that share the same ontology will be able to
        communicate about a domain of discourse without necessarily
        operating on a globally shared theory.  We say that an agent
        commits to an ontology if its observable actions are
        consistent with the definitions in the ontology.  The idea of
        ontological commitment is based on the {Knowledge-Level}
        perspective.

        3. <information science> The hierarchical structuring of
        knowledge about things by subcategorising them according to
        their essential (or at least relevant and/or cognitive)
        qualities.  See {subject index}.  This is an extension of the
        previous senses of "ontology" (above) which has become common
        in discussions about the difficulty of maintaining {subject
        indices}.

        (1997-04-09)

OnX

        A graphics package from LAL Orsay.

OO

        {object-oriented}

OOA

        {object-oriented analysis}

OOD

        {object-oriented design}

OODB

        {object-oriented database}

OODBMS

        {object-oriented database management system}

OOF

        {Object-Oriented} {Fortran}.  Data items can be grouped into
        objects, which can be instantiated and executed in parallel.
        Available for {Sun}, {Iris}, {iPSC}, soon for {nCUBE}.
        E-mail: <dreese@erc.msstate.edu>.

OOGL

        Object-Oriented Graphics Language.  1970's.

OOP

        {object-oriented programming}

OOPL

        {object-oriented programming language}

OOPS

        "OOPS: A Knowledge Representation Language", D. Vermeir, Proc
        19th Intl Hawaii Conf on System Sciences, IEEE (Jan 1986)
        pp.156-157.

OOPSLA

        Conference on Object-oriented Programming Systems, Languages
        and Applications.

OOSD

        Object-oriented structured design: a design method elaborated
        from structured design and incorporating the essential
        features of the object-oriented approach.

OOZE

        Object oriented extension of Z.  "Object Orientation in Z", S.
        Stepney et al eds, Springer 1992.

op

        <job> /op/ 1. In England and Ireland, a common verbal
        abbreviation for "operator", as in {system operator}.  This is
        less common in the US, where {sysop} seems to be preferred.

        2. The general term for an {IRC} {channel op}.  Also, as a
        verb: to give someone {channel op} privileges.  Compare
        {ircop}.

        (1997-12-12)

OPAC

        {Online Public Access Catlog}

Opal

        1. A {DSP} language.

        ["OPAL: A High Level Language and Environment for DSP boards
        on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989].

        2. The language of the {object-oriented database} {GemStone}.

        ["Making Smalltalk a Database System", G. Copeland et al, Proc
        SIGMOD'84, ACM 1984, pp.316- 325].

        3. A {simulation} language with provision for {stochastic
        variable}s.  An extension of {Autostat}.

        ["C-E-I-R OPAL", D. Pilling, Internal Report,
        C.E.I.R. Ltd. (1963)].

        4. A language for compiler testing said to be used internally
        by {DEC}.

        5. A {functional programming} language designed at the
        {Technische Universitaet Berlin} as a testbed for the
        development of {functional program}s.  OPAL integrates
        concepts from Algebraic Specification and Functional
        Programming, which favour the (formal) development of (large)
        production-quality software written in a {purely functional}
        style.

        The core of OPAL is a {strongly typed}, {higher-order},
        {strict} applicative language which belongs to the tradition
        of {Hope} and {ML}.  The algebraic flavour of OPAL is visible
        in the syntactical appearance and in the preference of
        {parameterisation} to {polymorphism}.

        OPAL supports: {information hiding} - each language unit is
        divided into an interface (signature) and an implementation
        part; selective import; {parameterised module}s; free
        constructor {views} on {sorts}, which allow pattern-based
        function definitions despite quite different implementations;
        full {overloading} of names; puristic scheme language with no
        {built-in} data types (except {Boolean}s and denotations).

        OPAL and its predecessor OPAL-0 have been used for some time
        at the Technische Universitaet Berlin in CS courses and for
        research into optimising compilers for applicative languages.
        The OPAL compiler itself is writte entirely in OPAL.

        An overview is given in "OPAL: Design And Implementation of an
        Algebraic Programming Language".

        {Home (http://www.cs.tu-berlin.de/~opal/)}

        {(ftp://ftp.cs.tu-berlin.de/pub/local/uebb/papers/DesignImplOpal.ps.gz)
}.

        (1995-02-16)

op code

        {instruction mnemonic}

open

        1. To prepare to read or write a file.  This usually involves
        checking whether the file already exists and that the user has
        the necessary authorisation to read or write it.  The result
        of a successful open is usually some kind of {capability}
        (e.g. a {Unix} {file descriptor}) - a token that the user
        passes back to the system in order to access the file without
        further checks and finally to close the file.

        2. Abbreviation for "open (or left) parenthesis" - used when
        necessary to eliminate oral ambiguity.  To read aloud the LISP
        form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun
        foo, open eks close, open, plus eks one, close close."

        3. Non-proprietary.  An open {standard} is one which can be
        used without payment.

        (1995-01-31)

open box testing

        {white box testing}

open/closed principle

        <programming, theory> A principle used in {OOPL} which states
        that a {class} must be open and closed where open means it has
        the ability to be extended and closed means it cannot be
        modified other than by extension.

        The idea is that once a class has been approved for use having
        gone through code reviews, unit tests, and other qualifying
        procedures, you don't want to change the class very much, just
        extend it.  In practice the open/closed principle simply means
        making good use of {abstraction} and {polymorphism}.

        (1997-09-23)

open-collar worker

        <job> Someone who works at home or telecommutes.

        (1997-04-17)

Open DataBase Connectivity

        <standard, database> (ODBC) A {standard} for accessing
        different {database} systems.  There are interfaces for
        {Visual Basic}, {Visual C++}, {SQL} and the ODBC driver pack
        contains drivers for the {Access}, {Paradox}, {dBase}, Text,
        {Excel} and {Btrieve} databases.

        An application can submit statements to ODBC using the ODBC
        flavor of SQL.  ODBC then translates these to whatever flavor
        the database understands.

        ODBC 1.0 was released in September 1992.

        ODBC is based on {Call-Level Interface} and was defined by the
        {SQL Access Group}.  {Microsoft} was one member of the group
        and was the first company to release a commercial product
        based on its work (under {Microsoft Windows}) but ODBC is not
        a Microsoft standard (as many people believe).

        ODBC drivers and development tools are available now for
        {Microsoft Windows}, {Unix}, {OS/2}, and {Macintosh}.

        [On-line document?]

        ["Unix Review", Aug 1995].

        (1996-05-27)

Open Data-link Interface

        <networking, standard> (ODI) A {Novell}-developed {network
        card} {API} that provides media and {protocol} independence.
        It allows the sharing of a single card by multiple {transport
        layer} {protocol}s and resolves conflicts.

        (1995-03-13)

Open DeathTrap

        <abuse> An abusive hackerism for the {Santa Cruz Operation}'s
        {Open DeskTop}.  The funniest part is that this was coined by
        SCO's own developers.

        Compare {AIDX}, {Macintrash} {Nominal Semidestructor},
        {ScumOS}, {sun-stools}, {HP-SUX}.

        (1995-02-02)

Open Desktop

        <operating system, product> A {Motif}-based graphical
        interface from the {Santa Cruz Operation} (SCO), built over
        their {Unix} environment, part of the {ACE} initiative.

        Also known as "{Open DeathTrap}".

        (1995-02-02)

Open Distributed Processing

        <standard> (ODP) An attempt to standardise an {OSI}
        {application layer} communications architecture.  ODP is a
        natural progression from {OSI}, broadening the target of
        standardisation from the point of interconnection to the end
        system behaviour.  The objective of ODP is to enable the
        construction of {distributed system}s in a multi-vendor
        environment through the provision of a general architectural
        framework that such systems must conform to.  One of the
        cornerstones of this framework is a model of multiple
        viewpoints which enables different participants to observe a
        system from a suitable perspective and a suitable level of
        {abstraction}.

        (1995-03-10)

Open Distributed System Architecture

        (ODSA) A research program sponsored by the UK Department of
        Trade and Industry and the Engineering and Physical Sciences
        Research Council.

        [Details?]

        (1995-02-09)

OpenDoc

        <operating system> A compound document architecture from {CIL}
        based on {CORBA}.  It aims to enable embedding of features
        from different {application program}s into a single working
        document.

        (1997-02-21)

Open Document Architecture

        <standard> (ODA) {ISO} {standard} (8613) for describing
        documents.  It allows text, graphics, and facsimile documents
        to be transferred between different systems.

        {ODIF} is part of ODA.

        (1995-03-03)

Open Document Interchange Format

        <standard> (ODIF) Part of the {ODA} standard.

        (1996-10-16)

Open Document Management API

        <text, standard> An open standard allowing desktop
        applications to interface with {document management systems}.

        {(http://www.activedoc.com)}

        (1997-07-04)

OpenGL

        {Open Graphics Library}

Open Graphics Library

        <graphics, library> (OpenGL) A multi-{platform} software
        interface to graphics hardware, supporting {rendering} and
        {imaging} operations.  The OpenGL interface was developed by
        {Silicon Graphics}, who license it to other vendors.

        The OpenGL graphics interface consists of several hundred
        functions operating on 2D and 3D objects, supporting basic
        techniques, such as {modelling} and {smooth shading}, and
        advanced techniques, such as {texture mapping} and {motion
        blur}.  Many operations require a {frame buffer}.  OpenGL is
        {network-transparent}, and a common extension to the {X Window
        System} allows an OpenGL {client} to communicate across a
        network with a different vendor's OpenGL {server}.

        OpenGL is based on Silicon Graphics' proprietary {IRIS GL}.

        {OpenGL WWW Center (http://www.sgi.com/Technology/openGL/)}.

        {Mesa GL (http://www.ssec.wisc.edu/~brianp/Mesa.html)} (PD
        implementation).

        (1996-09-30)

OpenInsight

        <programming, database> The {workflow}-enabled {Windows
        95}/{Windows NT} version of {Advanced Revelation}, featuring
        native support for {Lotus Notes}, {Microsoft SQL Server},
        {Oracle} and {ODBC}.  OpenInsight is available from
        {Revelation Software}.

        (1997-04-25)

Open Look

        <operating system> A {graphical user interface} and {window
        manager} from {Sun} and {AT&T}.

        {Usenet} newsgroup: {news:comp.graphics.openlook}.

        (1995-06-11)

Open Network Computing

        (ONC) {Sun}'s {network} {protocols}.

        [more detail?]

Open Prolog

        {Prolog} for the {Macintosh} by Michael Brady
        <brady@cs.tcd.ie>.

        {(ftp://grattan.cs.tcd.ie/languages/open-prolog/)}.
        {(ftp://aisun1.ai.uga.edu/ai.prolog/)}.

        (1994-10-27)

Open Scripting Architecture

        (OSA) A {CIL} approach to the coexistence of multiple
        scripting systems.

        (1995-03-10)

Open Shortest-Path First

        {Open Shortest-Path First Interior Gateway Protocol}

Open Shortest-Path First Interior Gateway Protocol

        <networking, protocol, standard> (OSPF) A {link state routing
        protocol}, as opposed to a {distance vector routing protocol}.
        It is one of the {Internet} standard {Interior Gateway
        Protocols} defined in {RFC 1247}.

        See also {Information Protocol}.

        {OSPF Design Guide
        (http://www.cisco.com/warp/public/104/1.html)}.

        [Is there an OSPF EGP?]

        (1997-03-01)

Open Software Foundation

        <body> (OSF) A foundation created by nine computer vendors,
        ({Apollo}, {DEC}, {Hewlett-Packard}, {IBM}, {Bull}, {Nixdorf},
        {Philips}, {Siemens} and {Hitachi}) to promote "Open
        Computing".  It is planned that common {operating system}s and
        interfaces, based on developments of {Unix} and the {X Window
        System} will be forthcoming for a wide range of different
        hardware architectures.  OSF announced the release of the
        industry's first open {operating system} - OSF/1 on 23 October
        1990.

        (1994-11-23)

OpenStep

        <operating system> An {object-oriented} {application
        programming interface} (API) derived from {NEXTSTEP} and
        proposed as an {open standard} by {NeXT} in 1994.

        OpenStep was designed to be implemented independently of the
        computer's operating system, hardware, and user interface.
        The {API} for {Rhapsody} will be a superset of {OpenStep}'s.

        When the OpenStep {API} is implemented for a specific platform
        and made into a product, it is written in uppercase,
        e.g. OPENSTEP Developer 4.2 for Mach, or OPENSTEP Enterprise
        for {Windows NT} and {Windows 95}.  Versions of OPENSTEP exist
        for Windows 95/NT, Solaris, HP/UX, and Mach.

        (1997-10-15)

open switch

        ({IBM}, probably from railways) An unresolved question, issue,
        or problem.

        (1994-11-11)

Open Systems Interconnect

        <networking> (OSI-RM, OSI Reference Model, seven layer model)
        A model of network architecture and a suite of {protocols} (a
        {protocol stack}) to implement it, developed by {ISO} in 1978
        as a framework for international {standards} in heterogeneous
        computer {network} architecture.

        The OSI architecture is split between seven {layers}, from
        lowest to highest: 1 {physical layer}, 2 {data link layer}, 3
        {network layer}, 4 {transport layer}, 5 {session layer}, 6
        {presentation layer}, 7 {application layer}.

        Each layer uses the layer immediately below it and provides a
        service to the layer above.  In some implementations a layer
        may itself be composed of sub-layers.

        OSI is the umbrella name for a series of non-proprietary
        protocols and specifications, comprising, among others, the
        OSI Reference Model, ASN.1 ({Abstract Syntax Notation 1}), BER
        ({Basic Encoding Rules}), {CMIP} and {CMIS} (Common Management
        Information Protocol and Services), {X.400} (Message Handling
        System, or MHS), {X.500} (Directory Service), {Z39.50} (search
        and retrieval protocol used by {WAIS}), and many others.

        (1997-12-07)

Open Systems Interconnection

        {Open Systems Interconnect}

Open University

        <education, body> (OU) The UK distance-learning organisation,
        established in 1969.  It teaches degree-level courses in many
        subjects via BBC radio and television broadcasts and summer
        schools.

        {(http://hcrl.open.ac.uk/ou/ouhome.html)}.

        (1999-07-13)

OpenVMS

        {Virtual Memory System}

OpenWindows

        <operating system> A {graphical user interface} {server} for
        {Sun} {workstation}s which handles {SunView}, {NeWS} and {X
        Window System} protocols.

        (1995-06-11)

operand

        <programming> An {argument} of an {operator} or of a {machine
        language} instruction.

        (1995-08-18)

operating system

        <operating system> (OS) The low-level software which handles
        the interface to peripheral hardware, schedules tasks,
        allocates storage, and presents a default interface to the
        user when no {application program} is running.

        The OS may be split into a {kernel} which is always present
        and various system programs which use facilities provided by
        the kernel to perform higher-level house-keeping tasks, often
        acting as {servers} in a {client-server} relationship.

        Some would include a {graphical user interface} and {window
        system} as part of the OS, others would not.  The {operating
        system loader}, {BIOS}, or other {firmware} required at {boot
        time} or when installing the operating system would generally
        not be considered part of the operating system, though this
        distinction is unclear in the case of a {rommable operating
        system} such as {RISC OS}.

        The facilities an operating system provides and its general
        design philosophy exert an extremely strong influence on
        programming style and on the technical cultures that grow up
        around the machines on which it runs.

        Example operating systems include {386BSD}, {AIX}, {AOS},
        {Amoeba}, {Angel}, {Artemis microkernel}, {BeOS}, {Brazil},
        {COS}, {CP/M}, {CTSS}, {Chorus}, {DACNOS}, {DOSEXEC 2},
        {GCOS}, {GEORGE 3}, {GEOS}, {ITS}, {KAOS}, {Linux}, {LynxOS},
        {MPV}, {MS-DOS}, {MVS}, {Mach}, {Macintosh operating system},
        {MINIX}, {Multics}, {Multipop-68}, {Novell NetWare}, {OS-9},
        {OS/2}, {Pick}, {Plan 9}, {QNX}, {RISC OS}, {STING}, {System
        V}, {System/360}, {TOPS-10}, {TOPS-20}, {TRUSIX}, {TWENEX},
        {TYMCOM-X}, {Thoth}, {Unix}, {VM/CMS}, {VMS}, {VRTX}, {VSTa},
        {VxWorks}, {WAITS}, {Windows 3.1}, {Windows 95}, {Windows 98},
        {Windows NT}.

        {FAQ
        (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.os.research)}.

        {Usenet} newsgroup: {news:comp.os.research}.

        (1999-06-09)

Operating System/Multiprogramming of Fixed Tasks

        <operating system> (OS/MFT) One of the {IBM} {operating
        systems} associated with the {IBM 360}, released in 1966 and
        targetted at mid-range {IBM 360} users (typically 360/40,
        360/50).  OS/MFT was the juinior member of the main 'OS'
        series of IBM operating systems, the other being {OS/MVT}.
        Smaller 360 mainframes used {DOS}.

        OS/MFT shared {JCL} and utilities with OS/MVT but allocated
        memory differently.  In OS/MFT, partitions of memory were of a
        fixed number and size, specified by the generation and
        configuration of the operating system.  As this class of
        mainframe had typically less than 512K of main memory,
        partitions tended to be about 128K.

        With the advent of {Virtual Storage} and the {System 370}'s
        {Dynamic Address Translation} (DAT), OS/MFT was improved to
        become {OS/VS1}, taking account of virtual storage in a single
        partition up to 16MB.

        (1999-01-22)

operational database

        <database> A {database} containing up-to-date, modifiable
        data, in contrast to a {decision support database}.

        (1995-02-14)

operational requirements

        <programming> Qualitative and quantitative parameters that
        specify the desired capabilities of a system and serve as a
        basis for determining the operational effectiveness and
        suitability of a system prior to deployment.

        (1997-01-07)

operational semantics

        <theory> A set of rules specifying how the state of an actual
        or hypothetical computer changes while executing a program.
        The overall state is typically divided into a number of
        components, e.g. {stack}, {heap}, {register}s etc.  Each rule
        specifies certain preconditions on the contents of some
        components and their new contents after the application of the
        rule.

        It is similar in spirit to the notion of a {Turing machine},
        in which actions are precisely described in a mathematical
        way.

        Compuare {axiomatic semantics}, {denotational semantics}.

        (1996-08-21)

operational test and evaluation

        <testing> (OT&E) Formal testing conducted prior to deployment
        to evaluate the operational effectiveness and suitability of
        the system with respect to its mission.

        (1997-01-07)

operational testing

        <testing> A US DoD term for testing performed by the
        {end-user} on software in its normal operating environment.

        (1997-01-07)

operation code

        <programming> (Or "op code") The part or parts of a {machine
        language} instruction which determines what kind of action the
        computer should take, e.g. add, jump, load, store.  In any
        particular {instruction set} certain fixed bit positions
        within the instruction word contain the op code, others give
        {parameters} such as the addresses or {registers} involved.
        For example, in a 32-bit instruction the most significant
        eight bits might be the op code giving 256 possible
        operations.

        For some instruction sets, certain values in the fixed bit
        positions may select a group of operations and the exact
        operation may depend on other bits within instruction word or
        subsequent words.

        When programming in {assembly language}, the op code is
        represented by a readable name called an {instruction
        mnemonic}.

        (1997-02-14)

operator

        <programming> A symbol used as a {function}, with {infix
        syntax} if it has two arguments (e.g. "+") or {prefix syntax} if
        it has only one (e.g. {Boolean} NOT).  Many languages use
        operators for built-in functions such as arithmetic and logic.

        (1995-04-30)

operator overloading

        {overloading}

Opportunity Management System

        <business> (OMS) A system that stores sales opportunities and
        related information.  Each sales lead can be tracked with
        information such as source, type, worth, status, likelihood of
        closure etc.

        An OMS can perform other related tasks such as prioritising
        sales calls and generating analyses that assist the fine-tuning
        of marketing strategies.

        See also {Customer Relationship Management}.

        (1999-08-20)

OPS

        1. On-line Process Synthesizer.  M. Greenberger, MIT ca. 1964.
        Discrete simulation under CTSS.  Sammet 1969, p.660.
        Versions: OPS-3, OPS-4.  "On- line Computation and Simulation:
        The OPS-3 System", M. Greenberger et al, MIT Press 1965.

        2. Official Production System.  CMU, 1970.  The first
        production-system (i.e. rule-based) programming language, used
        for building expert systems.  Written originally in {Franz
        Lisp}, later ported to other LISP dialects.

OPS5

        <language> A programming language for rule-based {production
        system}s.  A rule consists of pre-condition(s) and a resulting
        action.

        The system checks its working memory to see if there are rules
        whose pre-conditions are satisfied, if so, the action in one
        selected satisfied rule is executed.

        There is a {public domain} implementation of an OPS5
        {interpreter} written by Charles L. Forgy <forgy@cs.cmu.edu>
        in 1977.  It was first implemented in {Lisp} and later in
        {BLISS}.  It was also ported to {Common Lisp} by George Wood
        and Jim Kowalski.

        {CLIPS} is a language for writing {expert system}s, with some
        of the capabilities of OPS5.

        See also {C5}, {OPS83}, {OPS4}, {OPS5+}, {OPS83}.

        Inference Engine Tech, Cambridge MA.

        {An OPS5 interpreter in Common LISP
        (ftp://ftp.wustl.edu/mirrors/Unix-c/languages/ops5)}.

        {A version by Mark Kantrowitz
        (ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/mkant/Public/Lisp/)}
        <mkant+@cs.cmu.edu>.

        ["Programming Expert Systems in OPS5", L. Brownston et al, A-W
        1985].

        ["An OPS5 Primer", Sherman et al, comes with OPS5 for DOS].

        ["Rule-Based Programming in the Unix System", G.T. Vesonder,
        AT&T Tech J 67(1), 1988].

        (1995-08-18)

OPS83

        A commercial version of {OPS5}.

Optical Carrier 12

        <networking> (OC-12) A {SONET} rate of 12 * 51.84 = 622.08
        {megabits} per second.

        [Matches {STS-12}]?

        (1997-05-26)

Optical Carrier 3

        <networking> (OC-3) A {SONET} rate of 3 * 51.84 = 155.52
        {megabits} per second, which matches {STS-3}.

        (1997-02-05)

Optical Carrier 48

        <networking> (OC-48) A {SONET} rate of 48 * 51.84 = 2488.32
        {megabits} per second.

        [Matches {STS-48}]?

        (1997-05-26)

Optical Carrier n

        <networking> (OC-n) A {SONET} rate of n times 51.84 {megabits}
        per second.

        (1997-02-05)

Optical Character Recognition

        <text> (OCR, sometimes /oh'k*/) Recognition of printed or
        written characters by computer.  Each page of text is
        converted to a digital using a {scanner} and OCR is then
        applied to this image to produce a text file.  This involves
        complex {image processing} {algorithms} and rarely achieves
        100% accuracy so manual proof reading is recommended.

        (1999-08-26)

optical diff

        {vdiff}

optical fiber

        {optical fibre}

optical fibre

        <communications> (fibre optics, FO, US "fiber", light pipe) A
        plastic or glass (silicon dioxide) fibre no thicker than a
        human hair used to transmit information using infra-red or
        even visible light as the carrier (usually a laser).  The
        light beam is an electromagnetic signal with a frequency in
        the range of 10^14 to 10^15 Hertz.

        Optical fibre is less susceptible to external noise than other
        transmission media, and is cheaper to make than copper wire,
        but it is much more difficult to connect.  Optical fibres are
        difficult to tamper with (to monitor or inject data in the
        middle of a connection), making them appropriate for secure
        communications.  The light beams do not escape from the medium
        because the material used provides total internal reflection.

        {AT&T} {Bell Laboratories} in the United States managed to
        send information at a rate of 420 megabits per second, over
        161.5 km through an optical fibre cable.  In Japan, 445.8
        megabits per second was achieved over a shorter distance.  At
        this rate, the entire text of the Encyclopedia Britannica
        could be transmitted in one second.  Currently, AT&T is
        working on a world network to support high volume data
        transmission, international computer networking, {electronic
        mail} and voice communications (a single fibre can transmit
        200 million telephone conversations simultaneously).

        See also {FDDI}, {Optical Carrier n}, {SONET}.

        (1997-05-26)

optical grep

        {vgrep}

Optical Mark Reader

        <hardware> (OMR) A special scanning device that can read
        carefully placed pencil marks on specially designed documents.
        OMR is frequenty used in forms, questionnaires, and
        answer-sheets.

        (1995-04-13)

optical mouse

        <hardware> Any kind of {mouse} that uses visible light or
        infrared to detect changes in its position.

        (1999-07-21)

Optical Time Domain Reflectometer

        A device used to perform {Optical Time Domain Reflectometry}.

        (1995-02-01)

Optical Time Domain Reflectometry

        Measurement of the elapsed time and intensity of light
        reflected on {optical fibre} using an optical time domain
        reflectometer.  The reflectometer can compute the distance to
        problems on the fibre such as attenuation and breaks, making
        it a useful tool in optical network trouble-shooting.

        (1995-02-01)

optimal

        1. <mathematics> Describes a solution to a problem which
        minimises some {cost function}.  {Linear programming} is one
        technique used to discover the optimal solution to certain
        problems.

        2. <programming> Of code: best or most efficient in time,
        space or code size.

        (1995-10-05)

optimise

        To perform {optimisation}.

optimising compiler

        <programming, tool> {compiler} which attempts to analyse the
        code it produces and to produce more efficient code by
        performing {program transformation} such as {branch
        elimination}, {partial evaluation}, or {peep-hole
        optimisation}.

        Contrast {pessimising compiler}.

        (1995-02-01)

optimism

        What a programmer is full of after fixing the last bug and
        just before actually discovering the *next* last bug.  Fred
        Brooks's book "{The Mythical Man-Month}" contains the
        following paragraph that describes this extremely well.

        All programmers are optimists.  Perhaps this modern sorcery
        especially attracts those who believe in happy endings and
        fairy god-mothers.  Perhaps the hundreds of nitty frustrations
        drive away all but those who habitually focus on the end goal.
        Perhaps it is merely that computers are young, programmers are
        younger, and the young are always optimists.  But however the
        selection process works, the result is indisputable: "This
        time it will surely run," or "I just found the last bug.".

        See also {Lubarsky's Law of Cybernetic Entomology}.

optimize

        {optimisation}

option

        {command line option}

OPTRAN

        Specification language for attributed tree transformation
        writetn by R. Wilhelm, U Saarlandes in the early 1980's.

        ["POPSY and OPTRAN Manual", ESPRIT PROSPECTRA Project Item
        S.1.6-R.3.0, U Saarlandes (Mar 1986)].

Opus

        <project, product> A {Honeywell} {operating system} promised
        as a sop to customers after canning {Multics} in 1985.  Opus
        was to provide everything Multics had and more, plus total
        compatibility with the {Level 6}/{DPS6} operating system.

        "Opus" was a code name, the system was officially named VS3
        (short for HVS R3 or Honeywell Virtual System Release Three).
        It was to run on the {DPS6-plus} hardware known internally as
        the MRX and HRX, and be all things to all people.

        The hardware was a dud (though it did run the native DPS6
        software just fine), and the goal was, shall we say,
        ambitious.  The effort was cancelled by {Bull} in 1987, in
        favor of another project going on in France.

OR

        <logic> The {Boolean} function which is true if any of its
        arguments are true.  Its {truth table} is:

         A | B | A OR B
         --+---+---------
         F | F |    F
         F | T |    T
         T | F |    T
         T | T |    T

        (1996-11-04)

Oracle 7

        <database> Version 7 of the {Oracle} {relational database}
        system software.

        (1996-11-05)

Oracle Card

        <tool> A {Hypercard}-like product from {Oracle} for
        constructing {database} {application}s.  It runs on {IBM PC}
        and {Macintosh}.

        (1995-03-15)

Oracle*CASE

        A set of {CASE} tools from {Oracle}.

Oracle Co-operative Applications

        <tool, product> Packaged {client/server} software from
        {Oracle} for accounting, manufacturing, distribution, human
        resources and project control.

Oracle Corporation

        <company> The world's leading supplier of information
        management software.  The company, worth $2 billion, offers
        its products, along with related consulting, education and
        support services in more than 90 countries around the world.

        Oracle is best known for its {database management system}s
        vendor and {relational DBMS} products.  Oracle develops and
        markets {Oracle Media Server} and the {Oracle7} family of
        software products for {database} management; {Co-operative
        Development Environment} and {Oracle Co-operative
        Applications}

        Oracle software runs on {personal digital assistant}s,
        {set-top box}s, {IBM PC}s, {workstation}s, {minicomputer}s,
        {mainframe}s and {massively parallel computer}s.

        See also {Adaptable User Interface}, {Bookviewer},
        {CASE*Method}, {Component Integration Laboratories}, {DDE
        Manager}, {Online Media}, {Oracle Card}, {Oracle*CASE},
        {siod}.

        {Home (http://www.oracle.com/)}

        Address: Redwood Shores, CA, USA.

        (1995-03-15)

Oracle Rdb

        <database> A set of {relational database} products originally
        known as Rdb from {Digital Equipment Corporation}, but
        purchased by {Oracle Corporation} in 1994.  The current (October
        1996) versions are Oracle Rdb V7.0 for {OpenVMS} {VAX}, Oracle
        Rdb V7.0 for OpenVMS {Alpha}, and Oracle Rdb V7.0 for {Digital
        UNIX}.

        This release of Oracle Rdb includes advances in {non-stop
        computing} for {business critical} applications, improvements
        to {OLTP} performance, and easy {client/server} application
        development.  It also includes an {ODBC} Driver.

        (1996-10-30)

Oracle Toolkit

        {Adaptable User Interface}

Orange Book

        <security, standard> A standard from the US Government
        {National Computer Security Council} (an arm of the
        U.S. National Security Agency), "Trusted Computer System
        Evaluation Criteria, DOD standard 5200.28-STD, December 1985"
        which defines criteria for trusted computer products.  There
        are four levels, A, B, C, and D.  Each level adds more
        features and requirements.

        D is a non-secure system.

        C1 requires user log-on, but allows {group ID}.

        C2 requires individual log-on with password and an audit
        mechanism.  (Most {Unix} implementations are roughly C1, and
        can be upgraded to about C2 without excessive pain).

        Levels B and A provide mandatory control.  Access is based on
        standard Department of Defense clearances.

        B1 requires DOD clearance levels.

        B2 guarantees the path between the user and the security
        system and provides assurances that the system can be tested
        and clearances cannot be downgraded.

        B3 requires that the system is characterised by a mathematical
        model that must be viable.

        A1 requires a system characterized by a mathematical model
        that can be proven.

        See also {crayola books}, {book titles}.

        (1997-01-09)

ORB

        {Object Request Broker}

Orbit

        A {Scheme} compiler.

        ["Orbit: An Optimising Compiler for Scheme", D.A. Kranz et al,
        SIGPLAN Notices 21(7):281-292 (Jul 1986)].

        (1994-10-28)

Orca

        Vrije Universiteit, Amsterdam, 1986.  Similar to Modula-2, but
        with support for distributed programming using shared data
        objects, like Linda.  A 'graph' data type removes the need for
        pointers.  Version for the Amoeba OS, comes with Amoeba.
        "Orca: A Language for Distributed Processing", H.E.  Bal
        <bal@cs.vu.nl> et al, SIGPLAN Notices 25(5):17-24 (May 1990).

Order Code Processor

        <processor> The {ICL 2900}, {ICL 3900} and above term for
        "{CPU}".

        (1995-05-06)

order-embedding

        A function f : D -> C is order-embedding iff for all x, y in
        D,

                f(x) <= f(y)  <=>  x <= y.

        I.e. arguments and results compare similarly.  A function which
        is order-embedding is {monotonic} and one-to-one and an
        {injection}.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-02-03)

ordering

        A relation.

        See {partial ordering}, {pre-order}, {total ordering}.

ordinal

        <mathematics> An {isomorphism class} of {well-ordered set}s.

        (1995-03-10)

ordinate

        <mathematics> The y-coordinate on an (x,y) graph; the output
        of a function plotted against its input.

        x is the "{abscissa}".

        See {Cartesian coordinates}.

        (1997-07-08)

OREGANO

        ["On the Design and Specification of the Programming Language
        OREGANO", D.M. Berry. UCLA-ENG-7388, 1973].

O'Reilly and Associates

        The leading publisher of information on the {Internet},
        {Unix}, the {X Window System} and other {open} systems.  They
        also provide the {Global Network Navigator} service.

        {Home page(http://www.ora.com/)}

        (1995-01-10)

org

        <networking> The {top-level domain} typically for non-profit
        organisations.

        (1999-01-26)

Organic Mode

        <programming> A term used by {COCOMO} to describe a project
        that is developed in a familiar, stable environment.

        The product is similar to previously developed products.  Most
        people connected with the project have extensive experience in
        working with related systems and have a thorough understanding
        of the project.  The project contains a minimum of innovative
        data processing architectures or {algorithms}.  The product
        requires little innovation and is relatively small, rarely
        greater than 50,000 {DSI}s.

        (1996-05-29)

Orient84/K

        <language>

        ["A Concurrent Object-Oriented Knowledge Representation
        Language Orient84/K", Y. Ishikawa, Keio U, Yokohama, SIGPLAN
        Notices 21(11):232-241 OOPSLA '86, Nov 1986].

        (1996-05-29)

Original Equipment Manufacturer

        <company> (OEM) A company which makes equipment (e.g.
        computers) as opposed to one which sells equipment made by
        other companies.

        See also {Value Added Reseller}.

        (1994-12-07)

ORKID

        {Open Real-time Kernel Interface Definition}

ORM

        {Object Role Modeling}

orphaned i-node

        /or'f*nd i:'nohd/ [Unix] 1. A file that retains storage but no
        longer appears in the directories of a file system.

orphan process

        <operating system> A {Unix} process whose original parent has
        terminated and which has become a child of "{init}(1)".

        Compare {zombie}.

        (1996-05-29)

ORTHOCARTAN

        <mathematics, tool> A system for {symbolic mathematics},
        especially General Relativity, written by A. Krasinski of
        Warsaw in the early 1980s.

        (1995-04-12)

orthogonal

        Mutually independent; well separated; sometimes, irrelevant
        to.  Used in a generalisation of its mathematical meaning to
        describe sets of primitives or capabilities that, like a
        vector basis in geometry, span the entire "capability space"
        of the system and are in some sense non-overlapping or
        mutually independent.

        In logic, the set of operators "not" and "or" is orthogonal,
        but the set "nand", "or", and "not" is not (because any one of
        these can be expressed in terms of the others).

        Also used in comments on human discourse: "This may be
        orthogonal to the discussion, but ..."

        See also {orthogonal instruction set}.

        (1994-12-21)

orthogonal instruction set

        An {instruction set} where all (or most) instructions have the
        same format and all register can be used interchangeably - the
        choice of which register to use is orthogonal to the choice of
        instruction.  This contrasts with some early {Intel}
        {microprocessor}s where only certain registers could be used
        by certain instructions.

        Examples include the {PDP-11}, {680x0}, {ARM}, {VAX}.

        (1995-01-05)

Orwell

        Lazy functional language, Miranda-like.  List comprehensions
        and pattern matching.  "Introduction to Orwell 5.00",
        P.L. Wadler et al, Programming Research Group, Oxford U, 1988.

OS

        1. {operating system}.

        2. [obsolete, {ITS}], an output spy.  See "{OS and JEDGAR}".

        3. <operating system> An {operating system} from {IBM} for
        their {System/360} line of hardware announced in 1964.  OS was
        planned with several flavours that were supposed to be
        compatible.  OS was late, memory hungry and not able to reach
        the marketing objectives of IBM for the 360/30, the planned
        successor of the {IBM 1401}.  IBM then decided to design a new
        operating system for the low end machines which they called
        {DOS/360}.

        (1997-09-22)

OS2

        <spelling> Normally written "{OS/2}".

        (1997-05-02)

OS/2

        /O S too/ {IBM} and {Microsoft}'s successor to the {MS-DOS}
        {operating system} for {Intel 80286} and {Intel 80386}-based
        {microprocessors}.  It is proof that they couldn't get it
        right the second time either.  Often called "Half-an-OS".  The
        design was so {baroque}, and the implementation of 1.x so bad,
        that 3 years after introduction you could still count the
        major {application programs} shipping for it on the fingers of
        two hands, in {unary}.  Later versions improved somewhat, and
        informed hackers now rate them superior to {Microsoft
        Windows}, which isn't saying much.  See {second-system
        effect}.

        On an {Intel 80386} or better, OS/2 can {multitask} between
        existing {MS-DOS} {applications}.  OS/2 is strong on
        connectivity and the provision of robust {virtual machines}.
        It can support {Microsoft Windows} programs in addition to its
        own {native} applications.  It also supports the {Presentation
        Manager} {graphical user interface}.

        {OS/2} supports {hybrid multiprocessing} (HMP), which provides
        some elements of {symmetric multiprocessing} (SMP), using
        add-on IBM software called {MP/2}.  OS/2 SMP was planned for
        release in late 1993.

        After OS/2 1.x the {IBM} and {Microsoft} partnership split.
        IBM continued to develop OS/2 2.0, while Microsoft developed
        what was originally intended to be OS/2 3.0 into {Windows NT}.
        In October 1994, IBM released version OS/2 3.0 (known as
        "Warp") but it is only distantly related to {Windows NT}.
        This version raised the limit on RAM from 16MB to 1GB (like
        Windows NT).

        IBM introduced networking with "OS/2 Warp Connect", the first
        multi-user version.  OS/2 Warp 4.0 ("Merlin") is a {network
        operating system}.

        {(http://www.mit.edu:8001/activities/os2/os2world.html)}.

        [Dates?]

        (1995-07-20)

OS/390

        <operating system> An {IBM} {mainframe} {operating system},
        featuring integrated {MVS}, {UNIX}, {LAN}, {distributed
        computing} and {application enablement services} through its
        base elements.  These base services enable open, distributed
        processing and offer a foundation for object-ready application
        development.  The OS/390 base includes a {Communication
        Server} that includes {VTAM}, the {VTAM AnyNet} feature,
        {TCP/IP} and {TIOC}.  It provides {SNA} ({3270}), {APPC},
        {High Performance Routing}, {ATM} support, {sockets} and
        {RPC}.

        OS/390 is basically rebranded, repackaged {MVS/OE}, {CMOS}
        processors, {RAMAC} disk arrays and {open systems} extension
        to networking in {VTAM}, the principle being that if you can't
        compete, rebrand what you have and tell everyone it's
        something new.

        {Home (http://204.146.133.206/os390/index.html)}.

        (1999-01-20)

OS-9

        <operating system> A {real-time} {operating system} written by
        {Microware Corporation}.  The original version was written
        about 1978 for the {Motorola 6809} and has since been ported
        to the {Motorola 68000}, {Intel 80386}, {Intel 486}, and the
        {PowerPC}.  The {kernel} of OS-9 is {ROMable}, modular, with a
        unified file system, allowing it to easily be scaled up or
        down as required.

        {FAQ (http://os9archive.rtsi.com/os9faq.html)}

        {User Group (http://www.cs.wisc.edu/~pruyne/os9ugfaq.html)}

        {Usenet} newsgroup: {news:comp.os.os9}.

        (1996-04-03)

OSA

        {Open Scripting Architecture}

OSA extension

        (OSAX) Any extension to {Macintosh} {OSA}.

        (1999-01-14)

OSAX

        {OSA extension}

OSCAR

        1. Oregon State Conversational Aid to Research.  Interactive
        numerical calculations, vectors, matrices, complex arithmetic,
        string operations, for CDC 3300.  "OSCAR: A User's Manual with
        Examples", J.A. Baughman et al, CC, Oregon State U.

        2. Object-oriented language used in the COMANDOS Project.
        "OSCAR: Programming Language Manual", TR, COMANDOS Project,
        Nov 1988.

OSE

        {Open Systems Environment}

OSF

        {Open Software Foundation}

OSI

        {Open Systems Interconnect}

OSI Reference Model

        {Open Systems Interconnect}

OSI-RM

        {Open Systems Interconnect}

OSI seven layer model

        {Open Systems Interconnect}

O'small

        A small, concise, formally defined {object-oriented} language
        intended for teaching, by Andreas Hense
        <hense@sol.cs.uni-sb.de>.

        {(ftp://cs.uni-sb.de:/pub/osmall/machine/)}

        O'small requires {sml-yacc}, {sml-lex} and {sml-noshare}.
        Binaries areprovided for {SPARC} and it is probably portable
        to other {Unix} systems.  There is also an {interpreter} in
        {Miranda}.

        [Christoph Boeschen, "Christmas - An abstract machine for
        O'small".  Master's thesis, Universit"at des Saarlandes,
        Fachbereich 14, June 1993].

        (1993/06/25)

OS/MFT

        {Operating System/Multiprogramming of Fixed Tasks}

OS/MVT

        <operating system> One of the {IBM} {operating systems}
        associated with the {IBM 360}, later rereleased with the {IBM
        S/370} as {OS/VS2}.

        [Details?]

        (1999-01-12)

OSP

        {Optical Signal Processor}

OSPF

        {Open Shortest-Path First Interior Gateway Protocol}

OSQL

        Object-oriented SQL.

        A {functional language}, a superset of {SQL}, used in
        {Hewlett-Packard}'s {OpenODB} {database} system.

        E-mail: <boronkay@cup.hp.com>.

        (1994-11-29)

OSSL

        Operating Systems Simulation Language.

        ["OSSL - A Specialized Language for Simulating Computer
        Systems", P.B. Dewan et al, Proc SJCC 40, AFIPS (Spring
        1972)].

OS/VS1

        {OS/MFT}

OS/VS2

        <operating system> An {operating system} from {IBM}, released
        with the {IBM S/370} and originally known as {OS/MVT}.  OS/VS2
        R1 was known as SVS (Single Virtual Storage) as it had a
        single 16 MB {virtual address space}.  OS/VS2 R2 was known as
        MVS - {Multiple Virtual Storage}.

        (1999-01-13)

OTDR

        {Optical Time-Domain Reflectometry}

OT&E

        {operational test and evaluation}

OTI

        {Open Tool Interface}

OTOH

        On the other hand.

OTP

        {One Time Programmable Read Only Memory}

OTPROM

        {One Time Programmable Read Only Memory}

OTT

        Over the top.

        Excessive or uncalled for.

        (1995-01-31)

Ottawa Euclid

        {Euclid}

Ousterhout, John K.

        {John Ousterhout}

Ousterhout's dichotomy

        <language> This refers to the dichotomy envisioned by {John
        Ousterhout}, which underlies the design of his language {Tcl}.
        Ousterhout's dichotomy divides {high-level languages} into
        system programming languages and scripting languages.  System
        programming languages (or "applications languages") are
        {strongly typed}, allow arbitrarily complex {data structures},
        and programs in them are {compiled}, and are meant to operate
        largely independently of other programs.  Prototypical system
        programming languages are {C} and {Modula-2}.

        By contrast, scripting languages (or "glue languages") are
        weakly typed or untyped, have little or no provision for
        complex data structures, and programs in them ("{scripts}")
        are {interpreted}.  Scripts need to interact either with other
        programs (often as {glue}) or with a set of functions provided
        by the interpreter, as with the {file system} functions
        provided in a {UNIX shell} and with {Tcl}'s {GUI} functions.
        Prototypical scripting languages are {AppleScript}, {C Shell},
        MSDOS {batch files}, and {Tcl}.

        Many believe that this is a highly arbitrary dichotomy, and
        refer to it as "Ousterhout's fallacy" or "Ousterhout's false
        dichotomy".  While strong-versus-weak typing, data structure
        complexity, and independent versus stand-alone might be said
        to be unrelated features, the usual critique of Ousterhout's
        dichotomy is of its distinction of compilation versus
        interpretation, since neither {semantics} nor {syntax} change
        significantly between code that is compiled into
        {machine-language}, interpreted, {tokenized} or
        {byte-compiled} at the start of each {runtime}, or any mixture
        of these.  Many languages fall between being interpreted or
        compiled (e.g. {Lisp}, {Forth}, {UCSD Pascal}, {Perl} and
        {Java}).  This makes compilation-versus-interpretation a
        dubious parameter in a taxonomy of programming languages.

        {(http://www.somi.sk/~milan/tcl/scripting.html)}.

        (1999-02-22)

Ousterhout's fallacy

        {Ousterhout's dichotomy}

Ousterhout's false dichotomy

        {Ousterhout's dichotomy}

outer join

        <database> A less commonly used variant of the {inner join}
        {relational database} operation.  An inner join selects rows
        from two {tables} such that the value in one {column} of the
        first table also appears in a certain column of the second
        table.  For an outer join, the result also includes all rows
        from the first operand ("left outer join", "*="), or the
        second operand ("right outer join", "=*"), or both ("full
        outer join", "*=*").  A field in a result row will be null if
        the corresponding input table did not contain a matching row.

        For example, if we want to list all employees and their
        employee number, but not all employees have a number, then we
        could say (in {SQL}):

                SELECT employee.name, empnum.number
                WHERE employee.id *= empnum.id

        The "*" means "left outer join" and means that all rows from
        the "employee" table will appear in the result, even if there
        is no match for their ID in the empnum table.

        (1999-08-27)

outline font

        <text> (Or "vector font") A {font} defined as a set of lines
        and curves as opposed to a {bitmap font}.  An outline font
        (e.g. {PostScript}, {TrueType}, {RISC OS}) can be scaled to any
        size and otherwise transformed more easily than a bitmap font,
        and with more attractive results, though this requires a lot
        of numerical processing.  The result of transforming a
        character in an outline font in a particular way is often
        saved as a bitmap in a {font cache} to avoid repeating the
        calculations if that character is to be drawn again.

        (1995-03-16)

out-of-band

        (From telecommunications and network theory) 1. In software,
        describes values of a function which are not in its "natural"
        range of return values, but are rather signals that some kind
        of exception has occurred.  Many C functions, for example,
        return a nonnegative integral value, but indicate failure with
        an out-of-band return value of -1.  Compare {hidden flag},
        {green bytes}, {fence}.

        2. Also sometimes used to describe what communications people
        call "shift characters", such as the ESC that leads control
        sequences for many terminals, or the level shift indicators in
        the old 5-bit Baudot codes.

        3. In personal communication, using methods other than
        {electronic mail}, such as telephone or {snail-mail}.

        (1994-11-29)

output

        <architecture> {Data} transferred from a computer system to
        the outside world via some kind of {output device}.

        Opposite: {input}.

        (1997-04-28)

output device

        <hardware> Electronic or electromechanical equipment connected
        to a computer and used to transfer data out of the computer in
        the form of text, images, sounds or other media to a {display
        screen}, {printer}, loudspeaker or storage device.  Most
        modern storage devices such as {disk drives} and {magnetic
        tape drives} act as both input and output devices, others such
        as {CD-ROM} are input only.

        (1997-03-18)

Outside Awareness Port

        <humour> (OAP) A humorous {IBM} term for a window (the glass
        kind) rather than the {GUI} kind.

outside-in testing

        <testing> A strategy for {integration testing} where units
        handling program inputs and outputs are tested first, and
        units that process the inputs to produce output are
        incrementally included as the system is integrated.  A form of
        {hybrid testing}.

        (1997-01-07)

outsourcing

        <business> Paying another company to provide services which a
        company might otherwise have employed its own staff to
        perform, e.g. software development.

        (1995-03-28)

overclocking

        <hardware> Any adjustments made to computer hardware (or
        software) to make its CPU run at a higher {clock} frequency
        than intended by the original manufacturers.  Typically this
        involves replacing the crystal in the clock generation
        circuitry with a higher frequency one or changing {jumper}
        settings or software configuration.

        If the clock frequency is increased too far, eventually some
        component in the system will not be able to cope and the
        system will stop working.  This failure may be continuous (the
        system never works at the higher frequency) or intermittant
        (it fails more often but works some of the time) or, in the
        worst case, irreversible (a component is damaged by
        overheating).  Overclocking may necessitate improved cooling
        to maintain the same level of reliability.

        (1999-09-12)

Overdrive

        <processor> An {Intel} {Pentium} processor which fits into a
        socket designed to accomodate an {Intel 486}, or into a
        special upgrade socket on the {motherboard}.

        (1995-03-27)

overflow bit

        1. A {flag} on some processors indicating an attempt to
        calculate a result too large for the destination {register} to
        hold.

        2. More generally, an indication of any kind of capacity
        overload condition.  "Well, the {Ada} description was
        {baroque} all right, but I could hack it OK until they got to
        the exception handling ... that set my overflow bit."

        3. The hypothetical bit that will be set if a hacker doesn't
        get to make a trip to the Room of Porcelain Fixtures: "I'd
        better process an internal interrupt before the overflow bit
        gets set".

overflow pdl

        The place where you put things when your {pdl} is full.  If
        you don't have one and too many things get pushed, you forget
        something.  The overflow pdl for a person's memory might be a
        memo pad.  This usage inspired the following doggerel:

         Hey, diddle, diddle
         The overflow pdl
           To get a little more stack;
         If that's not enough
         Then you lose it all,
           And have to pop all the way back.
                                       --The Great Quux

        The term {pdl} seems to be primarily an {MIT}ism; outside MIT
        this term is replaced by "overflow {stack}".

overhead

        1. Resources (in computing usually processing time or storage
        space) consumed for purposes which are incidental to, but
        necessary to, the main one.  Overheads are usually
        quantifiable "costs" of some kind.

        Examples: The overheads in running a business include the cost
        of heating the building.  Keeping a program running all the
        time eliminates the overhead of loading and initialising it
        for each transaction.  Turning a {subroutine} into {inline}
        code eliminates the call and return time overhead for each
        execution but introduces space overheads.

        2. <communications> information, such as control, routing, and
        error checking characters, that is transmitted along with the
        user data.  It also includes information such as network
        status or operational instructions, network routing
        information, and retransmissions of user data received in
        error.

        3. Overhead transparencies or "slides" (usually 8-1/2" x 11")
        that are projected to an audience via an overhead (flatbed)
        projector.

        (1997-09-01)

overloading

        <language> (Or "Operator overloading").  Use of a single
        symbol to represent operators with different argument types,
        e.g. "-", used either, as a {monadic} operator to negate an
        expression, or as a {dyadic} operator to return the difference
        between two expressions.  Another example is "+" used to add
        either integers or {floating-point} numbers.  Overloading is
        also known as ad-hoc {polymorphism}.

        User-defined operator overloading is provided by several
        modern programming languages, e.g. {C++}'s {class} system and
        the {functional programming} language {Haskell}'s {type
        class}es.

        (1995-04-30)

overriding

        <programming> Redefining in a {child class} a {method} or
        function member defined in a {parent class}.

        Not to be confused with "{overloading}".

        (1996-12-21)

overrun

        1. A frequent consequence of data arriving faster than it can
        be consumed, especially in {serial line} communications.  For
        example, at 9600 baud there is almost exactly one character
        per millisecond, so if a {silo} can hold only two characters
        and the machine takes longer than 2 milliseconds to get to
        service the interrupt, at least one character will be lost.

        2. Also applied to non-serial-I/O communications.  "I forgot
        to pay my electric bill due to mail overrun."  "Sorry, I got
        four phone calls in 3 minutes last night and lost your message
        to overrun."  When {thrash}ing at tasks, the next person to
        make a request might be told "Overrun!"  Compare {firehose
        syndrome}.

        3. More loosely, may refer to a {buffer overflow} not
        necessarily related to processing time (as in {overrun
        screw}).

overrun screw

        A variety of {fandango on core} produced by a {C} program
        scribbling past the end of an {array} ({C} implementations
        typically have no checks for this error).  This is relatively
        benign and easy to spot if the array is static; if it is
        {auto}, the result may be to {smash the stack} - often
        resulting in {heisenbug}s of the most diabolical subtlety.
        The term "overrun screw" is used especially of scribbles
        beyond the end of arrays allocated with {malloc}; this
        typically overwrites the allocation header for the next block
        in the {arena}, producing massive lossage within malloc and
        often a {core dump} on the next operation to use {stdio} or
        malloc itself.

        See {spam}, {overrun}; see also {memory leak}, {memory smash},
        {aliasing bug}, {precedence lossage}, {fandango on core},
        {secondary damage}.

        (1995-01-19)

overuse strain injury

        <medical> (Or "repetitive strain injury", RSI, "repetitive
        strain disorder") Any tendon or muscle injury resulting from
        overuse, usually in the hand, wrist, or arm.  Injury may be
        caused by any combination of repetitive, unacustomed, or
        prolonged movements, forcefulness, or an awkward position
        (often due to bad {ergonomics}).  The symptoms are pain,
        tingling, weakness, numbness, swelling, cracking, stiffness,
        or reduced coordination.

        Common conditions are:

        Carpal tunnel syndrome, where swelling of the membrane linings
        in your wrist surrounding the tendons that bend your fingers
        compresses the median nerve.  This may result in numbness and
        pain in the hand, arm, shoulder, and neck.

        Tennis elbow, where rotating your wrist and using force causes
        a form of epicondylitis.

        Tendinitis, where unacustomed exercise or repeated awkward
        movements inflame wrist, elbow, or shoulder tendons, often
        leading to severe stiffness.

        Trigger finger, a popping or catching sensation when you bend
        your finger, wrist, or shoulder.  This form of tenosynovitis
        is caused by repetitive hand movements.

        To prevent the condition worsening, treat the pain with heat,
        cold, or aspirin, ibuprofen, or naproxen sodium; rest; or
        immobilise the injured area with a splint or bandage.  See a
        doctor.

        {Amara's RSI information
        (http://www.amara.com/aboutme/rsi.html)}.

        {RSI links from Yahoo
        (http://dir.yahoo.com/Health/Diseases_and_Conditions/Repetitive_Strain_
Disorder/)}.

        {Guide to Carpal Tunnel Syndrome
        (http://www.sechrest.com/mmg/cts/)}.

        {CTS from Yahoo
        (http://dir.yahoo.com/Health/Diseases_and_Conditions/Carpal_Tunnel_Synd
rome/)}.

        (1999-10-03)

OWHY

        <language> An early {functional language}(?).

        ["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana
        Scott, Oxford U 1969].

        (1995-01-19)

OWL

        1. <company> {Office Workstations Limited}.

        2. <language> {Object Windows Language}.

        (1996-01-13)

Owl

        The original name of {Trellis}.

        (1995-01-19)

Ox

        version:        G1.01

        parts: Yacc/Lex/C preprocessor, tutorial, reference manual,
        manual page, examples, Ox-ready parsers (C, C++, Pascal, Ada,
        Fortran)

        author:                Kurt Bischoff <bischoff@cs.iastate.edu>

        how to get:            {(ftp://ftp.cs.iastate.edu/pub/ox/)}

        Ox generalises the function of Yacc in the way that attribute
        grammars generalise context-free grammars.  Ordinary Yacc and
        Lex specifications may be augmented with definitions of
        synthesised and inherited attributes written in C syntax.  Ox
        checks these specifications for consistency and completeness,
        and generates from them a program that builds and decorates
        attributed parse trees.  Ox accepts a most general class of
        attribute grammars.  The user may specify postdecoration
        traversals for easy ordering of side effects such as code
        generation.  Ox handles the tedious and error-prone details of
        writing code for parse-tree management, so its use eases
        problems of security and maintainability associated with that
        aspect of translator development.  Ox is a preprocessor, and
        extends the syntax and semantics of Yacc, Lex, and C.

        reference: Most compiler textbooks have descriptions of
        attribute grammars.

        features: {LALR1 grammar}, semantic-analyser generation.

        bugs: none known.  Report bugs to <ox-project@cs.iastate.edu>.

        restriction: Use of Ox is free.  Ox-generated code is the
        property of the Ox user.

        requires:        yacc, lex

        ports:                 every kind of Unix

        contact:        <ox-request@cs.iastate.edu>

        ["User Manual for Ox: An Attribute-Grammar Compiling System
        based on Yacc, Lex and C", K.M.  Bischoff, TR92-30, Iowa State
        U, Dec 1992].

        (1993-11-14)

Oz

        An {object-oriented} {concurrent} {constraint} language from
        the {University of Saarbrucken}.  Oz is based on {constraint
        communication}, a new form of {asynchronous} communication
        using {logic variable}s.  Partial information about the values
        of variables is imposed concurrently and incrementally.
        Supports {higher order} programming and object-orientation
        including {multiple inheritance}.

        {(ftp:duck.dfki.uni-sb.de/pub/papers)}

        ["Object-Oriented Concurrent Constraint Programming in Oz",
        G. Smolka et al].

oz

        An old Australian {top-level domain} and network which got
        incorporated into the current one.  The former Australian
        {domain}s .oz, .edu and .com are now .oz.au, .edu.au and
        .com.au.

        (1994-10-04)

Oz-Email

        <company> An {Internet} access provider.

        {Home (http://www.ozemail.com.au/)}

        Address: Sydney, Australia.

        (1995-03-02)

P+

        ["Experience with Remote Procedure Calls in a Real-Time
        Control System", B. Carpenter et al, Soft Prac & Exp
        14(9):901-907 (Sep 1984)].

P1754

        <processor, standard> IEEE Std 1754-1994 "A 32-Bit
        Microprocessor Architecture".  The {IEEE} standard defining a
        version of the {SPARC} {microprocessor} architecture.

        The P1754 standard (the first microprocessor standard) was
        approved after four years on 1994-03-17.  It is compatible
        with, but distinct from, {SPARC International}'s 32 bit
        version of the SPARC Architecture, SPARC V8, from which it is
        largely derived.  It is possible for a processor to comply
        with neither, one, or both specifications.

        {SI article
        (http://www.sparc.com/sparc.new/other/sflash/94-03.html)}.

        (1996-12-21)

p2c

        A {Pascal} to {C} translator by Dave Gillespie
        <daveg@synaptics.com>.

        {Version 1.20 (ftp://csvax.cs.caltech.edu/)}

        Supports {ANSI}/{ISO} {standard} {Pascal} as well as
        substantial subsets of {HP Pascal}, {Turbo Pascal}, VAX, and
        many other dialects.

        (1990-04-13)

P3L

        (Superscript 3).  A language with explicit parallelism
        including constructs for {farm}s and {geometric parallelism}.
        P3L currently uses {C++} as a host language.

        [S. Pelagatti, "A method for the development and the support
        of massively parallel programs.  PhD Thesis - TD 11/93,
        University of Pisa, Mar 1993].

        (1994-07-15)

P4

        A {macro}/subroutine package for parallel programming by Rusty
        Lusk <lusk@anta.mcs.anl.gov>.  P4 uses {monitor}s on shared
        memory machines and message passing on distributed memory
        machines.  It is implemented as a subroutine library for {C}
        and {Fortran}.  An enhancement of the "Argonne macros",
        {PARMACS}.

        {(ftp://info.mcs.anl.gov/pub/p4t1.2.tar.Z)}.  E-mail:
        <p4@mcs.anl.gov>.

P6

        <processor> ("P" from {Pentium}, 6 from 686, the successor to
        586 which is what the Pentium would have been had it followed
        the naming scheme its predecessors) The name for the {Pentium
        Pro} during development.

        (1995-11-15)

pa

        <networking> The {country code} for Panama.

        (1999-01-27)

PABX

        {Private Automatic Branch eXchange}

PACE

        A CPU based on the {Nova} design, but with 16-bit addressing,
        more {addressing mode}s and a 10 level {stack} (like the
        {Intel 8008}).

        (1994-11-30)

Packard Bell Electronics, Inc.

        <company> A leading US computer vendor.

        As recently as 29 November 1995 the Wall Street Journal
        reported that the company was having financial difficulties
        and that one of its major suppliers of CPUs, {Intel}, was
        about to make a large cash loan, so as to prevent loss of a
        major customer.  Packard Bell is a privately held company and
        the WSJ also reported that {NEC} has been rumored to have
        bought a large minority block of shares to help the company
        stay in business.

        Its computers are sold in major retail outlets in the USA and
        are available as a bundled package: desktop or {tower} {486}
        {CPU}, single 3.5 inch {floppy disk drive}, {CD-ROM}, {sound
        card}, 14 inch colour {monitor}, and 4-8MB of {RAM}.

        1995 end-of-year prices in Computer Currents magazine (a
        California Bay Area bi-monthly giveaway publication) are
        US$1500 (approx.  1000 pounds) for a 486 desktop, with 8MB
        RAM, 420MB hard disk drive, single 3.5 inch floppy drive, 14
        inch colour monitor, 2-speed CD-ROM, and 16-bit sound card.

        Headquarters: Sacramento, California, USA.

        (1996-01-02)

packed decimal

        <data> A number representation in which each decimal digit is
        represented by four bits (one {nibble}).  The rightmost nibble
        of the field contains the sign (positive or negative).

        An n-byte packed decimal field can represent a (2n-1)-digit
        decimal number.

        [Where is it used?  How is the sign encoded?]

        (1997-06-08)

Packed Encoding Rules

        <protocol, standard> (PER) {ASN.1} encoding rules for
        producing a compact {transfer syntax} for data structures
        described in {ASN.1}, defined in 1994.

        PER provides a much more compact encoding then {BER}.  It
        tries to represents the data units using the minimum number of
        {bits}.  The compactness requires that the decoder knows the
        complete {abstract syntax} of the data structure to be
        decoded, however.

        Documents: {ITU-T} X.691, {ISO} 8825-2.

        (1998-05-19)

packet

        The unit of data sent across a {network}.  "Packet" is a
        generic term used to describe a unit of data at any layer of
        the {OSI} {protocol stack}, but it is most correctly used to
        describe {application layer} data units ("{application
        protocol data unit}", APDU).

        See also {datagram}, {frame}.

        (1994-11-30)

Packet Assembler/Disassembler

        (PAD) Hardware or software device for splitting a data stream
        into discrete {packet}s for transmission over some medium and
        then reforming the stream(s) at the receiver.

        The term is most often used for interfaces to {X.25} lines.

        (1995-01-31)

packet driver

        <networking> {IBM PC} {local area network} software that
        divides data into {packet}s which it routes to the network.
        It also handles incoming data, reassembling the packets so
        that {application program}s can read the data as a continuous
        stream.

        {FTP Software} created the specification for {IBM PC} packet
        drivers but {Crynwr Software} dominate the market and have
        done the vast majority of the implementations.

        Packet drivers provide a simple, common programming interface
        that allows multiple {application}s to share a {network
        interface} at the {data link} layer.  Packet drivers
        demultiplex incoming packets among the applications by using
        the network media's {standard packet type} or {service access
        point} field(s).

        The packet driver provides calls to initiate access to a
        specific packet type, to end access to it, to send a packet,
        to get statistics on the network interface and to get
        information about the interface.

        Protocol implementations that use the packet driver can
        coexist and can make use of one another's services, whereas
        multiple applications which do not use the driver do not
        coexist on one machine properly.  Through use of the packet
        driver, a user could run {TCP/IP}, {XNS} and a proprietary
        protocol implementation such as {DECnet}, {Banyan}'s,
        {LifeNet}'s, {Novell}'s or {3Com}'s without the difficulties
        associated with pre-empting the network interface.

        Applications which use the packet driver can also run on new
        network hardware of the same class without being modified;
        only a new packet driver need be supplied.

        There are several levels of packet driver.  The first is the
        basic packet driver, which provides minimal functionality but
        should be simple to implement and which uses very few host
        resources.  The basic driver provides operations to broadcast
        and receive packets.  The second driver is the extended packet
        driver, which is a superset of the basic driver.  The extended
        driver supports less commonly used functions of the network
        interface such as {multicast}, and also gathers statistics on
        use of the interface and makes these available to the
        application.  The third level, the high-performance functions,
        support performance improvements and tuning.

        {(http://www.crynwr.com/crynwr/home.html)}.

        (1994-12-05)

Packet in Plastic Grid Array

        <integrated circuit> (PPGA) The package used for
        {Intel}'s {Celeron} {Socket 370} {CPU}.

        [Description?]

        (1999-06-24)

Packet InterNet Groper

        <networking, tool> (ping, probably originally contrived to
        match submariners' term for the sound of a returned sonar
        pulse) A program used to test reachability of destinations by
        sending them one, or repeated, {ICMP} echo requests and
        waiting for replies.  Since ping works at the {IP} level its
        server-side is often implemented entirely within the
        {operating system} {kernel} and is thus pretty much the lowest
        level test of whether a remote host is alive.  Ping will often
        respond even when higher level, {TCP}-based services cannot.

        The term is also used as a verb: "Ping host X to see if it is
        up."

        The {Unix} command "ping" can be used to do this manually and
        to measure round-trip delays.

        The funniest use of "ping" was described in January 1991 by
        Steve Hayman on the {Usenet} group comp.sys.next.  He was
        trying to isolate a faulty cable segment on a {TCP/IP}
        {Ethernet} hooked up to a {NeXT} machine, and got tired of
        having to run back to his console after each cabling tweak to
        see if the ping packets were getting through.  So he used the
        sound-recording feature on the NeXT, then wrote a {script}
        that repeatedly invoked ping, listened for an echo, and played
        back the recording on each returned packet.  Result?  A
        program that caused the machine to repeat, over and over,
        "Ping ... ping ... ping ..." as long as the network was up.
        He turned the volume to maximum, ferreted through the building
        with one ear cocked, and found a faulty tee connector in no
        time.

        See also {ACK}, {ENQ}, {traceroute}, {spray}.

        {Unix manual page}: ping(8).

        (1995-03-28)

packet radio

        <communications> (PR) The use of amateur radio to communicate
        between computers.  PR is a complete amateur radio computer
        network with "digipeaters" (relays), mailboxes (BBS) and other
        special nodes.

        In Germany, it is on HF, say, 2m (300 and 1200 BPS), 70cm
        (1200 to 9600 BPS), 23cm (normally 9600 BPS and up, currently
        most links between digipeaters) and higher frequencies.  There
        is a KW (short wave) Packet Radio at 300 BPS, too.

        Satellites with OSCAR (Orbiting Sattelite Carring Amateur
        Radio) transponders (mostly attached to commercial satellites
        by the AMateur SATellite (AMSAT) group) carry Packet Radio
        mailboxes or digipeaters.

        There are both on-line and off-line services on the packet radio
        network: You can send {electronic mail}, read bulletins, chat,
        transfer files, connect to on-line DX-Clusters (DX=far
        distance) to catch notes typed in by other HAMs about the
        hottest international KW connections currently coming up (so
        you can pile up).

        PR uses {AX.25} (an {X.25} derivative) as its {transport
        layer} and sometimes even {TCP/IP} is transmitted over AX.25.
        AX.25 is like X.25 but the adressing uses HAM "calls" like
        "DG8MGV".

        There are special "wormholes" all over the world which
        "tunnel" amateur radio traffic through the {Internet} to
        forward mail.  Sometimes mails travels over satelites.
        Normally amateur satellites have strange orbits, however the
        mail forwarding or maibox satellites have very predictable
        orbits.  Some wormholes allow HAMs to bridge from Internet to
        {AMPR-NET}, e.g. db0fho.ampr.org or db0fho.et-inf.fho-emden.de,
        but only if you are registered HAM.

        Because amateur radio is for non profit, it must not be
        interconnected to the {Internet} but it may be connected
        through the Internet.  All people on the (completely free)
        amateur radio net must be licensed radio amateurs and must
        have a "call" which is unique all over the world.

        There is a special {domain} AMPR.ORG (44.*.*.*) for amateur
        radio reserved in the IP space.  This domain is split between
        countries, which can split up the IP space even more.  For
        example 44.130.*.* is Germany, 44.130.58.* is Augsburg (in
        Bavaria), and 44.130.58.20 is dg8mgv.ampr.org (you may verify
        this with {nslookup}).

        Mail transport is only one aspect of packet radio.  You can
        talk interactively (as in {chat}), read files, or play silly
        games built in the Packet Radio software.  Usually you can use
        the autorouter to let the digipeater network find a path to
        the station you want.  However there are many (sometimes
        software incompatible) digipeaters out there, which the router
        cannot use.  Paths over 1000 km are unlikely to be useable for
        {real-time} communication and long paths can introduce
        significant delay times (answer latency).

        Other uses of amateur radio for computer communication include
        {RTTY} ({baudot}), {AMTOR}, {PACTOR}, and {CLOVER}.

        {A huge hamradio archive (ftp://ftp.ucsd.edu/hamradio/)}

        {Usenet} newsgroup: {news:rec.radio.amateur.packet}.

        (1995-02-27)

packet-switched

        {packet switching}

packet switching

        <communications> A communications paradigm in which {packets}
        (messages or fragments of messages) are individually {routed}
        between {nodes}, with no previously established communication
        path.  Packets are routed to their destination through the
        most expedient route (as determined by some routing
        {algorithm}).  Not all packets travelling between the same two
        hosts, even those from a single message, will necessarily
        follow the same route.

        The destination computer reassembles the packets into their
        appropriate sequence.  Packet switching is used to optimise
        the use of the {bandwidth} available in a network and to
        minimise the {latency}.  {X.25} is an international standard
        packet switching network.

        Also called {connectionless}.  Opposite of {circuit switched}
        or {connection-oriented}.  See also {virtual circuit},
        {wormhole routing}.

        (1999-03-30)

Packet Switch Node

        (PSN) A dedicated computer whose purpose is to accept, {route}
        and forward {packet}s in a {packet-switched} network.

        (1994-11-30)

packet writing

        <storage> A technique for writing {CD-R}s and {CD-RW}s that is
        more efficient in both disk space used and the time it takes
        to write the CD.

        {Adaptec}'s DirectCD is a packet writing recorder for {Windows
        95} and {Windows NT} that uses the {UDF} version 1.5 file
        system.

        [Is this true?  How does it work?]

        (1999-09-01)

PackIt

        <file format, tool> A file format used on the {Apple
        Macintosh} to represent collections of Mac files, possibly
        {Huffman} compressed.  Packing many small related files
        together before a {MacBinary} transfer or a translation to
        {BinHex} 4.0 is common practice.

        (1994-11-30)

PACT I

        An early system on the {IBM 701}.  Version PACT IA was for the
        {IBM 704}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-30)

PACTOLUS

        Digital simulation.

        [Sammet 1969, p. 627].

        (1994-11-30)

PAD

        {Packet Assembler/Disassembler}

padded cell

        Where you put {lusers} so they can't hurt anything.  A program
        that limits a luser to a carefully restricted subset of the
        capabilities of the host system (for example, the "{rsh}"
        utility on {USG Unix}).  Note that this is different from an
        {iron box} because it is overt and not aimed at enforcing
        security so much as protecting others (and the {luser}) from
        the consequences of the luser's boundless naivet'e (see
        {naive}).  Also "padded cell environment".

        (1994-11-30)

Paddle

        A language for transformations leading from specification to
        program.  Used in the {POPART} programming environment
        generator.

        (1994-11-30)

PAGE

        A typesetting language.

        ["Computer Composition Using PAGE-1", J.L.  Pierson, Wiley
        1972].

page

        1. <operating system> {paging}.

        2. <World-Wide Web> {web page}.

        (1997-04-10)

paged

        {paging}

Page Description Language

        (PDL) A language such as {Adobe Systems, Inc.}'s {PostScript}
        or {Xerox}'s {Interpress} which allows the appearance of a
        printed page to be described in a high-level,
        device-independent way.  Printing then becomes a two-stage
        process: an {application program} produces a description in
        the language, which is then interpreted by a specific output
        device.  Such a language can therefore serve as an interchange
        standard for transmission and storage of printable documents.

        (1995-02-20)

Paged Memory Management Unit

        {Memory Management Unit}

page fault

        <memory management> In a {paged virtual memory} system, an
        access to a page (block) of memory that is not currently
        mapped to {physical memory}.  When a page fault occurs the
        {operating system} either fetches the page in from {secondary
        storage} (usually disk) if the access was legitimate or
        otherwise reports the access as illegal.

        (1995-11-11)

page in

        What a {paging} system does when it copies part of a task's
        working memory from {swap space} on disk to {RAM}.

        (1995-01-23)

page mode

        1. <hardware, storage> See {page mode DRAM}.

        2. <hardware> An operation mode of {video terminals} like the
        {IBM 3270}, in which the terminal only sends a completed input
        screen (page) to the host instead of sending each character as
        the keys are pressed.

        (1995-03-28)

Page Mode DRAM

        {Page Mode Dynamic Random Access Memory}

Page Mode Dynamic Random Access Memory

        <hardware, storage> A technique used to support faster
        sequential access to {DRAM} by allowing any number of accesses
        to the currently open row to be made after supplying the {row
        address} just once.

        The {RAS} signal is kept active, and with each {falling edge}
        of the {CAS}\ signal a new {column address} can be supplied
        and the corresponding bits can be accessed.  This is faster
        than a full RAS-CAS cycle because only the shorter Column
        Access Time needs to be obeyed.

        Note that strictly speaking such a DRAM is not a true {random
        access memory} since accesses to the open row are faster than
        to other locations.

        {EDO RAM} is replacing Page Mode DRAM in many new
        microcomputers.

        [Is "Fast Page Mode" the same as "Page Mode"?]

        (1996-10-06)

page out

        <operating system> What a {paging} system does when it copies
        part of a {task}'s working memory from {RAM} to {swap space}
        on disk.

        (1995-01-23)

pager

        1. <hardware, communications> (Or "beeper", "bleeper" (UK?))
        A small wireless receiver that, when triggered (generally via
        phone), will beep or vibrate (un)pleasantly.  The wearer will
        have been trained to respond to this signal by looking at a
        small screen on the device for an unimportant message.

        In recent years, pagers have grown more complex, allowing for
        long {alphanumeric} messages to be received and scrolled
        though (as opposed to earlier models, which supported only
        short numeric messages); at the same time as pager functions
        are integrated into some {PDA}s.  If this trend continues, the
        distinction between {PDA}s and high-end {pagers} will
        disappear.

        {Short Message Service} allows a mobile phone to display a
        message, just like an alphanumeric pager.

        2. <tool> A program for viewing a {text file} a screenful at a
        time via a text {terminal}, as opposed to scrolling through it
        in a {GUI} window, or {cat}ting it all at once to the
        terminal.

        The best known pagers are {more}, {less}, pg and list.com.

        (1997-09-11)

paging

        <operating system> A technique for increasing the memory space
        available by moving infrequently-used parts of a program's
        working memory from {RAM} to a secondary storage medium,
        usually disk.  The unit of transfer is called a page.

        A {memory management unit} (MMU) monitors accesses to memory
        and splits each address into a page number (the most
        significant bits) and an offset within that page (the lower
        bits).  It then looks up the page number in its page table.
        The page may be marked as paged in or paged out.  If it is
        paged in then the memory access can proceed after translating
        the {virtual address} to a {physical address}.  If the
        requested page is paged out then space must be made for it by
        paging out some other page, i.e. copying it to disk.  The
        requested page is then located on the area of the disk
        allocated for "{swap space}" and is read back into {RAM}.  The
        page table is updated to indicate that the page is paged in
        and its physical address recorded.

        The MMU also records whether a page has been modified since it
        was last paged in.  If it has not been modified then there is
        no need to copy it back to disk and the space can be reused
        immediately.

        Paging allows the total memory requirements of all running
        tasks (possibly just one) to exceed the amount of {physical
        memory}, whereas {swapping} simply allows multiple processes
        to run concurrently, so long as each process on its own fits
        within {physical memory}.

        (1996-11-22)

PaiLisp

        <language> A {parallel} {Lisp} built on {Scheme} in 1986.

        ["A Parallel Lisp Language PaiLisp and its Kernel
        Specification", T. Ito et al, in Parallel Lisp: Languages and
        Systems, T. Ito et al eds, LNCS 441, Springer 1989].

        (1995-01-30)

pain in the net

        {flamer}

Paintbrush

        <graphics, tool> A {Microsoft Windows} tool for creating
        {bitmap} graphics.

        (1996-08-26)

PAISley

        An operational specification language from {Bell Labs}.

        ["An Operational Approach to Requirements Specification for
        Embedded Systems", P. Zave, IEEE Trans Soft Eng
        SE-8(3):250-269 (May 1982)].

        (1995-01-30)

PAL

        1. <language> {Paradox Application Language}.

        2. For the {AVANCE} distributed {persistent} {operating
        system}.

        ["PAL Reference Manual", M. Ahlsen et al, SYSLAB WP-125,
        Stockholm 1987].

        ["AVANCE: An Object Management System", A. Bjornerstedt et al,
        SIGPLAN Notices 23(11):206-221 (OOPSLA '88) (Nov 1988)].

        [What is it?]

        3. <language> An {object-oriented} {Prolog}-like language.

        ["Inheritance Hierarchy Mechanism in Prolog", K. Akama, Proc
        Logic Prog '86, LNCS 264, Springer 1986, pp. 12-21].

        4. <language> {PDP Assembly Language}.

        5. <language> {Pedagogic Algorithmic Language}.

        6. <hardware, integrated circuit> {Programmable Array Logic}.

        (1995-01-26)

Palace

        <virtual reality, chat> A proprietary multi-user {virtual
        reality}-like {talk} system.

        The Palace is distinguished from most other VR-like systems in
        that it is only two-dimensional rather than three; rooms,
        {avatars}, and "props" are made up of relatively small 2D
        {bitmap} images.

        Palace is a crude {hack}, or lightweight, depending on
        your point of view.

        {Home (http://www.thepalace.com/)}.

        (1997-09-14)

palette

        {colour palette}

palmtop

        <computer> (Or "pocket computer", "Hand-held Personal
        Computer", H/PC) A small general-purpose, programmable,
        battery-powered computer cabable of handling both numbers and
        text (in contrast to most {pocket calculators}) which can be
        operated comfortably while held in one hand.  A palmtop is
        usually loaded with an {operating system} such as {Windows
        CE}.  Data can be transferred between the palmtop and a
        desktop {PC}.

        A palmtop is very similar to a {Personal Digital Assistant}
        though a palmptop may have a larger keyboard and more {RAM}
        and is possibly more general purpose in concept, if not in
        practise.

        The {Psion Organiser} is one of the best known examples.  [Was
        it the first?]

        (1998-04-19)

Palo Alto Research Center

        {XEROX PARC}

Palo Alto Research Centre

        {XEROX PARC}

PAM

        {Pluggable Authentication Module}

Pam

        <language> A {toy} {ALGOL}-like language used in "Formal
        Specification of Programming Languages: A Panoramic Primer",
        F.G. Pagan, P-H 1981.

        (1996-12-23)

Pandora

        <language> {Parlog} extended to allow {don't-know
        nondeterminism}.

        ["Pandora: Non-Deterministic Parallel Logic Programming",
        R. Bahgat et al, Proc 6th Intl Conf Logic Programming, MIT
        Press 1989 pp. 471-486].

        (1995-04-27)

panic

        1. <operating system> What {Unix} does when a critical
        internal consistency checks fails in such a way that Unix
        cannot continue.  The {kernel} attempts to print a short
        message on the {console} and write an image of memory into the
        {swap area} on disk.  This can be analysed later using {adb}.
        The kernel will then either wait in a {tight loop} until the
        machine is rebooted or will initiate an automatic {reboot}.

        {Unix manual page}: panic(8).

        2. Action taken by software which discovers some fatal problem
        which prevents it from continuing to run.

        (1995-03-01)

PANON

        A family of pattern-directed string processing languages based
        on {generalised Markov algorithm}s.

        PANON-1 is based on {simple generalised Markov algorithm}s and
        PANON-2 on {conditional functional generalised Markov
        algorithm}s.

        ["String Processing Languages and Generalized Markov
        Algorithms", A. C. Forino, Proc IFIP Working Conf on Symb
        Manip Languages, pp.141-206, Amsterdam 1968].

PANS

        {Pretty Amazing New Stuff}.

Pansophic

        A US Software Engineering company.

Pantone

        <graphics> A set of standard colours for printing, each of
        which is specified by a single number.  You can buy a Pantone
        swatch book containing samples of each colour.  Some computer
        graphics software allows colours to be specified as Pantone
        numbers.  Even though a computer {monitor} can only show an
        approximation to some of the colours, the software can output
        a {colour separation} for each different Pantone colour,
        enabling a print shop to exactly reproduce the original
        desired colour.

        (1996-03-23)

PAP

        1. <networking, protocol, security> {Password Authentication
        Protocol}.

        2. <networking, protocol, printer> {Printer Access Protocol}.

        (1996-03-23)

Paper Feed Control Character

        (PFCC) An obscure mechanism used in Fortran run-time systems
        whereby the first character of a line of output to a
        line-printer caused various actions after the line was
        printed:

                space   return newline
                0       return newline return newline
                1       form-feed
                +       return

papermail

        {snail mail}

paper-net

        {snail mail}

PARADE

        PARallel Applicative Database Engine.  A project at Glasgow
        University to construct a transaction-processor in the
        parallel {functional programming} language {Haskell} to run on
        an {ICL} {EDS+} database machine.

PARADIGM PLUS

        A configurable {object-oriented} {CASE} tool from {Proto
        Soft}.

Paradigms of AI Programming

        A book by Peter Norvig with {Scheme} and {Prolog}
        {interpreter}s and {compiler}s in {Common Lisp}.

        {(ftp://Unix.sri.com/pub/norvig/)}

        ["Paradigms of AI Programming", Peter Norvig].

Paradise

        Paradise is a subsystem (a set of packages) developed to
        implement inter-processes, inter-tasks and inter-machine
        communication for {Ada} programs under {Unix}. This subsystem
        gives the user full access to files, {pipe}s, {socket}s (both
        Unix and {Internet}) and {pseudo-device}s.

        Paradise has been ported to {Sun}, {DEC}, {Sony MIPS},
        {Verdex} compiler, DEC compiler, {Alsys}/{Systeam} compiler.

        {Version 2.0 of the library
        (ftp://cnam.cnam.fr/pub/Ada/Paradise)}.  E-mail:
        <paradise-info@cnam.cnam.fr>.

        (1992-09-30)

Paradox

        <database> {Borland}'s {IBM PC} {relational database}.

        Paradox 7 runs under {Windows 95} and {Windows NT}.  Paradox 5
        runs on {Microsoft Windows} and provides a graphical
        environment, a debugger, a {data modeling} tool, and many
        "ObjectPAL" commands.

        {(http://www.borland.com/Product/ProdInfo.html)}.

        (1996-05-27)

paradox

        <logic> An apparently sound argument leading to a
        {contradiction}.

        Some famous examples are {Russell's paradox} and the {liar
        paradox}.  Most paradoxes stem from some kind of
        {self-reference}.

        (1995-03-17)

Paradox Application Language

        (PAL) The programming language for {Paradox}, {Borland}'s
        {relational database}.

        (1995-01-26)

Paragon

        Mark Sherman.  IEEE Software (Nov 1991).

Paralation

        PARALlel reLATION.  Sabot, MIT 1987.  A framework for parallel
        programming.  A "field" is an array of objects, placed at
        different sites.  A paralation is a group of fields, defining
        nearness between field elements.  Operations can be performed
        in parallel on every site of a paralation.

        ["The Paralation Model: Architecture Independent Programming",
        G.W. Sabot <gary@think.com>, MIT Press 1988].

Paralation C

        Paralation embedded in C.  Under development.

Paralation LISP

        Embeds the paralation model in Common LISP.  Available
        from MIT Press, (800)356-0343.

ParAlfl

        Hudak, Yale.  Parallel functional language, a superset of
        Alfl.  Used by the Alfalfa system on Intel iPSC and Encore
        Multimax.

        ["Para-Functional Programming", P. Hudak, Computer 19(8):60-70
        (Aug 1986)].

        ["Alfalfa: Distributed Graph Reduction on a Hypercube
        Multiprocessor", B.  Goldberg & P. Hudak, TR, Yale U, Nov
        1986].

Parallaxis

        A {procedural} programming language by Thomas Braunl
        <braunl@informatik.uni-stuttgart.de> of the {University of
        Stuttgart}.  It is based on {Modula-2}, but extended for {data
        parallel} ({SIMD}) programming.  The main approach for machine
        independent parallel programming is to include a description
        of the virtual parallel machine with each parallel
        {algorithm}.

        There is a simulator and {X Window System}-based profiler for
        {workstation}s, {Macintosh} and {IBM PC}.

        Version 2.0 runs on {MP-1}, {CM-2}, {Sun-3}, {Sun-4},
        {DECstation}, {HP 700}, {RS/6000}.

        {(ftp://ftp.informatik.uni-stuttgart.de/pub/parallaxis)}

        ["User Manual for Parallaxis Version 2.0", T. Braunl, U
        Stuttgart].

        (1992-10-23)

Parallel C

        1. Never implemented, but influenced the design of {C*}.

        2. {C} for the {transputer} by {3L}.

        3. (PC) Extensions to {C} developed at the {University of
        Houston} providing a {shared memory} {SIMD} model on {message
        passing} computers.

        {(ftp://karazm.math.uh.edu/pub/Parallel/Tools/pc.1.1.1.tar.Z)}

        E-mail: Ridgway Scott <scott@uh.edu>.

        (1995-03-21)

parallel computer

        {parallel processor}

parallel computing

        {parallel processing}

Parallel FORTH

        {Forth} For the {MPP}.

Parallel Fortran

        <language> (Pfortran) Extensions to {Fortran} by Ridgway Scott
        <scott@uh.edu> of Houston University.  Pfortran provides a
        {shared memory} {SIMD} model on {message passing} computers.

        It was under development in 1994.

        ["Pfortran: A Parallel Dialect of Fortran", L.R. Scott,
        Fortran Forum 11(3):20-31, Sep 1992].

        (1994-11-08)

Parallel Haskell

        <language, parallel> (pH) A parallel variant of {Haskell}
        incorporating ideas from {Id} and {Sisal}.  pH is under
        development.

        Mailing list: pH@abp.lcs.mit.edu.

        (1995-03-31)

parallelism

        1. {parallel processing}.

        2. <parallel> The maximum number of independant subtasks in a
        given task at a given point in its execution.  E.g. in
        computing the expression

                (a + b) *

        (c + d) the expressions a, b, c and d can all be calculated in
        parallel giving a degree of parallelism of (at least) four.
        Once they have been evaluated then the expressions a + b and c
        + d can be calculated as two independent parallel processes.

        The {Bernstein condition} states that processes P and Q can be
        executed in parallel (or in either sequential order) only if:

        (i) there is no overlap between the inputs of P and the
        outputs of Q and vice versa and

        (ii) there is no overlap between the outputs of P, the outputs
        of Q and the inputs of any other task.

        If process P outputs value v which process Q reads then P must
        be executed before Q.  If both processes write to some
        variable then its final value will depend on their execution
        order so they cannot be executed in parallel if any other
        process depends on that variable's value.

        (1995-05-07)

Parallel Pascal

        <language> A {data-parallel} language, similar to {Actus} and
        {Glypnir}.

        ["Parallel Pascal: An Extended Pascal for Parallel Computers",
        A. Reeves, J Parallel Dist Computing 1:64-80 (1984)].

        (1995-05-07)

parallel port

        <hardware> An interface from a computer system where data is
        transferred in or out in parallel, that is, on more than one
        wire.  A parallel port carries one {bit} on each wire thus
        multiplying the transfer rate obtainable over a single wire.
        There will usually be some control signals on the port as well
        to say when data is ready to be sent or received.

        The commonest kind of parallel port is a {printer port}, e.g. a
        {Centronics} port which transfers eight bits at a time.  Disks
        are also connected via special parallel ports, e.g. {SCSI} or
        {IDE}.

        (1995-01-24)

Parallel Presence Detect

         {presence detect}

parallel processing

        <parallel> The simultaneous use of more than one computer to
        solve a problem.  There are many different kinds of parallel
        computer (or "parallel processor").  They are distinguished by
        the kind of interconnection between processors (known as
        "processing elements" or PEs) and between processors and
        memory.  {Flynn's taxonomy} also classifies parallel (and
        serial) computers according to whether all processors execute
        the same instructions at the same time ("{single
        instruction/multiple data}" - SIMD) or each processor executes
        different instructions ("{multiple instruction/multiple data}"
        - MIMD).

        The processors may either communicate in order to be able to
        cooperate in solving a problem or they may run completely
        independently, possibly under the control of another processor
        which distributes work to the others and collects results from
        them (a "{processor farm}").  The difficulty of cooperative
        problem solving is aptly demonstrated by the following dubious
        reasoning:

                If it takes one man one minute to dig a post-hole
                then sixty men can dig it in one second.

        {Amdahl's Law} states this more formally.

        Processors communicate via some kind of network or bus or a
        combination of both.  Memory may be either {shared memory}
        (all processors have equal access to all memory) or private
        (each processor has its own memory - "{distributed memory}")
        or a combination of both.

        A huge number of software systems have been designed for
        programming parallel computers, both at the {operating system}
        and programming language level.  These systems must provide
        mechanisms for partitioning the overall problem into separate
        tasks and allocating tasks to processors.  Such mechanisms may
        provide either {implicit parallelism} - the system (the
        {compiler} or some other program) partitions the problem and
        allocates tasks to processors automatically or {explicit
        parallelism} where the programmer must annotate his program to
        show how it is to be partitioned.  It is also usual to provide
        synchronisation primitives such as {semaphore}s and {monitor}s
        to allow processes to share resources without conflict.

        {Load balancing} attempts to keep all processors busy by
        moving tasks from heavily loaded processors to less loaded
        ones.

        Communication between tasks may be either via {shared memory}
        or {message passing}.  Either may be implemented in terms of
        the other and in fact, at the lowest level, shared memory uses
        message passing since the address and data signals which flow
        between processor and memory may be considered as messages.

        See also {cellular automaton}.

        {Usenet} newsgroup: {news:comp.parallel}.

        {Institutions (http://www.ccsf.caltech.edu/other_sites.html)},
        {research groups
        (http://www.cs.cmu.edu/~scandal/research-groups.html)}.

        (1996-04-23)

parallel processor

        <parallel> A computer with more than one {central processing
        unit}, used for {parallel processing}.

        (1996-04-23)

parallel random access machine

        <parallel> (PRAM) An idealised {parallel processor} consisting
        of P processors, unbounded {shared memory}, and a common
        {clock}.  Each processor is a random access machine (RAM)
        consisting of R {registers}, a {program counter}, and a
        read-only signature register.  Each RAM has an identical
        program, but the RAMs can branch to different parts of the
        program.  The RAMs execute the program synchronously one
        instruction in one clock cycle.

        See also {pm2}.

        (1997-06-04)

parallel reduction

        A form of {applicative order reduction} in which all {redex}es
        in an expression are reduced simultaneously.  Variants include
        {parallel outermost reduction} and {lenient reduction}.  See
        {normal order reduction}.

Parallel SML

        ["Parallel SML: A Functional Language and its Implementation
        in Dactl", Kevin Hammond, Pitman Press 1990].

Parallel Sysplex

        <operating system> A {Sysplex} that uses one or more {coupling
        facilities}.

        {Home (http://www.s390.ibm.com/products/pso/psohp.html)}.

        (1996-11-21)

Parallel Virtual Machine

        <parallel, networking, tool> (PVM) 1. A {software} system
        designed to allow a network of {heterogeneous} machines to be
        used as a single {distributed} {parallel processor}.

        PVM was developed by the {University of Tennessee}, The {Oak
        Ridge National Laboratory} and the {Emory University}.

        {Home (http://www.epm.ornl.gov/pvm/)}.

        {Usenet} newsgroup: {news:comp.parallel.pvm}.

        2. The {intermediate language} used by the {Gambit} compiler for
        {Scheme}.

        [And Multilisp?]

        (1995-01-30)

param

        {argument}

parameter

        {argument}

parameter RAM

        (PRAM) A small memory in a {Macintosh} with a battery power
        supply which stores system parameters (desktop pattern,
        selectable memory configuration, etc.) when the computer is
        turned off.

        (1995-10-08)

parametric polymorphism

        See {polymorphism}.

paraML

        An extension of {Standard ML} which supports {coarse-grained
        parallelism}.  Peter Bailey, while at the Edinburgh Parallel
        Computing Centre at {University of Edinburgh}, has implemented of
        Murray Cole's original four {skeleton}s in paraML.

        See also {Skel-ML}.

paranoid programming

        <programming> Programming style that tries to prepare for the
        worst external conditions, including incorrect input, resource
        limitations, hardware and software failure and even {can't
        happen} errors to the fullest possible extent.  The expression
        usually has the connotation that the efforts are unnecessary
        or too costly ("Maybe this code is just paranoid programming,
        but I think it is necessary to avoid a possible overflow
        condition".)

        (1997-02-27)

ParaSoft Corp

        Distributors of the {message passing} system {Express}.

        {(ftp://ftp.parasoft.com/)}.  Telephone: +1 (818) 792-9941.
        E-mail: <support@parasoft.com>.

        (1994-10-19)

Parasol

        Parallel Systems Object Language.

        An {object-oriented} language which supports network and
        parallel computing.  It has {module}s and {exception}s.

        ["The Parasol Programming Language", R. Jervis
        <hjervis!rbj@uunet.uu.net>, Dr Dobbs J, Oct 1993, pp. 34-41].

        (1995-01-26)

PARC

        {XEROX PARC}

parent

        <mathematics, data> (Or "mother", "precedessor") In a {tree},
        a node which points to at least one {daughter} node.

        (1998-11-14)

parentheses

        See {left parenthesis}, {right parenthesis}.

        (1997-12-03)

parent message

        <messaging> What a {followup} follows up.

        (1997-12-03)

parent process

        <operating system> The {Unix} {process} that created one or
        more other processes.

        Every process except process 0 is created when another process
        executes the {fork} {system call}.  The process that invoked
        fork is the parent process, and the newly created process is
        the {child process}.  Every process has one parent process,
        but can have many child processes.

        The {kernel} identifies each process by its {process
        identifier} (PID).  Process 0 is a special process that is
        created when the system boots; after forking a child process
        (process 1), process 0 becomes the {swapper} process.  Process
        1, known as {init}, is the ancestor of every other process in
        the system and enjoys a special relationship with them.

        (1997-12-03)

Pari

        <mathematics, tool> A system for {symbolic mathematics},
        especially {number theory}.

        Version 1.37 for {Unix}, {Macintosh}, {MS-DOS}, {Amiga}.

        E-mail: <pari@alioth.greco-prog.fr>.

        {(ftp://math.ucla.edu/pub/pari)}

        (1995-04-12)

Paris

        PARallel Instruction Set.

        A low-level language for the {Connection Machine}.

        (1995-02-16)

parity

        <storage, communications> An extra bit added to a {byte} or
        {word} to reveal errors in storage (in {RAM} or {disk}) or
        transmission.  Even (odd) parity means that the parity bit is
        set so that there are an even (odd) number of one bits in the
        word, including the parity bit.  A single parity bit can only
        reveal single bit errors since if an even number of bits are
        wrong then the parity bit will not change.  Moreover, it is
        not possible to tell which bit is wrong, as it is with more
        sophisticated {error detection and correction} systems.

        See also {longditudinal parity}, {checksum}, {cyclic
        redundancy check}.

        (1996-03-01)

parity bit

        <storage, communications> An extra bit added to a {byte} or
        {word} to reveal errors.

        See {parity}.

        (1996-03-01)

parity error

        <storage, communications> An error discovered by the inclusion
        of a {parity} bit.

        (1996-03-01)

Parkinson's Law of Data

        "Data expands to fill the space available for storage"; buying
        more memory encourages the use of more memory-intensive
        techniques.  It has been observed over the last 10 years that
        the memory usage of evolving systems tends to double roughly
        once every 18 months.  Fortunately, memory density available
        for constant dollars also tends to double about once every 12
        months (see {Moore's Law}); unfortunately, the laws of physics
        guarantee that the latter cannot continue indefinitely.

Park-Miller

        A {pseudo-random} number generation {algorithm} which was
        discredited by Marsaglia and Steve Sullivanin in the July 1993
        CACM.

        [CACM Oct 1988].

Parlance

        A {concurrent} language.

        ["Parallel Processing Structures: Languages, Schedules, and
        Performance Results", P.F. Reynolds, PhD Thesis, UT Austin
        1979].

        (1994-12-12)

Parlog

        Clark & Gregory, Imperial College 1983.  An {AND-parallel}
        {Prolog}, with {guards} and {committed choice nondeterminism}
        ({don't care nondeterminism}).  {Shallow backtracking} only.

        Implementations: MacParlog and PC-Parlog from Parallel Logic
        Programming Ltd., Box 49 Twickenham TW2 5PH, UK.

        See also {SPM}.

        {(ftp://ftp.inria.fr/lang/Parlog.tar.Z)}.  E-mail:
        <parlog@doc.ic.ac.uk>.

        ["Parlog: A Parallel Logic Programming Language", K.L. Clark
        and S. Gregory, Imperial College, London, May 1983].
        ("Parlog83", in which the ouput mechanism was assignment).

        ["Parallel Logic Programming in PARLOG, The Language and Its
        Implementation", S. Gregory, A-W 1987].  ("Parlog86", in which
        the output mechanism was unification, as in {GHC}).  (See
        {Strand}).

Parlog++

        An object-oriented extension to MacParlog.  It combines
        object-oriented and parallel logic programming, giving the
        benefits of both paradigms within a single coherent
        development environment.

        Andrew Davison <ad@cs.mu.oz.au>, then Imperial College now U
        Melbourne.  Object orientation plus parallel logic, built on
        top of MacParlog.

        "Parlog++: A Parlog Object-Oriented Language", A. Davison,
        Parlog Group, Imperial College 1988.  Sold by PLP Ltd.
        E-mail: <parlog@doc.ic.ac.uk>.

parm

        /parm/ Further-compressed form of {param}.  This term is an
        {IBM}ism, and written use is almost unknown outside IBM shops;
        spoken /parm/ is more widely distributed, but the synonym
        {arg} is favoured among hackers.  Compare {var}.

PARMACS

        The "Argonne macros" from {Argonne National Laboratory}.  A
        package of {macro}s written in {m4} for portable {parallel
        programming}, using {monitor}s on {shared memory} machines,
        and {message passing} on {distributed memory} machines.

        [E. Lusk et al, "Portable Programs for Parallel Processors",
        HRW 1987. p4].

        {(ftp://research.att.com/netlib/parmacs)}

ParMod

        "Parallel Programming with ParMod", S. Eichholz, Proc 1987
        Intl Conf on Parallel Proc, pp.377-380.

PARS

        {Programmable Airline Reservation System}

PARSEC

        Extensible language with PL/I-like syntax, derived from
        PROTEUS.  "PARSEC User's Manual", Bolt Beranek & Newman (Dec
        1972).

parser

        <language> An {algorithm} or program to determine the
        syntactic structure of a sentence or string of symbols in some
        language.  A parser normally takes as input a sequence of
        {tokens} output by a {lexical analyser}.  It may produce some
        kind of {abstract syntax tree} as output.  One of the best
        known {parser generators} is {yacc}.

        (1997-07-21)

parser generator

        A program which takes a formal description of a {grammar}
        (e.g. in {BNF}) and outputs source code for a parser which will
        recognise valid strings obeying that grammar and perform
        associated actions.  {Unix}'s {yacc} is a well known example.

parsing

        {parser}

Parsley

        A {Pascal} extension for construction of {parse tree}s, by
        Barber of {Summit Software}.  It features {Iterator}s.

        ["PARSLEY: A New Compiler-Compiler", in Software Development
        Tools, Techniques and Alternatives, Arlington VA, Jul 1983,
        pp.232-241].

        (1995-02-22)

Partial Differential Equation LANguage

        (PDELAN)

        ["An Extension of FORTRAN Containing Finite Difference
        Operators", J. Gary et al, Soft Prac & Exp 2(4) (Oct 1972)].

partial equivalence relation

        (PER) A relation R on a set S where R is symmetric (x R y => y
        R x) and transitive (x R y R z => x R z) and where there may
        exist elements in S for which the relation is not defined.  A
        PER is an equivalence relation on the subset for which it is
        defined, i.e. it is also reflexive (x R x).

partial evaluation

        <compiler, algorithm> (Or "specialisation") An {optimisation}
        technique where the {compiler} evaluates some subexpressions
        at {compile-time}.  For example,

                pow x 0 = 1
                pow x n = if even n
                          then pxn2 * pxn2
                          else x * pow x (n-1)
                                where pxn2 = pow x (n/2)
                f x = pow x 5

        Since n is known we can specialise pow in its second argument
        and unfold the recursive calls:

                pow5 x = x * x4 where x4 = x2 * x2
                                      x2 = x * x
                f x = pow5 x

        pow5 is known as the residual.  We could now also unfold pow5
        giving:

                f x = x * x4 where x4 = x2 * x2
                                   x2 = x  * x

        It is important that the partial evaluation algorithm should
        terminate.  This is not guaranteed in the presence of
        recursive function definitions.  For example, if partial
        evaluation were applied to the right hand side of the second
        clause for pow above, it would never terminate because the
        value of n is not known.

        Partial evaluation might change the termination properties of
        the program if, for example, the expression (x * 0) was
        reduced to 0 it would terminate even if x (and thus x * 0) did
        not.

        It may be necessary to reorder an expression to partially
        evaluate it, e.g.

                f x y = (x + y) + 1
                g z = f 3 z

        If we rewrite f:

                f x y = (x + 1) + y

        then the expression x+1 becomes a constant for the function g
        and we can say

                g z = f 3 z = (3 + 1) + z = 4 + z

        Partial evaluation of {built-in functions} applied to constant
        arguments is known as {constant folding}.

        See also {full laziness}.

        (1999-05-25)

partial function

        A function which is not defined for all arguments of its input
        type.  E.g.

                f(x) = 1/x if x /= 0.

        The opposite of a {total function}.  In {denotational
        semantics}, a partial function

                f : D -> C

        may be represented as a total function

                ft : D' -> lift(C)

        where D' is a superset of D and

                ft x = f x      if x in D
                ft x = bottom   otherwise

        where lift(C) = C U {bottom}.  Bottom ({LaTeX} {\perp})
        denotes "undefined".

        (1995-02-03)

partial key

        <database> A {key} which identifies a subset of a set of
        information items (e.g. database "{records}"), and which could
        narrow the subset to one item if other partial key(s) were
        combined with it.

        (1997-04-26)

partially ordered set

        A {set} with a {partial ordering}.

partial ordering

        A {relation} R is a partial ordering if it is a {pre-order}
        (i.e. it is {reflexive} (x R x) and {transitive} (x R y R z =>
        x R z)) and it is also {antisymmetric} (x R y R x => x = y).
        The ordering is partial, rather than total, because there may
        exist elements x and y for which neither x R y nor y R x.

        In {domain theory}, if D is a set of values including the
        undefined value ({bottom}) then we can define a partial
        ordering relation <= on D by

                x <= y  if  x = bottom or x = y.

        The constructed set D x D contains the very undefined element,
        (bottom, bottom) and the not so undefined elements, (x,
        bottom) and (bottom, x).  The partial ordering on D x D is
        then

                (x1,y1) <= (x2,y2)  if  x1 <= x2 and y1 <= y2.

        The partial ordering on D -> D is defined by

                f <= g  if  f(x) <= g(x)  for all x in D.

        (No f x is more defined than g x.)

        A {lattice} is a partial ordering where all finite subsets
        have a {least upper bound} and a {greatest lower bound}.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-02-03)

Partial Response Maximum Likelihood

        <storage> (PRML) A method for converting the weak {analog}
        signal from the head of a {magnetic disk} drive into a digital
        signal.  PRML attempts to correctly interpret even small
        changes in the analog signal, whereas {peak detection} relies
        on fixed thresholds.  Because PRML can correctly decode a
        weaker signal it allows higher density recording.

        For example, PRML would read the magnetic flux density pattern
        70, 60, 55, 60, 70 as binary "101", and the same for 45, 40,
        30, 40, 45.  A peak detector would decode everything above,
        say, 50 as high, and below 50 as low, so the first pattern
        would read "111" and the second as "000".

        (1996-12-27)

partition

        1. <storage> A {logical} section of a {disk}.  Each partition
        normally has its own {file system}.  {Unix} tends to treat
        partitions as though they were separate physical entities.

        2. <mathematics> A division of a set into subsets so that each
        of its elements is in exactly one subset.

        (1996-12-09)

PARTS

        {Digitalk}.  {Visual language} for {OS/2} 2.0.

@-party

        <event> /at'par-tee/ (Or "@-sign party" /at'si:n par'tee/,
        from the {@} sign in an {electronic mail address}) A
        semi-closed party thrown for hackers at a science-fiction
        convention (especially the annual Worldcon); one must have an
        {electronic mail address} to get in, or at least be in company
        with someone who does.  One of the most reliable opportunities
        for hackers to meet {face-to-face} with people who might
        otherwise be represented by mere phosphor dots on their
        screens.

        Compare {boink}.

        (1996-05-08)

PARULEL

        "The PARULEL Parallel Rule Language", S. Stolfo et al, Proc
        1991 Intl Conf Parallel Proc, CRC Press 1991, pp.36-45.

Pascal

        <language> (After the French mathematician {Blaise Pascal}
        (1623-1662)) A programming language designed by {Niklaus
        Wirth} around 1970.  Pascal was designed for simplicity and
        for teaching programming, in reaction to the complexity of
        {ALGOL 68}.  It emphasises {structured programming}
        constructs, data structures and {strong typing}. Innovations
        included {enumeration type}s, {subrange}s, sets, {variant
        record}s and the {case statement}.  Pascal has been extremely
        influential in programming language design and has a great
        number of variants and descendants.

        ANSI/IEEE770X3.97-1993 is very similar to {ISO Pascal} but
        does not include {conformant array}s.

        ISO 7185-1983(E).  Level 0 and Level 1.  Changes from Jensen &
        Wirth's Pascal include name equivalence; names must be bound
        before they are used; loop index must be local to the
        procedure; formal procedure parameters must include their
        arguments; {conformant array schema}s.

        An ALGOL-descended language designed by Niklaus Wirth on the
        CDC 6600 around 1967--68 as an instructional tool for
        elementary programming.  This language, designed primarily to
        keep students from shooting themselves in the foot and thus
        extremely restrictive from a general-purpose-programming point
        of view, was later promoted as a general-purpose tool and, in
        fact, became the ancestor of a large family of languages
        including Modula-2 and {Ada} (see also {bondage-and-discipline
        language}).  The hackish point of view on Pascal was probably
        best summed up by a devastating (and, in its deadpan way,
        screamingly funny) 1981 paper by Brian Kernighan (of {K&R}
        fame) entitled "Why Pascal is Not My Favourite Programming
        Language", which was turned down by the technical journals but
        circulated widely via photocopies.  It was eventually
        published in "Comparing and Assessing Programming Languages",
        edited by Alan Feuer and Narain Gehani (Prentice-Hall, 1984).
        Part of his discussion is worth repeating here, because its
        criticisms are still apposite to Pascal itself after ten years
        of improvement and could also stand as an indictment of many
        other bondage-and-discipline languages.  At the end of a
        summary of the case against Pascal, Kernighan wrote:

        9. There is no escape

        This last point is perhaps the most important.  The language
        is inadequate but circumscribed, because there is no way to
        escape its limitations.  There are no casts to disable the
        type-checking when necessary.  There is no way to replace the
        defective run-time environment with a sensible one, unless one
        controls the compiler that defines the "standard procedures".
        The language is closed.

        People who use Pascal for serious programming fall into a
        fatal trap.  Because the language is impotent, it must be
        extended.  But each group extends Pascal in its own direction,
        to make it look like whatever language they really want.
        Extensions for separate compilation, FORTRAN-like COMMON,
        string data types, internal static variables, initialisation,
        {octal} numbers, bit operators, etc., all add to the utility
        of the language for one group but destroy its portability to
        others.

        I feel that it is a mistake to use Pascal for anything much
        beyond its original target.  In its pure form, Pascal is a toy
        language, suitable for teaching but not for real programming.

        Pascal has since been almost entirely displaced (by {C}) from
        the niches it had acquired in serious applications and systems
        programming, but retains some popularity as a hobbyist
        language in the {MS-DOS} and {Macintosh} worlds.

        See also {Kamin's interpreters}, {p2c}.

        ["The Programming Language Pascal", N. Wirth, Acta Informatica
        1:35-63, 1971].

        ["PASCAL User Manual and Report", K. Jensen & N. Wirth,
        Springer 1975] made significant revisions to the language.

        [BS 6192, "Specification for Computer Programming Language
        Pascal", {British Standards Institute} 1982].

        (1996-06-12)

Pascal-

        Pascal subset used in Brinch Hansen on Pascal Compilers, P.
        Brinch Hansen, P-H 1985.

Pascal-80

        A successor of Platon.  Developed at RC International for
        systems programming.  Later it was renamed Real-Time Pascal.
        "PASCAL80 Report", J. Staunstrup, RC Intl, Denmark Jan 1980.

Pascal+CSP

        "Pascal+CSP, Merging Pascal and CSP in a Parallel Processing
        Oriented Language", J. Adamo, Proc 3rd Intl Conf Distrib Comp
        Sys, IEEE 1982, pp.542-547.

Pascal-F

        Pascal extended to include fixed-point arithmetic.  E. Nelson,
        "Pascal-F: Programming Language for Real-Time Automotive
        Control", IEEE ElectroTechnol. Rev. (USA), 2:39, 1968.

Pascal-FC

        A {Pascal} derived from {Pascal-S} which provides several
        types of {concurrency}: {semaphore}s, {monitors}, both
        {occam}/{CSP}-style and {Ada}-style {rendezvous}.

        ["The Teaching Language Pascal-FC", G.L. Davies et al,
        Computer J 33(2):147-154 (Apr 1990)].

        (1994-11-02)

Pascal/L

        A {SIMD} parallel extension of {Pascal}.

        ["Implementation of an Array and Vector Processing Language",
        C. Fernstrom, Intl Conf Parallel Proc, IEEE, pp.113-127
        (1982)].

        (1994-11-02)

Pascal-Linda

        Ian Flockhart, U Edinburgh, 1991.  Under development.

Pascal-m

        ["Pascal-m: A Language for Loosely Coupled Distributed
        Systems", S. Abramsky et al in Distributed Computing Systems,
        Y. Paker et al eds, Academic Press 1986, pp. 163-189].

        (1994-11-02)

Pascal-P

        The variant of {Pascal} used by the {UCSD} {p-system}
        environment.  It has extended string and {array} operations,
        {random access file}s and {separate compilation}.  It uses
        {P-code} intermediate code and is available from {Pecan}.

        (1994-11-02)

Pascal P4

        compiler and interpreter

        Version ? 1

        compiler, assembler/interpreter, documentation

        Urs Ammann, Kesav Nori, Christian Jacobi

        {(ftp://ftp.cwi.nl/pascal/)}

        A compiler for Pascal written in Pascal, producing an
        intermediate code, with an assembler and interpreter for the
        code.

        reference: Pascal Implementation, by Steven Pemberton and
        Martin Daniels, published by Ellis Horwood, Chichester, UK (an
        imprint of Prentice Hall), ISBN: 0-13-653-0311.  Also
        available in Japanese.

        E-mail: <Steven.Pemberton@cwi.nl>.

        (1993/07/05)

Pascal Plus

        <language> {Pascal} with extensions for {object-oriented}
        {multiprogramming} by Jim Welsh and D. Bustard of {Queens
        University, Belfast}, UK.  Pascal Plus uses an "envelope"
        construct for both {packages} and {classes}.

        ["Pascal Plus - Another Language for Modular
        Multiprogramming", J. Welsh et al, Soft Prac & Exp 9:947
        (1979)].

        ["Sequential Program Structures", J. Welsh et al, P-H 1984,
        ISBN 0-13806828-3].

        (1997-12-09)

Pascal/R

        {Pascal} with {relational database} constructs added.  The
        first successful integrated {database} language.

        ["Pascal/R Report", J.W. Schmidt et al, U Hamburg, Fachbereich
        Informatik, Report 66, Jan 1980].

        (1994-10-19)

Pascal-S

        Simplified Pascal.  June, 1975.  A strict subset of Pascal,
        omits scalar types, subranges, sets, files, pointers, packed
        structures, 'with' and 'goto.  Source for a complete Pascal-S
        compiler is in "Pascal-S: A Subset and Its Implementation",
        N. Wirth in Pascal - The Language and Its Implementation, by
        D.W. Barron, Wiley 1979.

        {(ftp://csseq.cs.tamu.edu/mcguire/pascal-s)}

Pascal-SC

        ESPRIT DIAMOND Project.  An extension of Pascal for numerical
        analysis, with controlled rounding, overloading, dynamic
        arrays and modules.  "PASCAL-SC, A Computer Language for
        Scientific Computation", G.  Bohlender et al, Academic Press
        1987.

pasos2

        version:    Alpha

        parts:              Compiler, run-time library

        author:             Willem Jan Withagen <wjw@eb.ele.tue.nl>

        how to get:         {(ftp://ftp.eb.ele.tue.nl/pub/src/pascal/pasos2*)}

        A PASCAL/i386 compiler which generates code for OS/2 and
        DOS. It uses EMX as DOS extender and GNU/GAS, MASM or TASM as
        assembler.

        1993/12/17

Pasqual

        ["Pasqual: A Proposed Generalization of Pascal", R.D. Tennent,
        TR75-32, Queen's U, Canada, 1975].

PASRO

        <robotics> {PAScal} for RObots.

        ["PASRO - Pascal for Robots", C. Blume et al, Springer 1985].

        (1999-07-19)

PASSIM

        A {simulation} language based on {Pascal}.

        ["PASSIM: A Discrete-Event Simulation Package for Pascal", D.H
        Uyeno et al, Simulation 35(6):183-190 (Dec 1980)].

passive matrix display

        <hardware> A type of {liquid crystal display} which relies on
        {persistence} to maintain the state of each display element
        ({pixel}) between refresh scans.  The {resolution} of such
        displays is limited by the ratio between the time to set a
        pixel and the time it takes to fade.

        Contrast {active matrix display}.

        (1995-12-09)

passphrase

        <operating system> A string of words and characters that you
        type in to authenticate yourself.  Passphrases differ from
        passwords only in length.  Passwords are usually short - six
        to ten characters.  Passphrases are usually much longer - up
        to 100 characters or more.  Their greater length makes
        passphrases more secure.  Modern passphrases were invented by
        Sigmund N. Porter in 1982.

        Phil Zimmermann's popular encryption program {PGP}, for
        example, requires you to make up a passphrase that you then
        must enter whenever you sign or decrypt messages.

        {(http://world.std.com/~reinhold/diceware.page.html)}.

        (1996-12-21)

password

        An arbitrary string of characters chosen by a user or {system
        administrator} and used to authenticate the user when he
        attempts to log on in order to prevent unauthorised access to
        his account.

        A favourite activity among unimaginative {computer nerd}s and
        {cracker}s is writing programs which attempt to discover
        passwords by using lists of commonly chosen passwords such as
        people's names (spelled forwards or backwards).  It is
        recommended that to defeat such methods passwords use a
        mixture of upper and lower case letters or digits and avoid
        proper names and real words.  If you have trouble remembering
        random strings of characters, make up an acronym like
        "ihGr8trmP" ("I have great trouble remembering my password").

        (1994-10-27)

Password Authentication Protocol

        <networking> (PAP) An {authentication} scheme used by {PPP}
        servers to validate the identity of the originator of the
        connection.

        PAP applies a two-way {handshaking} procedure.  After the link
        is established the originator sends an id-password pair to the
        server.  If authentication succeeds the server sends back an
        acknowledgement; otherwise it either terminates the connection
        or gives the originator another chance.

        PAP is not a strong authentication method.  Passwords are sent
        over the circuit "in the clear" and there is no protection
        against playback or repeated "trial and error" attacks.  The
        originator is in total control of the frequency and timing of
        the attempts.  Therefore, any server that can use a stronger
        authentication method, such as {CHAP}, will offer to negotiate
        that method prior to PAP.  The use of PAP is appropriate,
        however, if a {plaintext} password must be available to
        simulate a login at a remote host.

        PAP is defined in {RFC} 1334.

        (1996-03-23)

paste

        {copy and paste}

pastie

        /pay'stee/ An adhesive label designed to be attached to a key
        on a keyboard to indicate some non-standard character which
        can be accessed through that key.  Pasties are likely to be
        used in APL environments, where almost every key is associated
        with a special character.  A pastie on the R key, for example,
        might remind the user that it is used to generate the rho
        character.  The term properly refers to nipple-concealing
        devices formerly worn by strippers in concession to
        indecent-exposure laws; compare {tits on a keyboard}.

PAT

        1. <language> {Personalized Array Translator}.

        2. <networking> {Port Address Translation}.

        (1998-05-09)

patch

        <software> 1. A temporary addition to a piece of code, usually
        as a {quick-and-dirty} remedy to an existing {bug} or
        {misfeature}.  A patch may or may not work, and may or may not
        eventually be incorporated permanently into the program.
        Distinguished from a {diff} or {mod} by the fact that a patch
        is generated by more primitive means than the rest of the
        program; the classical examples are instructions modified by
        using the front panel switches, and changes made directly to
        the binary executable of a program originally written in an
        {HLL}.  Compare {one-line fix}.

        2. To insert a patch into a piece of code.

        3. [in the Unix world] A {diff}.

        4. A set of modifications to binaries to be applied by a
        patching program.  {IBM} systems often receive updates to the
        {operating system} in the form of absolute {hexadecimal}
        patches.  If you have modified your OS, you have to
        disassemble these back to the {source code}.  The patches
        might later be corrected by other patches on top of them
        (patches were said to "grow scar tissue").  The result was
        often a convoluted {patch space} and headaches galore.

        There is a classic story of a {tiger team} penetrating a
        secure military computer that illustrates the danger inherent
        in binary patches (or, indeed, any patches that you can't - or
        don't - inspect and examine before installing).  They couldn't
        find any {trap doors} or any way to penetrate security of
        IBM's OS, so they made a site visit to an IBM office
        (remember, these were official military types who were
        purportedly on official business), swiped some IBM stationery,
        and created a fake patch.  The patch was actually the trapdoor
        they needed.  The patch was distributed at about the right
        time for an IBM patch, had official stationery and all
        accompanying documentation, and was dutifully installed.  The
        installation manager very shortly thereafter learned something
        about proper procedures.

        5. {Larry Wall}'s "patch" utility, which automatically applies
        a patch to a set of {source code} or other text files.  It
        accepts input in any of the four forms output by the {Unix}
        {diff} utility and uses many helpful {heuristics} to determine
        how to apply them.

        Diff and patch are the standard way of producing and applying
        updates to {Unix} files ditributed via {Usenet} and the
        {Internet}, both have been ported to other {operating
        systems}.

        See your nearest {GNU archive site}.

        (1996-06-04)

patch pumpkin

        {pumpkin}

patch space

        An unused block of bits left in a binary so that it can later
        be modified by insertion of machine-language instructions
        there (typically, the patch space is modified to contain new
        code, and the superseded code is patched to contain a jump or
        call to the patch space).  The widening use of HLLs has made
        this term rare; it is now primarily historical outside {IBM}
        shops.  See {patch}, {zap}, {hook}.

PATCHY

        A {FORTRAN} {code management} program written at {CERN}.

path

        1. <networking> A {bang path} or explicitly routed {Internet
        address}; a node-by-node specification of a link between two
        machines.

        2. <file system> {pathname}.

        3. <operating system>  The list of directories the kernel
        (under {Unix}) or the command interpreter (under {MS-DOS})
        searches for {executables}.  It is stored as part of the
        {environment} in both operating systems.

        Other, similar constructs abound under Unix; the {C}
        {preprocessor}, for example, uses such a search path to locate
        "#include" files.

        (1996-11-21)

pathname

        <file system> (Or "path") The specification of a node (file or
        directory) in a {hierarchical file system}.  The path is
        usually specified by listing the nodes top-down, separating
        the directories by the {pathname separator} ("/" in {Unix},
        "\" in {MS-DOS}).

        A pathname may be an {absolute pathname} or a {relative
        pathname}.  The part of the pathname of a file after the last
        separator is called the {basename}.

        (1997-03-10)

pathname separator

        <file system> The character used to separate elements of a
        {path} or {pathname}.  Under {Unix} and {POSIX.1} compliant
        systems the pathname separator is the (forward) {slash}, in
        {MS-DOS} {backslash} serves the same purpose.  For obvious
        reasons the no directory or file name can contain this
        character.

        (1996-11-21)

pathological

        1. [scientific computation] Used of a data set that is grossly
        atypical of normal expected input, especially one that exposes
        a weakness or bug in whatever algorithm one is using.  An
        algorithm that can be broken by pathological inputs may still
        be useful if such inputs are very unlikely to occur in
        practice.

        2. When used of test input, implies that it was purposefully
        engineered as a worst case.  The implication in both senses is
        that the data is spectacularly ill-conditioned or that someone
        had to explicitly set out to break the algorithm in order to
        come up with such a crazy example.

        3. Also said of an unlikely collection of circumstances.  "If
        the network is down and comes up halfway through the execution
        of that command by root, the system may just crash."  "Yes,
        but that's a pathological case."  Often used to dismiss the
        case from discussion, with the implication that the
        consequences are acceptable, since they will happen so
        infrequently (if at all) that it doesn't seem worth going to
        the extra trouble to handle that case (see sense 1).

Path Pascal

        Parallel extension of Pascal.  Processes have shared access to
        data objects.  Constraints on their synchronisation are
        specified in a path expression.

        ["An Overview of Path Pascal's Design", R.H. Campbell, SIGPLAN
        Notices 15(9):13-24 (Sep 1980)].

pathspec

        {pathname}

pattern matching

        1. A function is defined to take arguments of a particular
        type, form or value.  When applying the function to its actual
        arguments it is necessary to match the type, form or value of
        the actual arguments against the formal arguments in some
        definition.  For example, the function

                length []     = 0
                length (x:xs) = 1 + length xs

        uses pattern matching in its argument to distinguish a null
        list from a non-null one.

        There are well known {algorithm} for translating pattern
        matching into conditional expressions such as "if" or "case".
        E.g. the above function could be transformed to

                length l = case l of
                           []   -> 0
                           x:xs -> 1 : length xs

        Pattern matching is usually performed in textual order though
        there are languages which match more specific patterns before
        less specific ones.

        2. Descriptive of a type of language or utility such as {awk}
        or {Perl} which is suited to searching for strings or patterns
        in input data, usually using some kind of {regular
        expression}.

        (1994-11-28)

pattern recognition

        <artificial intelligence, data processing> A branch of
        {artificial intelligence} concerned with the classification or
        description of observations.

        Pattern recognition aims to classify {data} (patterns) based
        on either a priori knowledge or on statistical information
        extracted from the patterns.  The patterns to be classified
        are usually groups of measurements or observations, defining
        points in an appropriate multidimensional space.

        A complete pattern recognition system consists of a sensor
        that gathers the observations to be classified or described; a
        {feature extraction} mechanism that computes numeric or
        {symbolic} information from the observations; and a
        classification or description scheme that does the actual job
        of classifying or describing observations, relying on the
        extracted features.

        The classification or description scheme is usually based on
        the availability of a set of patterns that have already been
        classified or described.  This set of patterns is termed the
        {training set} and the resulting learning strategy is
        characterised as {supervised}.  Learning can also be
        {unsupervised}, in the sense that the system is not given an a
        priori labelling of patterns, instead it establishes the
        classes itself based on the statistical regularities of the
        patterns.

        The classification or description scheme usually uses one of
        the following approaches: statistical (or {decision
        theoretic}), syntactic (or structural), or neural.
        Statistical pattern recognition is based on statistical
        characterisations of patterns, assuming that the patterns are
        generated by a {probabilistic} system.  Structural pattern
        recognition is based on the structural interrelationships of
        features.  Neural pattern recognition employs the neural
        computing paradigm that has emerged with {neural networks}.

        (1995-09-22)

PAW

        <tool> {Physics Analysis Workbench}.

PAW++

        An extended version of PAW with a Motif human interface.

payware

        /pay'weir/  Commercial software.  Opposite: {shareware}
        or {freeware}.

PB Cache

        {Pipeline Burst Cache}

PBD

        {Programmer Brain Damage}

PBEM

        {play by electronic mail}

PBM

        play by mail.  See {play by electronic mail}.

PBX

        {Private Branch Exchange}

PC

        1. <computer> {personal computer}.

        2. <computer> {IBM PC}.

        3. <hardware> {program counter}.

        4. <hardware> {printed circuit}.

        5. <language> {Parallel C}.

pC++

        {Data parallel} extension to {C++}.  {Class}es and {method}s
        for managing distributed collections.

        E-mail: Dennis Gannon <gannon@cs.indiana.edu>.

        ["Distributed pC++: Basic Ideas for an Object Parallel
        Language", F. Bodin et al, Proc Supercomput 91, ACM SIGARCH,
        pp. 273-282].

PCA

        A dynamic analyser from {DEC} giving information on run-time
        performance and code use.

P-CAD

        A {CAE} system marketed by {CADAM}, an {IBM} company.

PC AT

        {IBM PC AT}

PCB

        1. <hardware> {Power Circuit Breaker}.

        2. <hardware> {Power Control Box}.

        3. <hardware> {Printed Circuit Board}.

        4. {Process Control Block}.

        5. {Product Configuration Baseline}.

        6. {Program Control Block}.

        7. <networking> {Protocol Control Block}.

        ({TCP}).

PC Card

        {Personal Computer Memory Card International Association}

PCCTS

        {Purdue Compiler-Construction Tool Set}

PCF

        A simply typed, {functional language}.

        ["Fully Abstract Translations Between Functional Languages",
        J. Riecke, 18th POPL, pp. 245-254 (1991)].

        ["LCF Considered as a Programming Language", Theor CS 5:223,
        1977].

        (1996-01-18)

PCI

        {Peripheral Component Interconnect}

PCI bus

        {Peripheral Component Interconnect}

PCI Configuration Utility

        <tool> (PCU) A piece of {software} for configuring a specific
        {PCI} {hardware} device.

        [What software?  What hardware?]

        (1998-11-22)

PCI Mezzanine Card

        <hardware> (PMC) A family of low profile {mezzanine} cards for
        {VMEbus}, {Futurebus+}, desktop computers and other computer
        systems with logical and electrical layers based on the
        {Peripheral Component Interconnect} (PCI) specification.  PMC
        is defined in {IEEE} P1386.1 and follows the {Common Mezzanine
        Card} (CMC) mechanical specification.

        PCI2.0 defines a 4.2 inch by 12.3 inch board that plugs
        perpendicularly into a {mother board}.

        (1994-10-06)

PCI slot

        <hardware> A connector on {Peripheral Component Interconnect}
        and the associated physical space occupied by the installed
        PCI card.

        (1997-12-07)

PC-ism

        /P-C-izm/ A piece of code or coding technique that takes
        advantage of the unprotected single-tasking environment in
        {IBM PC}s and the like, e.g. by {busy-wait}ing on a {hardware
        register}, direct diddling of {screen memory} or using hard
        timing loops.  Compare {ill-behaved}, {vaxism}, {Unixism}.

PCjr

        {IBM PCjr}

PCL

        1. Printer Control Language.  A {Document description
        language} used by {Hewlett-Packard} {Laserjet} printers, a
        superset of {HP-GL/2}.

        [PCL 5 Printer Language Printer Technical Reference Manual, HP
        33459-90903.  Versions: PCL 3, PCL 5].

        2. {Portable CommonLoops}.

        3. Peripheral Conversion Language.  A {Honeywell} command
        language for {file transfer} between I/O devices on the {CP-V}
        and {CP-6} {operating system}s.

        4. ["PCL - A Process Oriented Job Control Language", V. Lesser
        et al, Proc 1st Intl Conf Distrib Comp Sys, IEEE 1979,
        pp.315-329].

PCLIPS

        Parallel CLIPS - U Lowell.  Concurrent independent CLIPS
        expert systems.  They use 'rassert' (remote assert) to enter
        facts into each other's database.  "PCLIPS: A Distributed
        Expert System Environment", R.  Miller, CLIPS Users Group
        Conf, Aug 1990.  E-mail: <pclips@dragon.ulowell.edu>(?).

PCM

        {Pulse Code Modulation}

PCMCIA

        <body, standard> {Personal Computer Memory Card International
        Association}.  (Or People Can't Memorise Computer Industry
        Acronyms).

PCMIA

        {Personal Computer Manufacturer Interface Adaptor}

PCN

        1. {Program Composition Notation}.

        2. <communications> {Personal Communication Network}.

PC-NFS

        {Personal Computer Network File System}

P-code

        The intermediate code produced by the {Pascal-P} compiler.
        Assembly language for a hypothetical stack machine, the
        P-machine, said to have been an imitation of the instruction
        set for the Burroughs Large System.  The term was first used
        in Algorithms + Data Structures = Programs, N. Wirth, P-H
        1976.  Byte articles on writing a Pascal Compiler in Northstar
        BASIC (ca Aug 1978) also used the term.  Later used in Apple
        Pascal, and as the intermediate language in the UCSD P-system.

        Variants: P2 P-code, P4 P-code, UCSD P-code, LASL P-code.

        Address: USUS, Box 1148, La Jolla, CA 92038, USA.

        ["A Comparison of PASCAL Intermediate Languages", P.A. Nelson,
        SIGPLAN Notices 14(8):208-213 (Aug 1979)].

        (1995-10-15)

PC Pursuit

        A {TELENET} service which enabled people to dial up {BBS}es in
        other cities for less than normal long-distance rates.  PC
        Pursuit died because TELENET were too mean to upgrade beyond
        2400 bits per second.

        (1994-10-17)

PC-RT

        <computer> An incorrect name for the {RT-PC}.

        (1995-04-06)

PCS

        1. {Personal Communication Services}.

        2. {PC-Scheme}.

PC-Scheme

        Version 3.03

        compiler, debugger, profiler, editor, libraries

        {(ftp://altdorf.ai.mit.edu/archive/pc-scheme/)}

        Written at {Texas Instruments}.  Runs on {MS-DOS} 286/386 IBM
        PCs and compatibles.  Includes an optimising compiler, an
        emacs-like editor, inspector, debugger, performance testing,
        foreign function interface, window system and an
        object-oriented subsystem.  Also supports the dialect used in
        {Hal Abelson} and {Gerald Sussman}'s {SICP}.

        Conformance: Revised^3 Report, also supports dialect used in
        SICP.

        restriction:    official version is $95, contact <rww@ibuki.com>

        ports:          MS-DOS

        See also {PCS/Geneva}.

        (1992/02/23)

PCS/Geneva

        A cleaned-up version of {Texas Instrument}'s {PC Scheme}
        developed at the {University of Geneva}.  The main extensions
        to PC Scheme are {486} support, {BGI} graphics, {LIM-EMS}
        pagination support, line editing and {assembly code}-level
        interfacing.

        Version 4.02PL1.

        E-mail: <schemege@uni2a.unige.ch>.

        (1994-01-11)

PC-TALK III

        <communications, tool> An {MS-DOS} communications program by
        {Andrew Fluegelman}.

        (1997-08-25)

PCTE

        {Portable Common Tool Environment}

PCTE+

        A European NATO specification based on {PCTE} with security
        enhancements.

PC-TILES

        <language> A {visual programming language}.

        (1997-08-25)

PCU

        {PCI Configuration Utility}

PC-ware

        Pejorative term for software full of {PC-ism}s on a machine
        with a more capable {operating system}.

pcx

        <filename extension> A {filename extension} for {images}
        created with the {IBM PC} {Paintbrush} tool.

        [Format?]

        (1995-12-10)

PD

        {public domain}

PDA

        {Personal Digital Assistant}

PDC Prolog

        Prolog Development Centre Prolog.  A {Prolog} evolved from
        {Turbo Prolog} by the original authors.

PDEL

        Partial Differential Equation Language.  A {preprocessor} for
        {PL/I}.

        ["PDEL - A Language for Partial Differential Equations",
        A.F. Cardenas, CACM 13(3):184-191 (Mar 1970)].

PDELAN

        {Partial Differential Equation LANguage}

PDES

        {Product Data Exchange using STEP}

PDF

        <file format> {Portable Document Format}.

        (1995-02-28)

PDFTeX

        <text, tool> A modification of {TeX} to produce {PDF} output
        instead of the {canonical} {DVI}.

        {(ftp://ftp.tug.org/tex-archive/systems/pdftex/)}.

        (1997-11-20)

PDH

        {Plesiochronous Digital Hierarchy}

PDIL

        <language> A language developed at Agence d'Informatique,
        France in the 1970s for description of communication
        {protocol}s.  It was part of the {RHIN} project.

        (1995-02-28)

pdksh

        Version 4.9

        interpreter

        Simon J. Gerraty <sjg@zen.void.oz.au>

        comp.sources.misc volume 4

        It is not intended to be the ultimate shell but rather a
        usable ksh work alike.

        conformance:    Almost identical to ksh88, but missing arrays

        E-mail: Simon J Gerraty <sjg@melb.bull.oz.au> (zen.void.oz.au
        is down)

        ports:          Sun, 386bsd, ?

        1993/10/11

PDL

        1. {Page Description Language}.

        2. {Program Design Language}.

        3. {Push Down List}.

        4. Dave Lebling, one of the co-authors of {Zork}.  His
        {network address} on the {ITS} machines was at one time
        <pdl@dms>.

        5. {Propositional Dynamic Logic}.

PDL2

        <language> {Process Design Language 2}.

PDM

        1. {Product Development Management}.

        2. {Product Data Management}.

        (1997-02-11)

PDP

        {Programmed Data Processor}

PDP-10

        <computer> Programmed Data Processor model 10.

        The series of {minicomputers} from {DEC} that made
        {time-sharing} real.  It looms large in hacker folklore
        because of its adoption in the mid-1970s by many university
        computing facilities and research labs, including the {MIT}
        {AI Lab}, {Stanford}, and {CMU}.  Some aspects of the
        {instruction set} (most notably the bit-field instructions)
        are still considered unsurpassed.

        The PDP-10 was eventually eclipsed by the {VAX} machines
        (descendants of the {PDP-11}) when DEC recognised that the
        PDP-10 and VAX product lines were competing with each other
        and decided to concentrate its software development effort on
        the more profitable VAX.  The machine was finally dropped from
        DEC's line in 1983, following the failure of the {Jupiter}
        Project at DEC to build a viable new model.  (Some attempts by
        other companies to market clones came to nothing; see {Foonly}
        and {Mars}.)  This event spelled the doom of {ITS} and the
        technical cultures that had spawned the original {Jargon
        File}, but by mid-1991 it had become something of a badge of
        honourable old-timerhood among hackers to have cut one's teeth
        on a PDP-10.

        See {TOPS-10}, {AOS}, {BLT}, {DDT}, {DPB}, {EXCH}, {HAKMEM},
        {JFCL}, {LDB}, {pop}, {push}.

        {news:alt.sys.pdp10}

        [Was the PDP-10 a mini or a mainframe?]

        (1994-12-21)

PDP-11

        Programmed Data Processor model 11.

        A series of {minicomputer}s based on an {instruction set}
        designed by C. Gordon Bell at {DEC} in the early 1970s (late
        60s?).  The PDP-11 family, which came after, but was not
        derived from, the {PDP-10}, was the most successful computer
        of its time until it was itself succeeded by the {VAX}.

        Models included the 11/23 and 11/24 (based on the F11
        chipset); 11/44, 11/04, 11/34, 11/05, 11/10, 11/15, 11/20,
        11/35, 11/40, 11/45, 11/70, 11/60 ({MSI} and {SSI}); LSI-11/2
        and LSI-11 (LSI-11 chipset).  In addition there were the 11/8x
        (J11 chipset) and SBC-11/21 (T11 chip) and then there was
        compatibility mode in the early {VAX} processors.

        The {B} and {C} languages were both used initially to
        implement {Unix} on the PDP-11.  The {microprocessor} design
        tradition owes a heavy debt to the PDP-11 {instruction set}.

        See also {SEX}.

        (1994-12-21)

PDP-20

        The most famous computer that never was.  {PDP-10} computers
        running the {TOPS-10} operating system were labelled
        "DECsystem-10" as a way of differentiating them from the
        {PDP-11}.  Later on, those systems running {TOPS-20} were
        labelled "DECSYSTEM-20" (the block capitals being the result
        of a lawsuit brought against DEC by Singer, which once made a
        computer called "system-10"), but contrary to popular lore
        there was never a "PDP-20"; the only difference between a 10
        and a 20 was the {operating system} and the colour of the
        paint.  Most (but not all) machines sold to run {TOPS-10} were
        painted "Basil Blue", whereas most TOPS-20 machines were
        painted "Chinese Red" (often mistakenly called orange).

        (1994-12-21)

PDP-6

        <computer> Programmed Data Processor model 6.  A computer
        designed around 1960 with more or less exactly the same
        hardware architecture as the {PDP-10}.  It already had
        multi-user {time sharing} and {batch processing} and
        multi-level priority {interrupts}

        (1996-12-21)

PDP-7

        <computer> A minicomputer sold by DEC in 1964.  It had a
        memory cycle time of 1.75 microseconds and add time of 4
        microseconds.  I/O included a keyboard, printer, {paper-tape}
        and dual transport DECtape drives (type 555).

        DEC provided an "advanced" {FORTRAN II} {compiler}, a Symbolic
        {Assembler}, Editor, {DDT} Debugging System, Maintenance
        routines and a library of arithmetic, utility and programming
        aids developed on the program-compatible {PDP-4}.

        [DEC sales brochure].

        The PDP-7 was considered reliable enough (when properly
        programmed) to be used for control of nuclear reactors and
        such.

        Around 1970 {Ken Thompson} built the {operating system} that
        became {Unix} on a scavenged {PDP-7} so he could play a
        descendant of the {SPACEWAR} game.

        (1995-03-10)

PDP Assembly Language

        <language> (PAL) The {assembly language} for the {PDP-8} and
        {PDP-11}.

        [Description?]

        (1995-01-26)

PDS

        1. <hardware> {Processor Direct Slot}.

        2. {partitioned data set}.

PDSA cycle

        Plan, Do, See, Approve (from Japan).

PDS/MaGen

        Problem Descriptor System.  A system for generating matrices
        and reports for mathematical programming and {operations
        research}.

        ["PDS MaGen User Information Manual", Haverly Systems (Dec
        1977)].

        (1994-10-27)

PDU

        {Protocol Data Unit}

PE

        1. <database> {periodic group}

        2. <storage> {Phase Encoded}.

        3. <architecture> {processing element}.

        (1995-10-30)

pe

        <networking> The {country code} for Peru.

        (1999-01-27)

PeaceNet

        One of the {IGC} networks.  PeaceNet serves peace and social
        justice advocates around the world in such areas as human
        rights, disarmament, and international relations.  A number of
        alternative news services provide a range of information about
        these and other topics from around the world.

        E-mail: <peacenet@igc.apc.org>.  {(ftp://igc.apc.org/)}.

Peano arithmetic

        <mathematics> A system for representing {natural number}s
        inductively using only two symbols, "0" (zero) and "S"
        (successor).

        This could be expressed as a {recursive} data type with the
        following {Haskell} definition:

                data Peano = Zero | Succ Peano

        The number three, usually written "SSS0", would be Succ (Succ
        (Succ Zero)).  Addition of Peano numbers can be expressed as a
        simple syntactic transformation:

                plus Zero     n = n
                plus (Succ m) n = Succ (plus m n)

        (1995-03-28)

PEARL

        1. Constable, Cornell U, 80's.  Constructive mathematics.

        2. Process and Experiment Automation Real-Time Language.  A
        {real-time} language for programming process control systems,
        widely used in Europe.  Size and complexity exceeds {Ada}.
        {DIN} 66253 Teil 2.

        ["Programmiersprache PEARL", Beuth-Verlag, Nov 1980].

        3. 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).  Compare
        {Brilliant}, {Diamond}, {Nonpareil}, {Ruby}.

        4. Brian Randell, ca 1970.  Multilevel language, mentioned in
        Machine Oriented Higher Level Languages, W. van der Poel, N-H
        1974.

Pebble

        A {polymorphic} language.

        ["A Kernel Language for Abstract Data Types and Modules",
        R.M. Burstall & B. Lampson, in Semantics of Data Types, LNCS
        173, Springer 1984].

        (1995-01-26)

Pebbleman

        {DoD} requirements that led to {APSE}.  They were written in
        Jul 1978 and revised Jan 1979.

        (1995-01-26)

PEBCAK

        <humour> (Or "PEBKAC") Tech support shorthand for "Problem
        Exists between Chair and Keyboard".

        See also {UBD}.

        (1998-08-27)

PEBKAC

        {PEBCAK}

PECOS

        A {constraint}-based language, built on the {object-oriented}
        module of {Le-Lisp}.

        ["Pecos Reference Manual", ILOG, 1990.  ILOG, 12 av Raspail,
        BP 7, F94251 Gentilly, France].

        (1995-01-26)

Pedagogic Algorithmic Language

        ["PAL - A Language for Teaching Programming Linguistics",
        A. Evans Jr, Proc ACM 23rd Natl Conf, Brandon/Systems Press
        (1968)].

        (1995-01-26)

PEEK

        The command in most {microcomputer} {BASIC}s for reading
        memory contents (a byte) at an absolute address.  POKE is the
        corresponding command to write a value to an absolute address.

        This is often extended to mean the corresponding constructs in
        any {High Level Language}.

        Much hacking on small {microcomputer}s without {MMU}s consists
        of "peek"ing around memory, more or less at random, to find
        the location where the system keeps interesting stuff.  Long
        (and variably accurate) lists of such addresses for various
        computers circulate (see {interrupt list}).  The results of
        "poke"s at these addresses may be highly useful, mildly
        amusing, useless but neat, or total {lossage} (see {killer
        poke}).

        Since a {real operating system} provides useful, higher-level
        services for the tasks commonly performed with peeks and pokes
        on micros, and real languages tend not to encourage low-level
        memory groveling, a question like "How do I do a peek in C?"
        is diagnostic of the {newbie}.  Of course, {operating system}
        {kernel}s often have to do exactly this; a real {C} hacker
        would unhesitatingly, if unportably, assign an absolute
        address to a pointer variable and indirect through it.

        (1995-01-31)

PEEL

        Used to implement version of {EMACS} on {PRIME} computers.

peephole optimisation

        <compiler> A kind of {code optimisation} that considers only a
        few adjacent instructions at a time and looks for certain
        combinations which can be replaced with more efficient
        sequences.  E.g.

                ADD R0, #1
                ADD R0, #1

        (add one to register R0) could be replaced by

                ADD R0, #2

        (1995-03-28)

peer

        A unit of communications hardware or software that is on the
        same {protocol layer} of a network as another.  A common way
        of viewing a communications link is as two {protocol stack}s,
        which are actually connected only at the very lowest
        (physical) layer, but can be regarded as being connected at
        each higher layer by virtue of the services provided by the
        lower layers.  Peer-to-peer communication refers to these real
        or virtual connections between corresponding systems in each
        layer.

        To give a simple example, when two people talk to each other,
        the lowest layer is the physical layer which concerns the
        sound pressure waves travelling from mouth to ear (so mouths
        and ears are peers) the next layer might be the speech and
        hearing centres in the people's brains and the top layer their
        cerebellums or minds.  Although, barring telepathy, nothing
        passes directly between the two minds, there is a peer-to-peer
        communication between them.

peer-to-peer

        The kind of communication found in a system using layered
        {protocol}s.  Each software or hardware component can be
        considered to communicate only with its {peer} in the same
        layer via the connection provided by the lower layers.

        (1994-12-14)

Pegasus

        <networking, product> A product to support {Internet}
        searches, {electronic mail} and {Usenet news}.

        [Details?  Addesss?]

        (1997-07-14)

PEIPA

        {Pilot European Image Processing Archive}

PEM

        {Privacy Enhanced Mail}

PENCIL

        Pictorial ENCodIng Language.  On-line system to display line
        structures.  Sammet 1969, 675.

pencil and paper

        An archaic information storage and transmission device that
        works by depositing smears of graphite on bleached wood pulp.
        More recent developments in paper-based technology include
        improved "write-once" update devices which use tiny rolling
        heads similar to mouse balls to deposit coloured pigment.  All
        these devices require an operator skilled at so-called
        "handwriting" technique.  These technologies are ubiquitous
        outside hackerdom, but nearly forgotten inside it.  Most
        hackers had terrible handwriting to begin with, and years of
        keyboarding tend to have encouraged it to degrade further.
        Perhaps for this reason, hackers deprecate pencil-and-paper
        technology and often resist using it in any but the most
        trivial contexts.

        (1994-12-06)

penis war

        <jargon, abuse> (Or "Dick Size War", "DSW") Any argument which
        has degenerated into quantitative boasting of the sort "My
        [program|bot|etc.] is [faster|meaner|etc.]  than yours!",
        generally as unconstructive (and with as little emphasis on
        empirical proof) as men debating who has the biggest penis.

        The term is often used on {IRC}, {news:alt.sysadmin.recovery},
        and sometimes applied to IRC {botwars}, because of their
        equally pointless nature.

        (1999-07-14)

Pentium

        <processor> {Intel}'s {superscalar} successor to the {486}.
        It has two 32-bit 486-type integer {pipelines} with dependency
        checking.  It can execute a maximum of two instructions per
        cycle.  It does pipelined {floating-point} and performs
        {branch prediction}.  It has 16 {kilobytes} of on-chip
        {cache}, a 64-bit memory interface, 8 32-bit general-purpose
        {registers} and 8 80-bit {floating-point} registers.  It is
        built from 3.1 million transistors on a 262.4 mm^2 die with
        ~2.3 million transistors in the core logic.  Its {clock rate}
        is 66MHz, heat dissipation is 16W, integer performance is 64.5
        {SPECint92}, {floating-point} performance 56.9 {SPECfp92}.

        It is called "Pentium" because it is the fifth in the 80x86
        line.  It would have been called the 80586 had a US court not
        ruled that you can't trademark a number.

        The successors are the {Pentium Pro} and {Pentium II}.

        A {floating-point division bug
        (ftp://ftp.isi.edu/pub/carlton/pentium/FAQ)} was discovered in
        October 1994.

        [Internal implementation, "Microprocessor Report" newsletter,
        1993-03-29, volume 7, number 4].

        [Pentium based computers, PC Magazine, 1994-01-25].

        (1997-11-21)

Pentium 2

        {Pentium II}

Pentium II

        <processor> {Intel Corporation}'s successor to the {Pentium
        Pro}.

        The Pentium II can execute all the instructions of all the
        earlier members of the {Intel 80x86} processor family.  There
        are four versions targetted at different user markets.  The
        {Celeron} is the simplest and cheapest.  The standard Pentium
        II is aimed at mainstream home and business users.  The
        {Pentium II Xeon} is intended for higher performance business
        {servers}.  There is also a mobile version of the Pentium II
        for use in portable computers.

        All versions of the Pentium II are packaged on a special
        {daughterboard} that plugs into a card-edge processor slot on
        the {motherboard}.  The daughterboard is enclosed within a
        rectangular black box called a {Single Edge Contact} (SEC)
        cartridge.  The budget {Celeron} may be sold as a card only
        without the box.  Consumer line Pentium II's require a 242-pin
        slot called {Slot 1}.  The {Xeon} uses a 330-pin slot called
        Slot 2.  Intel refers to Slot 1 and Slot 2 as SEC-242 and
        SEC-330 in some of their technical documentation.  The
        daughterboard has mounting points for the Pentium II {CPU}
        itself plus various support chips and {cache} memory chips.
        All components on the daughterboard are normally permanently
        soldered in place.  Previous generation {Socket 7}
        motherboards cannot normally be upgraded to accept the Pentium
        II, so it is necessary to install a new motherboard.

        All Pentium II processors have {Multimedia Extensions} (MMX)
        and integrated Level One and Level Two cache controllers.
        Additional features include {Dynamic Execution} and Dual
        Independent Bus Architecture, with separate 64 bit system and
        cache busses.  Pentium II is a {superscalar} CPU having about
        7.5 million {transistors}.

        The first Pentium II's produced were code named {Klamath}.
        They were manufactured using a 0.35 micron process and
        supported {clock rates} of 233, 266, 300 and 333 {MHz} at a
        {bus} speed of 66 MHz.  Second generation Pentium II's, code
        named Deschutes, are made with a 0.25 micron process and
        support rates of 350, 400 and 450 MHz at a bus speed of 100
        MHz.

        {Home (http://www.intel.com/PentiumII/)}.

        (1998-10-06)

Pentium II Xeon

        <processor> The successor to {Intel Corporation}'s {Pentium
        II} processor.

        The Xeon has the same {P6} core as existing {Pentium
        Pro}/{Pentium II} units, but it supports a 100 {MHz} system
        {bus} and offers as much as 2 {MB} of {level 2 cache}.

        {Home (http://www.intel.com/PentiumII/xeon/home.htm)}.

        (1998-09-09)

Pentium Pro

        <processor> (Known as "P6" during development) {Intel}'s
        successor to the {Pentium} processor, in development Jan 1995,
        generally available 1995-11-01.  The P6 has an internal
        {RISC} architecture with a {CISC}-{RISC} translator, 3-way
        {superscalar} execution, and {out-of order execution} (or
        "{speculative execution}", which Intel calls "{Dynamic
        Execution}").  It also features {branch prediction} and
        {register renaming}, and is superpipelined (14 stages).

        The P6 is made as a two-chip assembly: the first chip is the
        {CPU} and 16 kilobyte {first-level cache} (5.5 million
        {transistors}) and the other is a 256 (or 512) kilobyte
        {second-level cache} (15 million transistors).  The first
        version has a clock frequency of 133 Mhz and consumes about
        20W of power.  It is about twice as fast as the 100 MHz
        Pentium.  The original 0.35 micron versions of the Pentium Pro
        released on 1995-11-01 run at 150 and 166 Mhz for desktop
        machines and up to 200 Mhz for {servers}.  Heat disspation is
        about 20 Watts.

        The Pentium Pro is optimised for 32-bit software and runs
        16-bit software slower than the original Pentium.  The
        successor was the {Pentium II}.

        [Performance?]

        (1996-03-01)

peon

        A person with no special ({root} or {wheel}) privileges on a
        computer system.  "I can't create an account on *foovax* for
        you; I'm only a peon there."

PeopleSoft

        <company> A {software} company that, since 1987, has built
        global, enterprise applications.

        {Home (http://www.peoplesoft.com/)}.

        (1999-09-30)

Pepper

        A variant of {POP-11} by Chris Dollin <kers@hplb.hpl.hp.com>.

PEPsy

        {Prolog} extended with parallel modules within which explicit
        {OR-parallelism} can be used.

        ["PEPsy: A Prolog for Parallel Processing", M. Ratcliffe et
        al, ECRC TR CA-17, 1986].

PER

        1. <networking> {Packed Encoding Rules}.

        2. <mathematics> {partial equivalence relation}.

        (1998-05-27)

percent

        %

        Common: {ITU-T}: percent sign; mod; grapes.  {INTERCAL}:
        double-oh-seven.

        (1995-03-06)

perceptron

        1. A single {McCulloch-Pitts neuron}.

        2. A network of {neuron}s in which the output(s) of some
        neurons are connected through weighted connections to the
        input(s) of other neurons.  A {multilayer perceptron} is a
        specific instance of this.

percussive maintenance

        <jargon> The fine art of whacking a device to get it working,
        possibly using a {fine adjuster}.

        (1999-01-15)

perf

        {chad}

perfect programmer syndrome

        Arrogance; the egotistical conviction that one is above normal
        human error.  Most frequently found among programmers of some
        native ability but relatively little experience (especially
        new graduates; their perceptions may be distorted by a history
        of excellent performance at solving {toy problem}s).  "Of
        course my program is correct, there is no need to test it."
        "Yes, I can see there may be a problem here, but *I'll* never
        type "rm -r /" while in {root mode}."

PERFORM

        <programming> A {COBOL} statement used for executing
        "paragraphs".

        [What's a paragraph?]

        (1997-06-10)

periodic group

        <database> (PE) Groups of logically related fields which occur
        multiple times within a group.

        Periodic groups are a non-{relational} technique.  An example
        of a PE would be for storing the history of a person's name
        changes, where name was kept in logically related fields such
        as surname, first name and middle name - with the person
        having changed their name more than once.

        [Clarify?]

        (1995-10-30)

peripheral

        <hardware> (Or "peripheral device", "device") Any part of a
        computer other than the {CPU} or {working memory},
        i.e. {disks}, {keyboards}, {monitors}, {mice}, {printers},
        {scanners}, {tape drives}, {microphones}, {speakers},
        {cameras}, to list just the less exotic ones.

        High speed working {memory}, such as {RAM}, {ROM} or, in the
        old days, {core} would not normally be referred to as
        peripherals.  The more modern term "device" is also more
        general in that it is used for things such as a {pseudo-tty},
        a {RAM drive} or a {network adaptor}.

        (1999-02-10)

Peripheral Component Interconnect

        <hardware> (PCI) A standard for connecting {peripherals} to a
        {personal computer}, designed by {Intel} and released around
        Autumn 1993.  PCI is supported by most major manufacturers
        including {Apple Computer}.  It is technically far superior to
        {VESA}'s {local bus}.  It runs at 20 - 33 MHz and carries 32
        bits at a time over a 124-pin connector or 64 bits over a
        188-pin connector.  An address is sent in one cycle followed
        by one word of data (or several in burst mode).

        PCI is used in systems based on {Pentium}, {Pentium Pro}, {AMD
        5x86}, {AMD K5} and {AMD K6} processors, in some {DEC Alpha}
        and {PowerPC} systems, and probably {Cyrix 586} and {Cyrix
        686} systems.  However, it is processor independent and so can
        work with other processor architectures as well.

        Technically, PCI is not a bus but a {bridge} or {mezzanine}.
        It includes buffers to decouple the {CPU} from relatively slow
        peripherals and allow them to operate asynchronously.

        (1997-12-07)

peripheral device

        {peripheral}

Peripheral Technology Group

        <company> A national and international distributor of {IBM
        PC}-to-{Unix} and {Internet} connectivity products.  They
        cater for resellers, dealers and {VAR}s and are one of the top
        {Seagate} and {Micropolis} distributors in the US.

        {Home (http://www.ptgs.com/)}

        Address: Eden Prairie, MN, USA (a suburb of Minneapolis).

        Eden Prairie ("Silicon Prairie") is the home of Digi
        International, Ontrack, Open Systems, LaserMaster, Best Buy,
        and others.

        (1995-11-29)

Perl

        <language, tool> /perl/ Practical Extraction and Report
        Language (or Pathologically Eclectic Rubbish Lister).  An
        interpreted language developed by {Larry Wall} and distributed
        over {Usenet}.

        Perl superficially resembles {awk}, but is much hairier.
        {Unix} {sysadmins}, who are almost always incorrigible
        {hackers}, increasingly consider it one of the {languages of
        choice}.  Perl has been described, in a parody of a famous
        remark about {lex}, as the "Swiss-Army chain-saw" of {Unix}
        programming.  It can be very concise (and thus hard to read)
        because of its powerful operators such as regular expression
        substitution.

        Perl is a general purpose language, often used for scanning
        text and printing formatted reports.  It provides extensive
        support for {regular expression} matching, {dynamically
        scoped} variables and functions, extensible {run-time
        libraries}, {exception} handling and packages,
        provide/require.

        The use of Perl has grown significantly since its adoption as
        the language of choice of many {World-Wide Web} developers.
        {CGI} interfaces and libraries for Perl exist for several
        {platforms} and Perl's speed and flexibility make it well
        suited for form processing and on-the-fly page creation.

        {Perl5} is a major rewrite and enhancement of Perl version 4.
        It adds nested data structures and {object-oriented} features.

        Like {awk}, Perl provides {associative arrays} but in Perl
        they can be bound to {dbm} files.  Perl does not place any
        arbitrary limits on data structures and allows direct access
        to almost all {system calls}.  It can handle binary data and
        has many powerful idioms for common tasks.  It is {eight-bit
        clean}, including {null}s.  The three variable types are
        {scalar}, {array}, and associative array (implemented by {hash
        coding}).  Different variable types are distinguished by
        prefix characters.

        {Usenet} newsgroups: {news:comp.lang.perl.announce},
        {news:comp.lang.perl.misc}.

        Almost anything related to Perl, including kits, ports and
        documentation can be found on the {Comprehensive Perl Archive
        Network}.

        ["Programming Perl", Larry Wall and Randal L. Schwartz,
        O'Reilly & Associates, Inc.  Sebastopol, CA.  ISBN
        0-93715-64-1].

        ["Learning Perl" by Randal L. Schwartz, O'Reilly & Associates,
        Inc., Sebastopol, CA].

        (1996-06-04)

Perl5

        A major rewrite and enhancement of {Perl} version 4.  It adds
        real data structures (by way of "references"), un-adorned
        subroutine calls, and {method} {inheritance}.  It is not
        stable (yet).

        (Nov 1993)

perl-byacc

        A modified version of {byacc} that generates a {parser} in
        {Perl} code, by Rick Ohnemus <rick@imd.sterling.com>.  It has
        a "-p" switch so multiple parsers can be used in one program
        ({C} or Perl).  Version 1.8.2 should work on most {Unix}
        systems.  It also works with {SAS/C} 6.x on {Amiga}.

        {(ftp://ftp.sterling.com/local/perl-byacc.tar.Z)}.
        {(ftp://ftp.sterling.com/local/perl-byacc1.8.2.tar.Z)}.

        (1993-01-24)

Perl profiler

        <tool> (pprof) A tool by Anthony Iano-Fletcher
        <arf@maths.nott.ac.uk> to profile, and collate data from,
        {Perl} scripts.

        Version: 1?

        Source posted on comp.lang.perl in mid-June 1993.

        (1993-06-17)

Permanent Virtual Circuit

        <networking> (PVC, or in {ATM} terminology, "Permanent Virtual
        Connection") A {virtual circuit} that is permanently
        established, saving the time associated with circuit
        establishment and tear-down.

        (1997-10-06)

Permanent Virtual Connection

        {Permanent Virtual Circuit}

permission

        <file system> (Or "file mode") An access privelege (e.g. read,
        write, execute) associated with a {file} or {directory}.
        Depending on the {operating system}, each file may have
        different permissions for different kinds of access and
        different users or groups of users.

        {chmod} ("change mode") is the {UNIX} command to change
        permissions.

        (1997-04-08)

permutation

        <mathematics> An ordering of a certain number of elements of a
        given set.

        For instance, the permutations of (1,2,3) are (1,2,3) (2,3,1)
        (3,1,2) (3,2,1) (1,3,2) (2,1,3).

        Permutations form one of the canonical examples of a "{group}"
        - they can be composed and that you can find an inverse
        permutation that reverses the action of any given permutation.

        A permutation is a {bijection}.

        The number of permutations of r things taken from a set of n
        is

                n P r = n! / (n-r)!

        where "n P r" is usually written with n and r as subscripts
        and n! is the {factorial} of n.

        What the football pools call a "permutation" is not a
        permutation but a {combination} - the order does not matter.

        (1995-04-10)

\perp

        {LaTeX} inverted T.  Used in {domain theory} to represent
        {bottom}.

        (1995-02-03)

perplexity

        The {geometric mean} of the number of words which may follow
        any given word for a certain {lexicon} and {grammar}.

persistence

        1. <programming> A property of a programming language where
        created objects and variables continue to exist and retain
        their values between runs of the program.

        2. <hardware> The length of time a phosphor dot on the screen
        of a {cathode ray tube} will remain illuminated after it has
        been energised by the electron beam.  Long-persistence
        phosphors reduce flicker, but generate ghost-like images that
        linger on screen for a fraction of a second.

        (1994-11-09)

persistent

        {persistence}

Persistent Functional Language

        <language, database> (PFL) A {functional database} language
        developed by Carol Small <carol@cs.bbk.ac.uk> and Alexandra
        Poulovassilis (now at {King's College London}).

        In PFL, functions are defined equationally and bulk data is
        stored using a special class of functions called selectors.
        It is a {lazy} language, supports {higher-order function}s,
        has a strong {polymorphic} {type inference} system, and allows
        new user-defined data types and values.  All functions, types
        and values persist in a database.  Functions can be written
        which update all aspects of the database: by adding data to
        selectors, by defining new equations, and by introducing new
        data types and values.

        PFL is "semi-{referentially transparent}", in the sense that
        whilst updates are referentially opaque and are executed
        {destructive}ly, all evaluation is referentially transparent.
        Similarly, {type checking} is "semi-static" in the sense that
        whilst updates are dynamically type checked at run time,
        expressions are type checked before they are evaluated and no
        type errors can occur during their evaluation.

        ["{A Functional Approach to Database Updates
        (http://web.dcs.bbk.ac.uk/CS/Research/DBPL/papers/INFSYS93.abs.html)}",
        C. Small, Information Systems 18(8), 1993, pp. 581-95].

        (1995-04-27)

persistent memory

        {non-volatile storage}

Personal Communication Network

        <networking> (PCN) Any {network} supporting {Personal
        Communication Service} (PCS).  Also, sometimes used to refer
        to the specific implementation (using the {GSM}-derivative
        {DCS-1800}) of initial PCS capabilities in the United Kingdom.

        (1996-08-23)

Personal Communication Services

        <communications> (PCS) Telecommunications services that bundle
        voice communications, numeric and text messaging, {voice-mail}
        and various other features into one device, service contract
        and bill.  PCS are carried over {cellular} links, most often
        digital.

        (1996-08-01)

personal computer

        <computer> (PC) A general-purpose single-user {microcomputer}
        designed to be operated by one person at a time.

        This term and the concept has been successfully hijacked by
        {IBM} due to the huge market share of the {IBM PC}, despite
        its many obvious weaknesses when compared to other equally
        valid claimants to the term, e.g. the {Acorn} {Archimedes},
        {Amiga}, {Atari}, {Macintosh}.

        (1994-11-02)

Personal Computer Memory Card International Association

        <body, hardware, standard> (PCMCIA, or "PC Card") An
        international trade association and the {standards} they have
        developed for devicies, such as {modems} and external {hard
        disk} drives, that can be plugged into {notebook computers}q.
        A PCMCIA card is about the size of a credit card.

        For some unfathomable reason, around 1995(?) they decided to
        rename PCMCIA cards "PC Cards", perhaps to encourage sales to
        confused purchasers.

        E-mail: Bryan Richter <bryan@cirrus.com>.

        {(ftp://ftp.sidewinder.com/pub/Portables/PCMCIA)}

        Address: PCMCIA Administration, 1030 East Duane Avenue, Suite
        G, Sunnyvale, CA 94086 USA.

        Telephone: +1 (408) 720 0107.  Fax: +1 (408) 720 9416.  BBS:
        +1 (408) 720 9388.

        (1996-10-16)

Personal Digital Assistant

        <computer> (PDA) A small hand-held computer used to write
        notes, track appointments and otherwise keep your life in
        order.  PDAs provide all the functionality of a cheap pad of
        paper at hundreds of times the cost, and with far less storage
        capacity.  Early PDAs required data to be input using a keypad
        with keys the size of Chiclets, but more recent models
        (e.g. the {Apple Newton}) use a combination of pen-based input
        and {character recognition} software to render your data
        incomprehensible.

        (1994-11-22)

Personal Identification Number

        <security> (PIN, "PIN number") A {password}, typically four
        digits entered through a telephone keypad or automatic teller
        machine.

        (1996-11-03)

Personalized Array Translator

        <language> (PAT) A small subset of {APL}.

        E-mail: <oed@watsol.uwaterloo.ca>.

        [Sammet 1969, p. 252].

        (1998-05-09)

person of no account

        (University of California at Santa Cruz) Used when referring
        to a person with no {network address}, frequently to forestall
        confusion.  Most often as part of an introduction: "This is
        Bill, a person of no account, but he used to be
        bill@random.com".

        Compare {return from the dead}.

        (1994-11-22)

perspective

        <games> In computer games, the {virtual} position from which
        the human player views the playing area.  There are three
        different perspectives: first person, second person, and third
        person.

        First person perspective: Viewing the world through the eyes
        of the primary character in three dimensions.  e.g. Doom,
        Quake.

        Second person perspective: Viewing the game through a
        spectator's eyes, in two or three dimensions.  Depending on
        the game, the main character is always in view. e.g. Super
        Mario Bros., Tomb Raider.

        Third person perspective: a point of view which is independent
        of where characters or playing units are.  The gaming world is
        viewed much as a satellite would view a battlefield.
        E.g. Warcraft, Command & Conquer.

        (1997-06-19)

PERT

        {Program Evaluation and Review Technique}

pessimal

        /pes'im-l/ (Latin-based antonym for "optimal") Maximally bad.
        "This is a pessimal situation."  Also "pessimise" To make as
        bad as possible.  These words are the obvious Latin-based
        antonyms for "optimal" and "optimise", but for some reason
        they do not appear in most English dictionaries, although
        "pessimise" is listed in the OED.

        (1995-02-01)

pessimising compiler

        /pes'*-mi:z"ing k*m-pi:l"r/ (Antonym of "{optimising
        compiler}") A {compiler} that produces {object code} that is
        worse than the straightforward or obvious hand translation.
        The implication is that the compiler is actually trying to
        optimise the program, but through excessive cleverness is
        doing the opposite.  A few pessimizing compilers have been
        written on purpose, however, as pranks or burlesques.

        (1995-02-01)

peta-

        {prefix}

petabyte

        <unit> 2^50 = 1,125,899,906,842,624 {bytes} = 1024
        {terabytes} or roughly 10^15 bytes.

        See {prefix}.

        (1996-08-12)

petaflops

        <unit> 10^15 {flops} or 1000 {teraflops}.  No computer has
        achieved this performance yet.

        (1997-07-21)

petdingo

        <tool> An {Estelle} to {C++} translator.

        (1997-01-24)

Peter Chen

        <person> The developer of the {Entity-Relationship model}.

        (1995-02-07)

Petri net

        <parallel, simulation> A {directed}, {bipartite graph} in
        which nodes are either "places" (represented by circles) or
        "transitions" (represented by rectangles), invented by Carl
        Adam Petri.  A Petri net is marked by placing "tokens" on
        places.  When all the places with arcs to a transition (its
        input places) have a token, the transition "fires", removing a
        token from each input place and adding a token to each place
        pointed to by the transition (its output places).

        Petri nets are used to model {concurrent} systems,
        particularly {network} {protocol}s.

        Variants on the basic idea include the {coloured Petri Net},
        {Time Petri Net}, {Timed Petri Net}, {Stochastic Petri Net},
        and {Predicate Transition Net}.

        {FAQ (http://www.daimi.aau.dk/PetriNets/faq/answers.htm)}.

        (1996-09-10)

PETSCII

        <character> /pet'skee/ {PET} {ASCII}.  The variation (many
        would say perversion) of the ASCII {character set} used by the
        {Commodore Business Machines}' {PET} series of {personal
        computer}s and the later {Commodore 64}, {Commodore 16}, and
        {Commodore 128} computers.  The PETSCII set used left-arrow
        and up-arrow (as in old-style ASCII) instead of underscore and
        caret, placed the unshifted alphabet at positions 65--90, put
        the shifted alphabet at positions 193--218, and added {graphic
        characters}.

        (1995-10-29)

PEX

        (PHIGS Extension to X) Extension to the {X Window System}
        providing 3d graphics support.

pf

        <networking> The {country code} for French Polynesia.

        (1999-01-27)

PFE

        {Portable Forth Environment}

PFL

        1. <language> A concurrent extension of {ML} by Holmstrom and
        Matthews, using {CCS}.

        ["PFL: A Functional Language for Parallel Programming",
        S. Holmstrom in Proc Declarative Language Workshop, London
        1983].

        2. <language, database> {Persistent Functional Language}.

pfm

        {program file manager}

pForth

        <language> A portable (hence the "p") {ANS}-standard {Forth}
        implemented in {ANSI C}.  {Phil Burk
        (http://www.softsynth.com/philburk.html)} initially began
        developing pForth in 1994 to support ASIC development at
        {3DO}.

        (1998-06-30)

Pfortran

        {Parallel Fortran}

pg

        <networking> The {country code} for Papua New Guinea.

        (1999-01-27)

PGA

        1. <graphics, specification> {Professional Graphics Adapter}.

        2. <hardware> {Pin Grid Array}.

        (1999-08-04)

PGP

        {Pretty Good Privacy}

PH

        <tool> The tool for looking up people in Eudora on the
        {Macintosh}.  Equivalent to {Unix}'s {finger} service.

        (1995-03-31)

pH

        {Parallel Haskell}

ph

        <networking> The {country code} for the Philippines.

        (1999-01-27)

phacker

        <communications, security> A telephone system {cracker}.  A
        phacker may attempt to gain unauthorised access to a phone
        system in order to make free or untraceable calls or he may
        disrupt, alter or illegally tap phone systems via computer.

        The disruptions may include causing a phone line to be engaged
        so no calls go in or out, redirecting outgoing or incoming
        calls, as well as listening to actual calls made.

        Phackers are frequently confidence tricksters or phone freaks
        (nuisance callers who can only relate to other people by
        phone).  Phackers are sometimes employed by illegal
        enterprises to conduct business using untraceable calls, or to
        disrupt, or follow legal authorities' investigations.
        Phackers interventions may be lethal to the person being
        phacked.

        A phacker may be a phone company employee, or usually,
        ex-employee who specialises in illegal phone system
        disruption, alteration or tapping via physically altering
        installations.  A phacker is generally considered to be a
        socially and intellectually retarded cracker.

        See {Captain Crunch}.

        (1998-08-09)

phage

        A program that modifies other programs or databases in
        unauthorised ways; especially one that propagates a {virus} or
        {Trojan horse}.  See also {worm}, {mockingbird}.  The
        analogy, of course, is with phage viruses in biology.

phase

        1. The offset of one's waking-sleeping schedule with respect
        to the standard 24-hour cycle; a useful concept among people
        who often work at night and/or according to no fixed schedule.
        It is not uncommon to change one's phase by as much as 6 hours
        per day on a regular basis.  "What's your phase?"  "I've been
        getting in about 8 P.M. lately, but I'm going to {wrap around}
        to the day schedule by Friday."  A person who is roughly 12
        hours out of phase is sometimes said to be in "night mode".
        (The term "day mode" is also (but less frequently) used,
        meaning you're working 9 to 5 (or, more likely, 10 to 6).)
        The act of altering one's cycle is called "changing phase";
        "phase shifting" has also been recently reported from Caltech.

        2. "change phase the hard way": To stay awake for a very long
        time in order to get into a different phase.

        3. "change phase the easy way": To stay asleep, etc.  However,
        some claim that either staying awake longer or sleeping longer
        is easy, and that it is *shortening* your day or night that is
        really hard (see {wrap around}).  The "jet lag" that afflicts
        travelers who cross many time-zone boundaries may be
        attributed to two distinct causes: the strain of travel per
        se, and the strain of changing phase.  Hackers who suddenly
        find that they must change phase drastically in a short period
        of time, particularly the hard way, experience something very
        like jet lag without travelling.

Phase Encoded

        <storage> (PE) A recording method used for 1600 BPI {magnetic
        tapes}.

        Compare {NRZI}, {GCR}.

        (1996-02-03)

phase of the moon

        Used humorously as a random parameter on which something is
        said to depend.  Sometimes implies unreliability of whatever
        is dependent, or that reliability seems to be dependent on
        conditions nobody has been able to determine.  "This feature
        depends on having the channel open in mumble mode, having the
        foo switch set, and on the phase of the moon."

        See also {heisenbug}.

        True story: Once upon a time there was a {bug} that really did
        depend on the phase of the moon.  There was a little
        subroutine that had traditionally been used in various
        programs at {MIT} to calculate an approximation to the moon's
        true phase.  {GLS} incorporated this routine into a {Lisp}
        program that, when it wrote out a file, would print a
        timestamp line almost 80 characters long.  Very occasionally
        the first line of the message would be too long and would
        overflow onto the next line, and when the file was later read
        back in the program would {barf}.  The length of the first
        line depended on both the precise date and time and the length
        of the phase specification when the timestamp was printed, and
        so the bug literally depended on the phase of the moon!

        The first paper edition of the {Jargon File} (Steele-1983)
        included an example of one of the timestamp lines that
        exhibited this bug, but the typesetter "corrected" it.  This
        has since been described as the phase-of-the-moon-bug bug.

        (1995-02-22)

phase-wrapping

        ({MIT}) {wrap around}.

        (1995-02-22)

PHIGS

        {Programmers Hierarchical Interactive Graphics System}

Philips

        <company> A Dutch multinational electronics company.  It
        produces washing machines, consumer electronics, {integrated
        circuits} and light bulbs.  Together with {Sony} they set the
        {Compact Disc} standard, especially {Green Book CD-ROM}.  They
        are members of the {Open Software Foundation}.  Philips
        Research Labs developed the {POOL} and {SPL} languages.

        Address: Philips Research Labs, Eindhoven, Netherlands.

        (1995-02-07)

Philips SCC68070

        <processor> A {microprocessor} which is {object code}
        compatible with the {Motorola 68000}.  It is not a performance
        improvement over the 68060; it's performance rather resembles
        that of the 68000.

        (1995-04-22)

philosophy

        See {computer ethics}, {liar paradox}, {netiquette}, {proof}.

PHOCUS

        An {object-oriented} {Prolog}-like language.

        ["PHOCUS: Production Rules, Horn Clauses, Objects and Contexts
        in a Unification Based System", D. Chan et al, Actes du Sem
        Prog et Logique, Tregastel (May 1987), pp. 77-108].

        (1994-11-09)

phone mail

        {voice mail}

Phonetastic

        <communications> A {CTI} product from {Callware}.  Phonetastic
        employs if-then rules and customer records to tell those
        receiving calls who is calling (based on {ANI} and {DNIS}) and
        to determine how the call should be routed, e.g. to a certain
        sales representative or to the general sales department;
        receive high-priority treatment; receive a fax-back, etc.

        (1996-12-08)

Phong shading

        <graphics> A model of how light is reflected from surfaces
        used extensively in three dimensional graphics to generate
        visually realistic images.

        [Details?]

        (1994-11-09)

phosphor fatigue

        {screen saver}

photo CD

        <multimedia, specification, standard, storage, graphics> A
        {standard} for storing photographic images on {CD-ROM},
        produced by {Kodak}.

        {Kodak Photo CD page
        (http://www.kodak.com/digitalImaging/aboutPhotoCD/aboutPCD.shtml)}

        (1995-12-12)

Photoshop

        An image manipulation program by {Adobe Systems, Inc.}.

        {Home (http://www.adobe.com/Apps/Photoshop.html)}

        [Summary?]

        (1995-07-05)

PHP

        <world-wide web, programming> A {server-side},
        {cross-platform}, {HTML}-embedded {scripting language} used to
        create dynamic {web pages}.  PHP is {Open Source} software.

        [Features?  Reference?]

        (1999-09-15)

phreaking

        <jargon> /freek'ing/ "phone phreak" 1. The art and science of
        {cracking} the telephone network so as, for example, to make
        free long-distance calls.

        2. By extension, security-{cracking} in any other context
        (especially, but not exclusively, on communications networks).

        At one time phreaking was a semi-respectable activity among
        hackers; there was a gentleman's agreement that phreaking as
        an intellectual game and a form of exploration was OK, but
        serious theft of services was taboo.  There was significant
        crossover between the hacker community and the hard-core phone
        phreaks who ran semi-underground networks of their own through
        such media as the legendary "TAP Newsletter".

        This ethos began to break down in the mid-1980s as wider
        dissemination of the techniques put them in the hands of less
        responsible phreaks.  Around the same time, changes in the
        phone network made old-style technical ingenuity less
        effective as a way of hacking it, so phreaking came to depend
        more on overtly criminal acts such as stealing phone-card
        numbers.

        The crimes and punishments of gangs like the "414 group"
        turned that game very ugly.  A few old-time hackers still
        phreak casually just to keep their hand in, but most these
        days have hardly even heard of "blue boxes" or any of the
        other paraphernalia of the great phreaks of yore.

        (1994-11-09)

physical address

        <memory management> The address presented to a computer's main
        memory in a {virtual memory} system, in contrast to the
        {virtual address} which is the address generated by the {CPU}.
        A {memory management unit} translates virtual addresses into
        physical addresses.

        (1995-03-31)

physical addressing

        <networking> The low level addressing scheme used on
        {Ethernet}.  The 48-bit destination {Ethernet address} in a
        {packet} is compared with the receiving node's Ethernet
        address.

        Compare {Internet address}.

        (1994-12-23)

physical layer

        <networking> Layer one, the lowest layer, in the {OSI} seven
        layer model, concerning electrical and mechanical connections
        to the network.  The physical layer is used by the {data link
        layer}.  Example physical layer {protocols} are {CSMA/CD},
        {token ring} and bus.

        (1994-12-23)

physical memory

        <memory management> The memory hardware (normally {RAM})
        installed in a computer.  The term is only used in contrast to
        {virtual memory}.

        (1996-03-23)

physical memory address

        {physical address}

Physics Analysis Workbench

        <tool> (PAW) A general purpose portable tool for analysis and
        presentation of physics data.

        (1994-11-28)

PI

        An interface between {Prolog} {application program}s and the
        {X Window System} that aims to be independent from the
        {Prolog} {engine}, provided that it has a {Quintus} {foreign
        function} interface (e.g. {SICStus} and {YAP}).  It is mostly
        written in {Prolog} and is divided in two libraries: Edipo -
        the lower level interface to the {Xlib} functions; and
        Ytoolkit - the higher level user interface toolkit.

        {(ftp://ftp.ncc.up.pt/pub/prolog/ytoolkit.tar.Z)}

        E-mail: Ze' Paulo Leal <zp@ncc.up.pt>.

        (1993-03-02)

PIC

        1. A graphics language by {Brian Kernighan}, for textually
        describing pictures with {troff}.

        [Featured in "More Programming Pearls", Jon Bentley].

        ["PIC - A Language for Typesetting Graphics", B.W. Kernighan,
        Soft Prac & Exp 12(1):1-21 (Jan 1982)].

        ["PIC - A Graphics Language for Typesetting, Revised User
        Manual", Bell Labs TR 116, Dec 1984].

        (1994-10-28)

        2. {personal intelligent communicator}.

        (1994-12-23)

pi-calculus

        <theory> A {process algebra} in which channel names can act
        both as transmission medium and as transmitted data.  Its
        basic atomic actions are individual point to point
        communications which are {nondeterministic}ally selected and
        globally sequentialised.

        [Details?  Examples?]

        (1995-03-20)

Pick BASIC

        See {Data/BASIC}.

PICL

        Language on {Ncube} or {iPSC} machines?

pico-

        {prefix}

picosecond

        <unit> 10^-12 seconds.

        (1997-04-26)

PICT

        <file format> An {Apple} graphics format.

        [Details?]

        (1997-06-06)

PicTeX

        A version of {TeX} for pictures.

        {(ftp://june.cs.washington.edu/tex/PiCTeX.tar.Z)}

Pictorial Janus

        K. Kahn, Xerox.  Visual extension of Janus.  Requires
        Strand88 and a PostScript interpreter.

picture

        {image}

picture element

        <graphics> (pixel) The smallest resolvable rectangular area of
        an {image}, either on a screen or stored in memory.  Each
        pixel in a {monochrome} image has its own brightness, from 0
        for black to the maximum value (e.g. 255 for an eight-bit
        pixel) for white.  In a colour image, each pixel has its own
        brightness and colour, usually represented as a triple of red,
        green and blue intensities (see {RGB}).

        Compare {voxel}.

        (1998-05-08)

Picture Quality Scale

        <graphics> (PQS) A system for rating image quality based upon
        features of images that affect their perception by the human
        eye, rather than the traditional {signal-to-noise ratio} which
        examines differences for every single {pixel}.

        [Details?]

        (1995-01-12)

PID

        {process identifier}

pidgen+

        <language> A language for the {Apple II}.

        {(ftp://ftp.wustl.edu/system/apple2/Lang/pidgen/)}.

        [Published in Dr. Dobbs Journal?]

        (1994-11-29)

PIE

        A language from {CMU} similar to {Actus}.

        (1994-11-29)

pif

        {Program Information File}

piggybacking

        1. A method for passing {acknowledgement frame}s and {data
        frame}s in the same direction along a line.

        2. The practice of increasing memory capacity by soldering
        chips on top of other chips.  The chip-enable or high address
        pins would be connected to the {address bus} by a flying lead.
        Many {Ohio Superboard}s were expanded to a massive 8K of {RAM}
        in this way.

        (1994-11-29)

pig, run like a

        To run very slowly on given hardware, said of software.
        Distinct from {hog}.

        (1994-11-29)

PIGUI

        {Platform Independent Graphical User Interface}

PIL

        Procedure Implementation Language.

        A subsystem of {DOCUS}.

        [Sammet 1969, p.678].

        (1994-11-29)

PILE

        1. Polytechnic's Instructional Language for Educators.
        Similar in use to an enhanced PILOT, but structurally more
        like Pascal with Awk-like associative arrays (optionally
        stored on disk).  Distributed to about 50 sites by Initial
        Teaching Alphabet Foundation for Apple II and CP/M.

        ["A Universal Computer Aided Instruction System," Henry
        G. Dietz & Ronald J Juels, Proc Natl Educ Computing Conf '83,
        pp.279-282].

        2. <language, music> ["PILE _ A Language for Sound Synthesis",
        P. Berg, Computer Music Journal 3.1, 1979].

        (1999-06-04)

PIL/I

        Variant of JOSS.  Sammet 1969, p.217.

PILOT

        Programmed Inquiry Learning Or Teaching.  CAI language, many
        versions.  "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J
        (Apr 1977).

pilot error

        <jargon> ({Sun}, from aviation) A user's misconfiguration or
        misuse of a piece of software, producing apparently {bug}-like
        results.

        E.g. "Joe Luser reported a bug in sendmail that causes it to
        generate bogus headers."  "That's not a bug, that's pilot
        error.  His "sendmail.cf" is hosed."

        Compare {UBD}.

        (1994-12-05)

Pilot European Image Processing Archive

        (PEIPA) An archive devoted to {image processing}, {computer
        vision}, and {computer graphics}.  It includes software,
        images, reference material, and miscellaneous goodies.

        The archive is funded by the {British Machine Vision
        Association} (BMVA) and the {University of Essex} and is
        closely associated with the {Pixel} {mailing list} and
        Technical Committee 5 (Benchmarking and Software) of the
        {IAPR}.

        {(http://peipa.essex.ac.uk/)}

PIM

        1. {Personal Information Manager}.

        2. {Product Information Management}.

        (1997-02-11)

PIN

        {Personal Identification Number}

PINBOL

        <language, games> A {decision table} language for controlling
        pinball machines used at Atari.  PINBOL included a
        {multitasking} executive and an {interpreter} that worked on
        data structures compiled from condition:action lists.

        (1996-11-03)

Pine

        Program for Internet News & Email.  A tool for reading,
        sending, and managing electronic messages.  It was designed
        specifically with novice computer users in mind, but can be
        tailored to accommodate the needs of "power users" as well.
        Pine uses {Internet} message {protocol}s (e.g. {RFC 822},
        {SMTP}, {MIME}, {IMAP}, {NNTP}) and runs under {Unix} and
        {MS-DOS}.

        The guiding principles for Pine's user-interface were: careful
        limitation of features, one-character mnemonic commands,
        always-present command menus, immediate user feedback, and
        high tolerance for user mistakes.  It is intended that Pine
        can be learned by exploration rather than reading manuals.
        Feedback from the {University of Washington} community and a
        growing number of {Internet} sites has been encouraging.

        Pine's message composition editor, {Pico}, is also available
        as a separate stand-alone program.  Pico is a very simple and
        easy-to-use {text editor} offering paragraph justification,
        cut/paste, and a spelling checker.

        Pine features on-line help; a message index showing a message
        summary which includes the status, sender, size, date and
        subject of messages; commands to view and process messages; a
        message composer with easy-to-use editor and spelling checker;
        an address book for saving long complex addresses and personal
        distribution lists under a nickname; message attachments via
        {Multipurpose Internet Mail Extensions}; {folder} management
        commands for creating, deleting, listing, or renaming message
        folders; access to remote message folders and archives via the
        {Interactive Mail Access Protocol} as defined in {RFC 1176};
        access to {Usenet} news via {NNTP} or {IMAP}.

        Pine, {Pico} and {UW}'s {IMAP} {server} are copyrighted but
        freely available.

        {Unix} Pine runs on {Ultrix}, {AIX}, {SunOS}, {SVR4} and
        {PTX}.  PC-Pine is available for {Packet Driver}, {Novell
        LWP}, {FTP PC/TCP} and {Sun} {PC/NFS}.  A {Microsoft
        Windows}/{WinSock} version is planned, as are extensions for
        off-line use.

        Pine was originally based on {Elm} but has evolved much since
        ("Pine Is No-longer Elm").  Pine is the work of Mike Seibel,
        Mark Crispin, Steve Hubert, Sheryl Erez, David Miller and
        Laurence Lundblade (now at Virginia Tech) at the University of
        Washington Office of Computing and Communications.

        {(ftp://ftp.cac.washington.edu/mail/pine.tar.Z)}.
        {(telnet://demo.cac.washington.edu/)} (login as "pinedemo").

        E-mail: <pine@cac.washington.edu>,
        <pine-info-request@cac.washington.edu>,
        <pine-announce-request@cac.washington.edu>.

        (21 Sep 93)

pin feed

        {sprocket feed}

ping

        1. <networking> {Packet INternet Groper}.

        2. <messaging> To send a message to all members of a {mailing
        list} requesting an {ACK} (in order to verify that everybody's
        addresses are reachable).  "We haven't heard much of anything
        from Geoff, but he did respond with an ACK both times I pinged
        jargon-friends."

        3. A quantum packet of happiness.  People who are very happy
        tend to exude pings; furthermore, one can intentionally create
        pings and aim them at a needy party (e.g. a depressed person).
        This sense of ping may appear as an exclamation; "Ping!" (I'm
        happy; I am emitting a quantum of happiness; I have been
        struck by a quantum of happiness).  The form "pingfulness",
        which is used to describe people who exude pings, also occurs.
        (In the standard abuse of language, "pingfulness" can also be
        used as an exclamation, in which case it's a much stronger
        exclamation than just "ping"!).  Opposite: {blargh}.

        (1997-03-10)

ping-flood

        <networking> To {flood} another user with {ping} requests.

        (1997-04-07)

pinging

        {ping}

ping-pong

        <architecture> A phenomenon which can occur in a
        multi-processor system with private caches where two
        processors are alternately caching a shared location.  Each
        time one writes to it it invalidates the other's copy.

        (1995-12-29)

Pin Grid Array
        
        <hardware> (PGA) A style of {integrated circuit} socket or
        pin-out with pins laid out on a square or rectangular grid
        with a separation of 0.1 inch in each direction.  The pins
        near the centre of the array are often missing.

        PGA is often used on {motherboards} for {processors}, e.g.
        {Socket 6} and {Socket 8}.

        See also {SPGA}.

        (1999-08-04)

Pink-Shirt Book

        <publication> "The Peter Norton Programmer's Guide to the IBM
        PC".

        The original cover featured a picture of Peter Norton with a
        silly smirk on his face, wearing a pink shirt.  Perhaps in
        recognition of this usage, the current edition has a different
        picture of Norton wearing a pink shirt.

        See also {book titles}.

        (1995-03-28)

pin-out

        <hardware> (Or "pinout") The allocation of logical functions
        or signals to the electrical connection points (pins) of an
        {integrated circuit} or other component or connector.

        (1996-04-04)

PIP

        <tool> Peripheral Interchange Program.

        A program on {CP/M}, {RSX-11}, {RSTS/E}, {TOPS-10}, and {OS/8}
        (derived from a utility on the {PDP-6}) that was used for file
        copying (and in OS/8 and RT-11 for just about every other file
        operation you might want to do).  It is said that when the
        program was written, during the development of the PDP-6 in
        1963, it was called ATLATL ("Anything, Lord, to Anything,
        Lord"; this played on the Nahuatl word "atlatl" for a
        spear-thrower, with connotations of utility and primitivity
        that were no doubt quite intentional).

        See also {BLT}, {dd}, {cat}.

        (1995-03-28)

pipe

        1. <operating system> One of {Unix}'s buffers which can be
        written to by one {asynchronous} process and read by another,
        with the {kernel} suspending and waking up the sender and
        receiver according to how full the pipe is.  In later versions
        of Unix, rather than using an anonymous kernel-managed
        temporary file to implement a pipe, it can be named and is
        implemented as a local {socket} pair.

        2. <character> "|" {ASCII} character 124.  Used to represent a
        pipe between two processes in a {shell} command line.  E.g.

                grep foo log | more

        which feeds the output of grep into the input of more without
        requiring a named temporary file and without waiting for the
        first process to finish.

        3. <jargon, networking> A connection to a {network}.

        See also {light pipe}.

        (1996-09-24)

pipeline

        <architecture> A sequence of {functional units} ("stages")
        which performs a task in several steps, like an assembly line
        in a factory.  Each functional unit takes inputs and produces
        outputs which are stored in its output {buffer}.  One stage's
        output buffer is the next stage's input buffer.  This
        arrangement allows all the stages to work in parallel thus
        giving greater throughput than if each input had to pass
        through the whole pipeline before the next input could enter.

        The costs are greater latency and complexity due to the need
        to synchronise the stages in some way so that different inputs
        do not interfere.  The pipeline will only work at full
        efficiency if it can be filled and emptied at the same rate
        that it can process.

        Pipelines may be synchronous or asynchronous.  A synchronous
        pipeline has a master clock and each stage must complete its
        work within one cycle.  The minimum clock period is thus
        determined by the slowest stage.  An asynchronous pipeline
        requires {handshaking} between stages so that a new output is
        not written to the interstage buffer before the previous one
        has been used.

        Many {CPU}s are arranged as one or more pipelines, with
        different stages performing tasks such as fetch instruction,
        decode instruction, fetch arguments, arithmetic operations,
        store results.  For maximum performance, these rely on a
        continuous stream of instructions fetched from sequential
        locations in memory.  Pipelining is often combined with
        {instruction prefetch} in an attempt to keep the pipeline
        busy.

        When a {branch} is taken, the contents of early stages will
        contain instructions from locations after the branch which
        should not be executed.  The pipeline then has to be flushed
        and reloaded.  This is known as a {pipeline break}.

        (1996-10-13)

pipeline break

        <architecture> (Or "pipeline stall") The delay caused on a
        processor using {pipelines} when a {transfer of control} is
        taken.  Normally when a control-transfer instruction (a
        branch, conditional branch, call or trap) is taken, any
        following instructions which have been loaded into the
        processor's {pipeline} must be discarded or "flushed" and new
        instructions loaded from the branch destination.  This
        introduces a delay before the processor can resume execution.

        "{Delayed control-transfer}" is a technique used to reduce
        this effect.

        (1996-10-13)

Pipeline Burst Cache

        <hardware, storage> (PB Cache) A {synchronous cache} built
        from {pipelined} {SRAM}.

        A {cache} in which reading or writing a new location takes
        multiple {cycles} but subsequent locations can be accessed in
        a single {cycle}.  On {Pentium} systems in 1996, pipeline burst
        caches are frequently used as {secondary caches}.  The first 8
        {bytes} of data are transferred in 3 {CPU} {cycles}, and the
        next 3 8-{byte} pieces of data are transferred in one {cycle}
        each.

        (1996-10-13)

pipelined

        {pipeline}

Pipelined Burst Cache

        {Pipeline Burst Cache}

pipeline stall

        {pipeline break}

pipelining

        {pipeline}

PIPEX Ltd.

        {UUNET PIPEX}

piracy

        {software piracy}

pirate

        {software pirate}

PIRL

        Pattern Information Retrieval Language.

        A language for {digraph} manipulation, embeddable in {FORTRAN}
        or {ALGOL}, for {IBM 7094}.

        ["PIRL - Pattern Information Retrieval Language",
        S. Berkowitz, Naval Ship Res Dev Ctr, Wash DC].

        (1994-11-29)

pistol

        [IBM] A tool that makes it all too easy for you to shoot
        yourself in the foot.  "Unix "rm *" makes such a nice pistol!"

PIT

        Language for IBM 650.  (See {IT}).

pixel

        {picture element}

pixmap

        (Contraction of "pixel map").  A 3 dimensional {array} of bits
        corresponding to a 2 dimensional array of {pixel}s.  It is
        used, for example, in the {X Window System} to describe a
        memory region where graphics can be drawn without affecting
        the screen.  Typically this is used for the efficient handling
        of {expose} events, {icon} images or for animation.  Compare
        {bitmap}.

        [Xlib Guide].

pizza box

        [Sun] The largish thin box housing the electronics in
        (especially {Sun}) desktop {workstation}s, so named because of
        its size and shape and the dimpled pattern that looks like air
        holes.

        Two megabyte single-platter removable disk packs used to be
        called pizzas, and the huge drive they were stuck into was
        referred to as a pizza oven.  It's an index of progress that
        in the old days just the disk was pizza-sized, while now the
        entire computer is.

PJPEG

        {Progressive JPEG}

pk

        <networking> The {country code} for Pakistan.

        (1999-01-27)

PKE

        {public-key encryption}

PKLITE

        <compression, tool> An executable file {compression} utility
        for {MS-DOS} from {PKWARE, Inc.}.  PKLITE compresses the body
        of the executable and adds a small, fast decompress routine in
        the header.  In many cases it performs better than {lzexe}.
        With {headpack} the output is smaller and cannot be
        decompressed.

        (1999-01-07)

PKUNZIP

        <tool, compression> A program to unpack {archives} created by
        {PKZIP}, written by {PKWARE, Inc.} and released as
        {shareware}.  Versions exist for {MS-DOS}, {Microsoft Windows}
        and {Open VMS}.  PKUNZIP is no longer distributed, its
        functions having been incorporated into PKZIP.

        (1999-01-07)

PKWARE, Inc.

        <company, compression> The company which produces the {PKZIP}
        and {PKUNZIP} compression tools and libraries for many
        {platforms}.

        {Home (http://www.pkware.com/)}.

        E-mail: info@pkware.com.

        Telephone: +1 (414) 354 8699.

        Address: 9025 N. Deerwood Drive, Brown Deer, WI 53223-2480,
        USA.

        (1999-01-07)

PKZIP

        <tool> A file {compression} and archiver utility for {MS-DOS}
        and {Microsoft Windows} from {PKWARE, Inc.}.  PKZIP uses a
        variation on the {sliding window} compression {algorithm}.  It
        comes with {pkunzip} and {pklite} and is available as
        {shareware} from most {FTP archives} in a self-expanding
        {MS-DOS} executable.

        Current versions as of 1999-10-07: PKZIP 2.60 GUI for
        {Microsoft Windows 3.1}x, {Windows 9x}, {Windows NT}; PKZIP
        2.50 Command Line for Windows 9x NT; PKZIP 2.04g for {MS-DOS};
        PKZIP 2.51 for {Unix}, ({Linux}, {SPARC} {Solaris}, {Digital},
        {HP-UX}, {IBM AIX} and {SCO} Unix); PKZIP 2.50 for {OS/2};
        PKZIP for {Open VMS}/{VAX}.

        {WINZIP} is a version with a {GUI} for {Microsoft Windows}.

        A distribution in about 1995-06-22 claiming to be "PKZIP 3"
        was actually a {trojan horse} which attempted to reformat the
        hard disk and delete all files on it.

        {Home (http://www.pkware.com/catalog/pkzip_win.html)}.

        [Status, history of WINZIP, PKLITE?]

        (1999-01-16)

pl

        <networking> The {country code} for Poland.

        (1999-01-27)

PL1

        <spelling> It's spelled "{PL/I}".

        (1996-12-13)

PL/1

        <spelling> It's spelled "{PL/I}".

        (1996-12-13)

PL-11

        <language> A high-level machine-oriented language for the
        {PDP-11} developed by R.D. Russell of CERN in Nov 1971.  It is
        similar to {PL360} and is written in {Fortran IV} and
        {cross-compile}d on other machines.

        (1995-01-05)

PL360

        {Structured assembly language} for the {IBM 360} and {IBM
        370}, with a few high-level constructs.  Syntactically it
        resembles {ALGOL 60}.  Its grammar is defined entirely by
        operator precedence.

        ["PL/360, A Programming Language for the 360 Computers",
        N. Wirth, J ACM 15(1):37-74 (Jan 1968)].

        (1995-01-05)

PL516

        An {ALGOL}-like {assembly language} for the {DDP-516}, similar
        to {PL360}.

        ["PL 516, An ALGOL-like Assembly Language for the DDP-516",
        B.A. Wichmann, Natl Phys Lab UK, Report CCU 9, 1970].

        (1995-01-05)

PL-6

        A {PL/I}-like system language for the {Honeywell} {operating
        system}, {CP-6}.

        (1995-01-05)

PL.8

        A systems dialect of {PL/I}, developed originally for the {IBM
        801} {RISC} {minicomputer}, later used internally for {IBM RT}
        and {R/6000} development.

        ["An Overview of the PL.8 Compiler", M. Auslander et al, Proc
        SIGPLAN '82 Symp on Compiler Writing].

        (1995-01-05)

Pla

        <language, music> A high-level music programming language,
        written in {SAIL}.  Pla includes {concurrency} based on
        {message passing}.

        ["Pla: A Composer's Idea of a Language", B. Schottstaedt,
        Computer Music J 7(1):11-20, Winter 1983].

        (1999-06-04)

PLACE

        Programming Language for Automatic Checkout Equipment.

        ["The Compiler for the Programming Language for Automatic
        Checkout Equipment (PLACE)", AFAPL TR-68-27, Battelle Inst,
        Columbus, May 1968].

PLAGO

        A translator-interpreter for a PL/I subset.  "PLAGO/360 User's
        Manual, Poly Inst Brooklyn.

plaid screen

        [XEROX PARC] A "special effect" that occurs when certain kinds
        of {memory smash}es overwrite the control blocks or image
        memory of a bit-mapped display.  The term "salt and pepper"
        may refer to a different pattern of similar origin.  Though
        the term as coined at PARC refers to the result of an error,
        some of the {X} demos induce plaid-screen effects deliberately
        as a {display hack}.

PLAIN

        Programming LAnguage for INteraction.  Pascal-like, with
        extensions for database, string handling, exceptions and
        pattern matching.  "Revised Report on the Programming Language
        PLAIN", A. Wasserman, SIGPLAN Notices 6(5):59-80 (May 1981).

plain ASCII

        /playn-as'kee/ {flat ASCII}.

Plain Old Documentation

        <text> (pod, occasionally "POD") A simple {markup langauge}
        used to embed {documentation}, {literate programming}-style,
        in {Perl} programs.  Pod readers and converters are part of
        the standard Perl distribution and the documentation provided
        with Perl is all in pod format.

        {The Pod Specification
        (http://www.perl.com/CPAN-local/doc/manual/html/pod/perlpod.html)}.

        (1998-12-18)

Plain Old Telephone Service

        <communications> (POTS) The traditional voice service provided
        by phone companies, especially when opposed to data services.

        Note that the acronym POTS is sometimes expanded as "Plain Old
        Telephone System" in which sense it is synonymous to {Public
        Switched Telephone Network} but used somewhat derogatively.

        (1998-05-18)

Plain Old Telephone System

        {Public Switched Telephone Network}

plain TeX

        <publication> {Donald Knuth}'s original set of user-level
        {macros} for interaction with his {TeX} formatter.  Dedicated
        TeX fans still prefer these over the more {user-friendly}
        {LaTeX} macros used by the majority of the TeX community.

        (1997-11-20)

plaintext

        <cryptography> A message before {encryption} or after
        decryption, i.e. in its usual form which anyone can read, as
        opposed to its encrypted form ("{ciphertext}").

        (1995-05-10)

PLAN

        <language> Programming LANguage Nineteen hundred.

        The {assembly language} for {ICL 1900} series computers.

        (1995-03-21)

.plan

        <operating system> See {plan file}.

Plan 9

        <operating system> (Named after the classically bad,
        exceptionally low-budget SF film "Plan 9 from Outer Space") An
        {operating system} developed at {Bell Labs} by many
        researchers previously intimately involved with {Unix}.

        Plan 9 is superficially Unix-like but features far finer
        control over the {name-space} (on a per-process basis) and is
        inherently distributed and scalable.

        Plan 9 is divided according to service functions.  CPU servers
        concentrate computing power into large multiprocessors; file
        servers provide repositories for storage and terminals give
        each user of the system a dedicated computer with bitmap
        screen and mouse on which to run a window system.  The sharing
        of computing and file storage services provides a sense of
        community for a group of programmers, amortises costs and
        centralises and hence simplifies management and
        administration.

        The pieces communicate by a single protocol, built above a
        reliable data transport layer offered by an appropriate
        network, that defines each service as a rooted tree of files.
        Even for services not usually considered as files, the unified
        design permits some simplification.  Each process has a local
        file name space that contains attachments to all services the
        process is using and thereby to the files in those services.
        One of the most important jobs of a terminal is to support its
        user's customised view of the entire system as represented by
        the services visible in the name space.

        {Documentation (ftp://plan9.att.com/dist/plan9doc/)} (an FTP
        server running Plan 9).

Planet

        ["An Experiment in Language Design for Distributed Systems",
        D. Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984)].

plan file

        <operating system> On {Unix} systems that support {finger},
        the ".plan" file in a user's {home directory} is displayed
        when the user is fingered.  This feature was originally
        intended to be used to keep potential fingerers apprised of
        one's location and near-future plans, but has been turned
        almost universally to humorous and self-expressive purposes
        (like a {sig block}).  See also {Hacking X for Y}.

        A later innovation in plan files was the introduction of
        "scrolling plan files" which are one-dimensional animations
        made using only the printable {ASCII} character set, {carriage
        return} and {line feed}, avoiding terminal specific {escape
        sequences}, since the {finger} command will (for security
        reasons; see {letterbomb}) not pass the {escape} character.

        Scrolling .plan files have become art forms in miniature, and
        some sites have started competitions to find who can create
        the longest running, funniest, and most original animations.
        A compiler (ASP) is available on {Usenet} for producing them.
        Typical animation components include:

         Centipede:              mmmmme
         Lorry/Truck:            oo-oP
         Andalusian Video Snail: _@/

        In the mid-1990s {WWW} {home pages} largely supplanted .plan
        files, providing a much richer forum for the publication of
        personal minutiae and digital creativity.

        See also {twirling baton}.

        (1998-01-16)

PLANIT

        Programming LANguage for Interaction and Teaching.  CAI
        language.  "PLANIT - A Flexible Language Designed for
        Computer-Human Interaction", S.L. Feingold, Proc FJCC 31,
        AFIPS (Fall 1967) Sammet 1969, p.706.

Plankalkl

        (Or "Plankalkuel" if you don't have umlauts).  The first
        programming language, by {Konrad Zuse}, ca. 1945.  Zuse wrote
        "Rechenplan allgemeiner Struktur" in 1944 which developed into
        Plankalkl.  Plankalkl included {array}s and {record}s and
        used a style of {assignment} in which the new value appears on
        the right.

        Zuse wrote Plankalkl for his {Z3} computer (finished before
        1945) and implemented it on there as well.  Much of his work
        may have been either lost or confiscated in the aftermath of
        World War II.

        ["The Plankalkl of Konrad Zuse", F.L. Bauer et al, CACM
        15(7):678-685 (Jul 1972)].

PLANNER

        A language for writing {theorem prover}s by {Carl Hewitt}
        <hewitt@ai.mit.edu> {MIT} 1967.  Never fully implemented.

        {CONNIVER} was an outgrowth of {PLANNER} and {microPLANNER} a
        subset.  {PLASMA} is a PLANNER-like system modelled on
        {Actors}.  See also {POPLER}, {QLISP}, {Scheme}.

        ["PLANNER: A Language for Proving Theorems in Robots", Carl
        Hewitt, Proc IJCAI-69, Wash DC, May 1969].

Planner-73

        The original name for {PLASMA}.

PLANS

        Programming Language for Allocation and Network Scheduling.  A
        PL/I preprocessor, used for developing scheduling algorithms.
        "A User's Guide to the Programming Language for Allocation and
        Network Scheduling", H.R.  Ramsey et al, TR SAI-77-068-DEN,
        Science Applications Inc (Jun 1977).

plants

        ["The Algorithmic Beauty of Plants", Przemyslaw Prusinkiewicz,
        Aristid Lindenmayer. New York: Springer-Verlag, 1990.
        3-54097297-8].

PLASMA

        PLAnner-like System Modelled on Actors.  {Carl Hewitt}, 1975.
        The first {actor} language.  Originally called Planner-73, and
        implemented in MacLisp.  Lisp-like syntax, but with several
        kinds of parentheses and brackets.

        ["A PLASMA Primer", B. Smith et al, AI Lab Working Paper 92,
        MIT Oct 1975].

        ["Viewing Control Structures as Patterns of Passing Messages",
        C. Hewitt, AI Lab Memo 410, MIT 1976].

platform

        Specific computer hardware, as in the phrase
        "platform-independent".  It may also refer to a specific
        combination of hardware and {operating system} and/or
        {compiler}, as in "this program has been ported to several
        platforms".  It is also used to refer to support software for
        a particular activity, as in "This program provides a platform
        for research into routing protocols".

        (1994-12-07)

Platform Independent Graphical User Interface

        (PIGUI) {The PIGUI FAQ
        (ftp://rtfm.mit.edu/pub/usenet/news.answers/portable-GUI-software/)}.

        [Summary?]

        (1994-11-22)

platinum-iridium

        <standard> A standard, against which all others of the same
        category are measured.  Usage: silly.

        The notion is that one of whatever it is has actually been
        cast in platinum-iridium alloy and placed in the vault beside
        the Standard Kilogram at the International Bureau of Weights
        and Measures near Paris, as the bar defining the standard
        {metre} once was.

        "This {garbage collection} {algorithm} has been tested against
        the platinum-iridium cons cell in Paris."

        Compare {golden}.

        (1997-02-20)

Platon

        Distributed language based on asynchronous message passing.

        ["Message Passing Communication Versus Procedure Call
        Communication", J. Staunstrup, Soft Prac & Exp 12(3):223-234
        (Mar 1982)].

        ["Platon Reference Manual", S. Soerensen et al, RECAU, U
        Aarhus, Denmark].

PLAY

        <language, music> A language for {real-time} music synthesis.
        1977.

        ["An Introduction to the Play Program", J. Chadabe ete al,
        Computer Music J 2,1 (1978)].

        (1999-06-04)

play by electronic mail

        <games> A kind of game where the players use {electronic mail}
        to communicate.  This may be done via a human {moderator} or
        an automatic {mailing list} {exploder} on some central machine
        or it may be fully distributed with each player just
        addressing his mail to all other players.

        This is a natural extension of "play by mail" games conducted
        via {snail mail}.

        {(http://fermi.clas.virginia.edu/~gl8f/pbm.html)}.  {Usenet}
        newsgroup: {news:rec.games.pbm}.

        (1994-10-27)

Playground

        A visual language for children, developed for Apple's Vivarium
        Project.  OOPSLA 89 or 90?

Play, Inc.

        <company> The company which designed and markets {Snappy Video
        Snapshot}.

        {Home (http://www.play.com)}.

        (1997-07-11)

playpen

        (IBM) A room where programmers work.

        Compare {salt mines}.

Playstation

        <games, hardware> A {games console} from {Sony Corporation}.

        {Home (http://www.scea.sony.com/playstation/)}

        {FAQ
        (http://www.flex.net/users/cjayc/vgfa/system/sony_psx.txt)}.

        [Features?]

        (1996-03-21)

playte

        <data, jargon> /playt/ 16 {bits}, by analogy with {byte}.
        Usage: rare and extremely silly.

        See also {dynner}, {crumb}.

        (1997-12-03)

PLC

        {Programmable Logic Controller}

PL/C

        {Programming Language/Cornell}

PL Cornell

        {Programming Language/Cornell}

PLD

        {Programmable Logic Device}

plenum cable

        <hardware> Cable that that can be (legally) installed in the
        plenum (the space between a ceiling and the floor above it).
        Such cable is (usually) teflon-coated so that it will not give
        off toxic fumes when burned.  In some parts of the world such
        cable is required by law.

        (1996-08-25)

pleonasm

        Redundancy of expression; tautology.

        (1995-03-25)

plesiochronous

        <communications> Nearly synchronised, a term describing a
        communication system where transmitted signals have the same
        nominal digital rate but are synchronised on different clocks.

        According to {ITU-T} {standards}, corresponding signals are
        plesiochronous if their significant instants occur at
        nominally the same rate, with any variation in rate being
        constrained within specified limits.

        (1995-03-02)

Plesiochronous Digital Hierarchy

        <communications> (PDH) A transmission system for voice
        communication using {plesiochronous} synchronisation.

        PDH is the conventional {multiplexing} technology for network
        transmission systems.  PDH is being replaced by {SONET} and
        other SDH ({Synchronous Digital Hierarchy}) schemes.  Service
        levels are described with terms like {DS1}, as in {ISDN}.

        (1995-03-02)

Pleuk grammar development system

        A shell for grammar development by Jo Calder
        <jcalder@cs.sfu.ca>, Kevin Humphreys <kwh@cogsci.ed.ac.uk>,
        Chris Brew <chrisbr@cogsci.ed.ac.uk>, Mike Reape
        <mreape@cs.tcd.ie>.  It handles various grammatical formalisms
        and requires {SICStus Prolog} version 2.1#6 or later.

        Version 1.0

        {(ftp://ai.uga.edu/ai.natural.language/)}

        E-mail: <pleuk@cogsci.ed.ac.uk>.

        (1993-06-18)

Plexus

        A modular {World-Wide Web} {server} written in {Perl} by Tony
        Sanders <sanders@earth.com>.  Comes with interfaces to allow
        many other information services to be served via the Web.

        {Version 3.0m 1994-07-22 (ftp://ftp.earth.com/plexus/)}

        (1994-07-22)

PL/I

        Programming Language One.

        An attempt to combine the best features of {FORTRAN}, {COBOL}
        and {ALGOL 60}.  Developed by George Radin of {IBM} in 1964.
        Originally named NPL and FORTRAN VI.  The result is large but
        elegant.  PL/I was one of the first languages to have a formal
        {semantic} definition, using the {Vienna Definition Language}.
        {EPL}, a dialect of PL/I, was used to write almost all of the
        {Multics} {operating system}.  PL/I is still widely used
        internally at {IBM}.  The PL/I standard is ANS X3.53-1976.

        PL/I has no {reserved word}s.  Types are fixed, float,
        complex, character strings with maximum length, bit strings,
        and label variables.  {Array}s have lower bounds and may be
        dynamic.  It also has summation, multi-level structures,
        {structure assignment}, untyped pointers, {side effect}s and
        {aliasing}.  {Control flow} constructs include goto; do-end
        groups; do-to-by-while-end loops; external procedures;
        internal nested procedures and blocks; {generic procedure}s
        and {exception handling}.  Procedures may be declared
        {recursive}.  Many implementations support {concurrency}
        ('call task' and 'wait(event)' are equivalent to {fork}/join)
        and compile-time statements.

        {LPI} is a PL/I {interpreter}.

        ["A Structural View of PL/I", D. Beech, Computing Surveys, 2,1
        33-64 (1970)].

        (1994-10-25)

PL/I-FORMAC

        <language> A variant of {FORMAC}.

        ["The PL/I-FORMAC Interpreter", J. Xenakis, Proc 2nd Symp
        Symbolic and Algebraic Manip, ACM, Mar 1971].

        [Sammet 1969, p. 486].

        [Details?  Relatonship to {PL/I}?]

        (1994-10-25)

pling

        <character> {exclamation mark}.

        [Does anyone call {vertical bar} ("|", broken or unbroken)
        "pling"?]

        (1998-09-20)

plingnet

        {UUCPNET}.  See also {pling}.

PLisp

        1. PostScript Lisp?  A {Common Lisp} translator and
        programming environment in {PostScript} by John Peterson
        <peterson-john@cs.yale.edu>.

        2. Pattern LISP.  1990.  A {pattern-matching} rewrite-rule
        language, optimised for describing syntax translation rules.
        (See {LISP70}).

PL/I SUBSET

        An early 70's version of {PL/I} for {minicomputer}s.

PL/I Subset G

        ("General Purpose") The commercial {PL/I} subset, i.e. what was
        actually implemented by most vendors.  ANS X3.74-1981.

PLITS

        Programming Language In The Sky.  A computational model for
        concurrency with communication via {asynchronous
        message-passing}.

        ["High Level Programming for Distributed Computing",
        J.A. Feldman, CACM 22(6):353- 368 (Jun 1979)].

PLL

        {phase-locked loop}

PL/M

        Programming Language/Microcomputers.  MAA (later Digital
        Research) for Intel, 1972.  A very low level language
        incorporating ideas from PL/I, ALGOL and XPL.  Integrated
        macro processor.  Originally the implementation language for
        CP/M.  "PL/M-80 Programming Manual", Doc 98-268B, Intel 1976.
        "A Guide to PL/M Programming for Microcomputer Applications",
        D. McCracken, A-W 1978.  Versions: PL/M-80, PL/M-86, PL/M-286.

PLMK

        <chat> please let me know.

        (1999-09-27)

plokta

        /plok't*/ Press Lots Of Keys To Abort.  To press random keys
        in an attempt to get some response from the system.  One might
        plokta when the abort procedure for a program is not known, or
        when trying to figure out if the system is just sluggish or
        really hung.  Plokta can also be used while trying to figure
        out any unknown key sequence for a particular operation.
        Someone going into "plokta mode" usually places both hands
        flat on the keyboard and mashes them down, hoping for some
        useful response.

        A slightly more directed form of plokta can often be seen in
        mail messages or {Usenet} articles from new users - the text
        might end with

               ^X^C
               q
               quit
               :q
               ^C
               end
               x
               exit
               ZZ
               ^D
               ?
               help

        as the user vainly tries to find the right exit sequence, with
        the incorrect tries piling up at the end of the message.

plonk

        <networking, abuse> (Possibly influenced by British slang
        "plonk" for cheap booze, or "plonker" for someone behaving
        stupidly) The sound a {newbie} makes as he falls to the bottom
        of a {kill file}.  Used almost exclusively in the {Usenet}
        {newsgroup} {news:talk.bizarre}, this term (usually written
        "*plonk*") is a form of public ridicule.

        Another theory is that it is an acronym for "Person with
        Little Or No Knowledge".

        (1998-10-27)

plotter

        <hardware> A device that uses one or more pens that can be
        raised, lowered and moved over the printing media to draw
        graphics or text.

        The heart of the plotter is the printer head assembly,
        consisting of a horizontal bar and, attached to it, the head
        assembly holding the pen in use.  The pen can be positioned
        horizontally by moving the pen assembly along the bar.
        Vertical positioning is achieved by either moving the bar
        (stationary page plotter) or the paper (rolling page plotter).
        Combinations of horizontal and vertical movement are used to
        draw arbitrary lines and curves in a single action, in
        contrast to {printers} which usually scan horizontally across
        the page.

        Colour plots can be made by using more than one pen.  Older
        plotters required a separate pen for each colour and the pens
        had to be changed by hand.  Modern colour plotters usually use
        only four pens (cyan, magenta, yellow, and black, see {CMYK})
        and need no human intervention to change them.

        Monochromatic plotters have been largely phased out by {laser
        printers} except when large paper size is needed, e.g. in
        {CAD}.

        (1996-01-10)

PL/P

        Programming Language, Prime.  Russ Barbour, PRIME Computer,
        late 70's.  Subset of PL/I used internally for implementation
        of PRIMOS.  (See SPL[4]).

PL/PROPHET

        PL/I-like language for the PROPHET system, used by
        pharmacologists.  "The Implementation of the PROPHET System",
        P.A.  Castleman et al, NCC 43, AFIPS (1974).

PL/S

        {Programming Language/Systems}

PL/Seq

        Programming Language for Sequences.  A DSP language.  "A
        General High Level Language for Signal Processors", J. Skytta
        & O. Hyvarinen, Digital Signal Processing 84, Proc Intl Conf,
        Fiorence, Italy, Sep 1984, pp.217-221.

PL/SQL

        {Procedural Language/SQL}

PLTL

        {Propositional Linear Temporal Logic}

plug and play

        <jargon> 1. Hardware or software that, after being installed
        ("plugged in"), can immediately be used ("played with"), as
        opposed to hardware or software which requires configuration.

        See also {turnkey}, {plug and pray}.

        2. A new recruit who needs no training.  "The new guy, John,
        is great.  He's totally plug-and-play."

        (1997-03-30)

plug and pray

        <humour> The {Windows 95} equivalent of the {Macintosh}'s
        {plug and play}, referring to difficulties encountered when
        setting up new {hardware} under Windows 95.

        (1997-10-11)

Pluggable Authentication Module

        <security> (PAM) The new industry standard integrated {login}
        {framework}.  PAM is used by system entry components, such as
        the {Common Desktop Environment}'s dtlogin, to authenticate
        users logging into a {Unix} system.  It provides pluggability
        for a variety of system-entry services.  PAM's ability to
        {stack} authentication {modules} can be used to integrate
        {login} with different authentication mechanisms such as
        {RSA}, {DCE} and {Kerberos}, and thus unify login mechanisms.
        PAM can also integrate {smart card} authentication.

        {White paper (http://www.gr.osf.org/book/psm-wppr.htm)}.

        [OSF-RFC 86.0 V. Samar, R. Schemers, "Unified Login with
        Pluggable Authentication Modules (PAM)", Oct 1995].

        (1997-07-18)

plugh

        <games> /ploogh/ A magic word from the {ADVENT} game.

        (1996-04-01)

plug-in

        <tool> A file containing data used to alter, enhance, or
        extend the operation of a parent {application program}.  One
        of the first uses of this term was in {Silicon Beach}'s
        {SuperPaint} application (late 1980s?) for the {Macintosh}.
        It had a Plug-ins {folder} containing different tools and
        effects.

        The {Netscape Navigator} {World-Wide Web} {browser} supports
        plug-ins which display or interpret a particular file format
        or {protocol} such as {Shockwave}, {RealAudio}, {Adobe
        Systems, Inc.} {PDF}, {Corel CMX} ({vector graphics}).  The
        file to be displayed is included in a {web page} using an
        EMBED {HTML} {tag}.

        Plug-ins, both commercially and indepently authored, can
        usually be downloaded for free and are stored locally.
        Plug-ins come in different versions specific to particular
        {operating systems} ({Microsoft Windows 3.1}, 3.2, and
        {Macintosh} are available).

        Compare {applet}.

        {Plug-in Plaza (http://www.browserwatch.com/plug-in.html)}.

        {PC Mag Plug-ins
        (http://www.zdnet.com/pcmag/IU/plugins/plugins.htm)}.

        (1996-05-25)

PLUM

        A {compiler} for a substantial subset of {PL/I} for the
        {Univac 1100}, from the {University of Maryland}.

        ["PL/I Programming with PLUM", M.V. Zelkowitz, Paladin House,
        1978].

        (1995-02-23)

Plumber

        <programming, tool> A system for obtaining information about
        {memory leaks} in {Ada} and {C} programs.

        {Home (http://home.earthlink.net/~owenomalley/plumber.html)}.

        (17 Feb 1999)

plumbing

        (Unix) Term used for {shell} code, so called because of the
        prevalence of "{pipeline}s" that feed the output of one
        program to the input of another.  Under {Unix}, user utilities
        can often be implemented or at least prototyped by a suitable
        collection of pipelines and temporary file {grind}ing
        encapsulated in a {shell script}.  This is much less effort
        than writing {C} every time, and the capability is considered
        one of Unix's major winning features.  A few other {operating
        system}s such as {IBM}'s {VM/CMS} support similar facilities.

        The {tee} utility is specifically designed for plumbing.

        (1995-02-23)

Plural EuLisp

        EuLisp with parallel extensions.  "Collections and Garbage
        Collection", S.C. Merall et al, in Memory Management - IWMM92,
        Springer 1992, pp.473-489.

PLUS

        Late 60's.  Machine-oriented systems language used internally
        by Univac.

plus

        +

        Common: {ITU-T}: plus; add.  Rare: cross; {INTERCAL}:
        intersection.

PLUSS

        Proposition of a Language Useable for Structured
        Specifications.  Algebraic specification language, built on
        top of ASL.  "A First Introduction to PLUSS", M.C. Gaudel, TR,
        U Paris Sud, Orsay 1984.

ply

        <mathematics, data> 1. Of a {node} in a {tree}, the number of
        {branches} between that node and the {root}.

        2. Of a tree, the maximum ply of any of its nodes.

        (1998-12-29)

PM

        1. {preventive maintenance}.

        2. {Presentation Manager}

        3. ["PM, A System for Polynomial Manipulations", G.E. Collins,
        CACM 9(8):578-589 (Aug 1966)].

pm

        <networking> The {country code} for St. Pierre and Miquelon.

        (1999-01-27)

pm2

        <language, compiler> A software emulator for parallel random
        access machine (PRAM) and a parallel {Modula-2} compiler for
        the emulator.  pm2 programming language is Modula-2/Pascal
        mixture having extensions for parallel execution in a PRAM.
        Parallelism is expressed by pardo-loop-structure.  Additional
        features include private/shared variables, two synchronisation
        strategies, load balancing and parallel dynamic memory
        allocation.

        {(ftp://cs.joensuu.fi/pub/Software/pram/)}.

        E-mail: Simo Juvaste <sjuva@cs.joensuu.fi>.

        (1997-06-04)

P-mail

        Physical mail, as opposed to {e-mail}.  Synonymous
        with {snail-mail}.

PMBX

        {Private Manual Branch EXchange}

PMC

        {PCI Mezzanine Card}

PML

        Parallel {ML}.

        ["Synchronous Operations as First-Class Values", J.H.  Reppy
        <jhr@research.att.com>, Proc SIGPLAN 88 Conf Prog Lang Design
        and Impl, June 1988, pp. 250-259].

pn

        <networking> The {country code} for Pitcairn Island.

        (1999-01-27)

pnambic

        /p*-nam'bik/ (From the scene in the film, "The Wizard of Oz"
        in which the true nature of the wizard is first discovered:
        "Pay no attention to the man behind the curtain"). A term
        coined by Daniel Klein <dvk@lonewolf.com> for a stage of
        development of a process or function that, owing to incomplete
        implementation or to the complexity of the system, requires
        human interaction to simulate or replace some or all of its
        actions, inputs or outputs.  The term may also be applied to a
        process or function whose apparent operations are wholly or
        partially falsified or one requiring {prestidigitization}.

        The ultimate pnambic product was "Dan Bricklin's Demo", a
        program which supported flashy user-interface design
        prototyping.

        There is a related maxim among hackers: "Any sufficiently
        advanced technology is indistinguishable from a rigged demo."
        See {magic} for illumination of this point.

        ["Open Channel", IEEE "Computer", November 1981].

        (1994-11-01)

PNG

        {Portable Network Graphics}

PNP

        1. <electronics> A type of {bipolar transistor} consisting of
        a layer of N-doped {semiconductor} (the "base") between two
        P-doped layers (the "collector" and "emitter").  PNP
        transistors are commonly operated with the emitter at {ground}
        and the collector at a negative {voltage}.

        In the 1960s, the germanium PNP transistor was the cheapest
        and best for use at ordinary temperatures.  The {leakage
        current} from collector to base in this type of device is
        larger than for the silicon transistor, and also varies more
        with temperature.  The effect of these deficiencies can be
        lessened by proper biasing and feedback, which can make the
        circuit both serviceable and reliable.  Neither germanium nor
        PNP transistors are as common today.

        The voltages used on a PNP transistor are inverted when
        compared with {vacuum tubes}.  Further, the behaviour of
        vacuum tubes is usually described in terms of {voltages}
        whereas transistors are better described in terms of
        {current}.

        2. <architecture> {plug and play}.

        (1997-05-05)

PNU-Prolog

        A parallel extension of NU-Prolog, implemented as a
        preproccessor.

        {(ftp://munnari.oz.au/pub/bebop.tar.Z)}

PoB

        {Prisoner of Bill}

POC

        {Point Of Contact}

POCAL

        PETRA Operator's CommAnd Language.

pocket calculator

        <computer> A small battery-powered digital electronic device
        for performing simple arithmetic operations on data input on a
        keypad and outputting the result (usually a single number) to
        a simple {LCD} or other display.

        The most sophisticated programmable calculators are really
        {pocket computers} which are limited to handling numerical
        data only.

        (1996-12-23)

pocket computer

        {palmtop}

pod

        Not to be confused with {P.O.D.}.

        1. <printer> (Allegedly from abbreviation POD for "Prince Of
        Darkness") A {Diablo} 630 (or, latterly, any {letter-quality}
        {impact printer}).  From the {DEC-10} {PODTYPE} program used
        to feed formatted text to it.

        2. {Plain Old Documentation}.

        (1998-12-18)

P.O.D.

        Piece Of Data (as opposed to code).

POE

        {PowerOpen Environment}

POFAC

        A subset of {Fortran}.

        [Mentioned in Machine Oriented Higher Level Languages, W. van
        der Poel, N-H 1974, p. 273].

        ["POFAC Description", R.  Haentjens, Report 19, Cenre
        d'Information, Ecole Royale Militaire, Brussels, 1973].

        (1994-10-20)

POGO

        Early system on G-15.  Listed in CACM 2(5):16 (May 1959).

point

        1. <text, unit> (Sometimes abbreviated "pt") The unit of
        measurement for {text} {character}s.  One point is 1/72 inches
        (approx 0.35mm) so 12 point text would be 1/6th inch (approx
        4.2mm) high when printed.

        2. <hardware> To move a {pointing device} so that the
        on-screen pointer is positioned over a certain object on the
        screen such as a {button} in a {graphical user interface}.  In
        most {window systems} it is then necessary to {click} a
        (physical) button on the pointing device to activate or select
        the object.  In some systems, just pointing to an object is
        known as "mouse-over" {event} which may cause some help text
        (called a "tool tip" in {Windows}) to be displayed.

        (1999-07-07)

point-and-drool interface

        <abuse> (Or "point-and-grunt interface") A parody of
        "{point-and-shoot interface}", describing a windows, icons,
        and mouse-based interface such as is found on the {Macintosh}.
        The implication, of course, is that such an interface is only
        suitable for idiots.

        See {for the rest of us}, {WIMP}, {Macintrash}, {drool-proof
        paper}.

        (1994-12-22)

point-and-grunt interface

        {point-and-drool interface}

pointed domain

        <theory> In most formulations of {domain theory}, a {domain}
        is defined to have a {bottom} element and {algebraic} {CPO}s
        without bottoms are called "{predomains}".  David Schmidt's
        domains do not have this requirement and he calls a domain
        with a bottom "pointed".

        (1999-07-07)

pointer

        1. <programming> An {address}, from the point of view of a
        programming language.  A pointer may be typed, with its {type}
        indicating the type of data to which it points.

        The terms "pointer" and "reference" are generally
        interchangable although particular programming languages often
        differentiate these two in subtle ways.  For example, {Perl}
        always calls them references, never pointers.  Conversely, in
        C, "pointer" is used, although "a reference" is often used to
        denote the concept that a pointer implements.

        {Anthony Hoare} once said:

        Pointers are like jumps, leading wildly from one part of the
        data structure to another.  Their introduction into high-level
        languages has been a step backwards from which we may never
        recover.

        [C.A.R.Hoare "Hints on Programming Language Design", 1973,
        Prentice-Hall collection of essays and papers by Tony Hoare].

        2. <operating system> (Or "mouse pointer") An {icon}, usually
        a small arrow, that moves on the screen in response to
        movement of a {pointing device}, typically a {mouse}.  The
        pointer shows the user which object on the screen will be
        selected etc. when a mouse button is clicked.

        (1999-07-07)

pointer swizzling

        {swizzle}

pointing device

        <hardware> Any hardware component that allows a user to input
        spatial data to a computer.  {CAD} systems and {Graphical User
        Interfaces} (GUI) allow the user to control and provide data
        to the computer using physical "gestures" - {point}, {click},
        and {drag} - typically by moving a hand-held {mouse} across
        the surface of the physical desktop and activating switches on
        the mouse.  Movements of the pointing device are echoed on a
        graphical representation of a desktop on the screen by
        movements of the {mouse pointer} and other visual changes.

        While the most common pointing device by far is a mouse, other
        kinds include {tracker ball}, {trackpad}, {lightpen}, various
        kinds of {digitising tablets} which use a stylus, and even a
        special "{data glove}" that translates the user's movements to
        computer gestures.

        (1997-02-03)

Point Of Contact

        <networking> (POC) An individual associated with a particular
        {Internet} entity ({IP network}, {domain}, {ASN}).

        (1998-09-07)

point of presence

        (PoP) A site where there exists a collection of
        telecommunications equipment, usually {modem}s, digital leased
        lines and {multi-protocol router}s.  An {Internet access
        provider} may operate several PoPs distributed throughout
        their area of operation to increase the chance that their
        subscribers will be able to reach one with a local telephone
        call.  The alternative is for them to use {virtual PoP}s
        (virtual points of presence) via some third party.

        (1994-12-13)

point of sale terminal

        <hardware> (Or "POS") A computer, probably with a {bar code}
        reader, serving as a glorified cash register.

        (1997-11-23)

Point-to-Point Protocol

        <communications, protocol> (PPP) The {protocol} defined in
        {RFC 1661}, the {Internet} standard for transmitting {network
        layer} {datagrams} (e.g. {IP} packets) over serial
        point-to-point links.

        PPP has a number of advantages over {SLIP}; it is designed to
        operate both over {asynchronous} connections and bit-oriented
        {synchronous} systems, it can configure connections to a
        remote network dynamically, and test that the link is usable.
        PPP can be configured to encapsulate different network layer
        protocols (such as {IP}, {IPX}, or {AppleTalk}) by using the
        appropriate {Network Control Protocol} (NCP).

        {RFC 1220} describes how PPP can be used with remote bridging.

        {Usenet} newsgroup: {news:comp.protocols.ppp}.

        {A paper on PPP
        (ftp://ftp.uu.net/vendor/MorningStar/papers/sug91-cheapIP.ps.Z)}.

        (1994-12-13)

Point-to-Point Tunneling Protocol

        <communications, protocol> (PPTP) A {tunneling protocol} for
        connecting {Windows NT} {clients} and {servers} over {Remote
        Access Services} (RAS).  PPTP can be used to create a {Virtual
        Private Network} between computers running NT.  It is an
        extension of {PPP} sponsored by {Microsoft}.

        {Microsoft Point to Point Encryption} may be used with PPTP to
        provide an encrypted connection but PPTP itself does not use
        encryption.

        Compare: {Layer Two Tunneling Protocol}.

        [Origin?  Standard?  Document?]

        (1998-09-23)

Poisson distributions

        <mathematics> A {probability distribution} used to describe
        the occurrence of unlikely events in a large number of
        independent repreated trials.

        Poisson distributions are often used in building simulated
        user loads.

        (1995-10-12)

poke

        The {BASIC} command to write a value to an absolute address.

        See {peek}.

        (1995-01-31)

Polka

        An {object-oriented}, parallel {logic programming} language,
        built on top of {Parlog}.

        ["Polka: A Parlog Object-Oriented Language", Andrew Davison
        <ad@mullauna.cs.mu.oz.au>, TR, Parlog Group, Imperial College,
        London 1988].

        (1995-01-31)

poll

        To check the status of an input line, sensor, or memory
        location to see if a particular external event has been
        registered.

        Contrast {interrupt}.

        (1995-01-31)

polling

        See {poll}.

Poly

        1. D.C.J. Matthews, Cambridge, early 80's.  Polymorphic,
        block-structured.

        "An Overview of the Poly Programming Language", D.C.J.
        Matthews <djcm@cl.cam.ac.uk>, in Data Types and Persistence,
        M.P. Atkinson et al eds, Springer 1988.

        2. St Andrews U, Scotland.  Software Prac & Exp, Oct 1986.

        3. {Polymorphic} language used in Polymorphic Programming
        Languages, David M. Harland, Ellis Horwood 1984.

polygon pusher

        (Or "rectangle slinger").  A chip designer who spends most of
        his or her time at the physical layout level (which requires
        drawing *lots* of multi-coloured polygons).

POLYGOTH

        <language> A distributed language integrating {class}es with a
        parallel block structure, including {multiprocedure}s and
        {fragment}s.

        ["Operational Semantics of a Distributed Object-Oriented
        Language and its Z Formal Specification", M. Benveniste
        <mbenveni@irisa.irisa.fr>, TR532, IRISA/INRIA-Rennes].

        (1995-10-17)

polylithism

        <programming> A property of a data-object that can exist in
        many shapes and sizes, but not simultaneously; which
        distinguishes it from a {union}.  It is often implemented as a
        set of {classes} (or structs) derived from a common {base
        class} (or with a common header, as in the case of structs),
        typically without any {method}s.

        It has been loosely described as {polymorphic} data.

        [Clarification?]

        (1996-01-07)

Poly/ML

        {SML} implemented in D.C.J. Matthews's {Poly}, for {Motorola
        68020} and {SPARC}.

        Abstract Hardware Ltd. <ahl@ahl.co.uk>.

polymorphic

        See {polymorphism}.

polymorphic lambda-calculus

        (Or "second order typed lambda-calculus").  An extension of
        {typed lambda-calculus} allowing functions which take types as
        parameters.  E.g. the {polymorphic} function "twice" may be
        written:

                twice = /\ t . \  (f :: t -> t) . \ (x :: t) . f (f x)

        (where "/\" is an upper case Greek lambda and "(v :: T)" is
        usually written as v with subscript T).  The parameter t will
        be bound to the type to which twice is applied, e.g.:

                twice Int

        takes and returns a function of type Int -> Int.  (Actual type
        arguments are often written in square brackets [ ]).  Function
        twice itself has a higher type:

                twice :: Delta t . (t -> t) -> (t -> t)

        (where Delta is an upper case Greek delta).  Thus /\
        introduces an object which is a function of a type and Delta
        introduces a type which is a function of a type.  Polymorphic
        lambda-calculus was invented by Jean-Yves Girard in 1971 and
        independently by John C. Reynolds in 1974.

        (1994-12-16)

polymorphism

        A concept first identified by Christopher Strachey (1967) and
        developed by Hindley and Milner, allowing types such as list
        of anything.  E.g. in {Haskell}:

                length :: [a] -> Int

        is a function which operates on a list of objects of any type,
        a (a is a type variable).  This is known as parametric
        polymorphism.  Polymorphic typing allows strong type checking
        as well as generic functions.  {ML} in 1976 was the first
        language with polymorphic typing.

        Ad-hoc polymorphism (better described as {overloading}) is the
        ability to use the same syntax for objects of different types,
        e.g. "+" for addition of reals and integers or "-" for unary
        negation or diadic subtraction.  Parametric polymorphism
        allows the same object code for a function to handle arguments
        of many types but overloading only reuses syntax and requires
        different code to handle different types.

        See also {generic type variable}.

        In {object-oriented programming}, the term is used to describe
        variables which may refer at run-time to objects of different
        {class}es.

polynomial

        1. <mathematics> An arithmetic expression composed by summing
        multiples of powers of some variable.

                P(x) = sum a_i x^i for i = 0 .. N

        The multipliers, a_i, are known as "{coefficient}s" and N, the
        highest power of x with a non-zero coefficient, is known as
        the "degree" of the polynomial.  If N=0 then P(x) is constant,
        if N=1, P(x) is linear in x.  N=2 gives a "{quadratic}" and
        N=3, a "cubic".

        2. <complexity> {polynomial-time}.

polynomial-time

        <complexity> (P) The set or property of problems which can be
        solved by a known {polynomial-time algorithm}.

        (1995-04-10)

polynomial-time algorithm

        <complexity> A known {algorithm} (or {Turing Machine}) that is
        guaranteed to terminate within a number of steps which is a
        {polynomial} function of the size of the problem.

        See also {computational complexity}, {exponential time},
        {nondeterministic polynomial-time} (NP), {NP-complete}.

        (1995-04-13)

POM

        {phase of the moon}

        Usually used in the phrase "POM-dependent", which means
        {flaky}.

        (1995-04-10)

Ponder

        A {non-strict} {polymorphic}, {functional language} by Jon
        Fairbairn <jf@cl.cam.ac.uk>.

        Ponder's type system is unusual.  It is more powerful than the
        {Hindley-Milner type} system used by {ML} and {Miranda} and
        extended by {Haskell}.  Ponder adds extra recursive 'mu' types
        to those of Girard's {System F}, allowing more general
        {recursion}.  Surprisingly, the type system and {type
        inference} {algorithm} are still not completely understood.

        ["Ponder and its Type System", J. Fairbairn, TR 31, Cambridge
        U Computer Lab, Nov 1982].

        [J. Fairbairn, "Design and Implementation of a Simple Typed
        Language based on the Lambda-Calculus", Technical Report
        No. 75, Computer Laboratory, University of Cambridge, May
        1985].

        [J. Fairbairn, "A New Type-Checker for a Functional Language",
        Technical Report No. 53, Computer Laboratory, University of
        Cambridge, 1984].

        [J. Fairbairn, "Some Types with Inclusion Properties in
        \forall, \rightarrow, \mu", Technical Report No. 171, Computer
        Laboratory, University of Cambridge, Jun 1989].

        [Valeria C. V. de Paiva, "Subtyping in Ponder (Preliminary
        Report)", Technical Report No. 203, Computer Laboratory,
        University of Cambridge, Aug 1990].

Pong

        <games> A computer game invented in 1972 by {Atari}'s Nolan
        Bushnell.  The game is a minimalist rendering of table tennis.
        Each of the two players are represented as a white slab,
        controllable by a knob, which deflects a bouncing ball.  The
        goal of the game is to "AVOID MISSING BALL FOR HIGH SCORE".

        {Yahoo
        (http://www.yahoo.com/Recreation/Games/Video_Games/Classic_Arcade_Games
/Titles/Pong/)}.

        (1997-11-23)

POOL

        Parallel Object-Oriented Language.

        A series of languages from {Philips Research Labs}.

        See {POOL2}, {POOL-I}, {POOL-T}.

        (1995-02-07)

POOL2

        Parallel Object-Oriented Language 2.

        Philips Research Labs, 1987.

        Strongly typed, synchronous message passing, designed to run
        on {DOOM} (DOOM = Decentralised Object-Oriented Machine).

        ["POOL and DOOM: The Object- Oriented Approach", J.K. Annot,
        PAM den Haan, in Parallel Computers, Object-Oriented,
        Functional and Logic, P. Treleaven ed].

        ["Issues in the Design of a Parallel Object-Oriented
        Language", P. America, Formal Aspects of Computing
        1(4):366-411 (1989)].

        (1995-02-07)

POOL-I

        One of the {POOL} languages.

        ["A Parallel Object-Oriented Language with Inheritance and
        Subtyping", P. America et al, SIGPLAN Notices 25(10):161-168
        (OOPSLA/ECOOP '90) (Oct 1990)].

        (1995-02-07)

POOL-T

        Object-oriented, concurrent, synchronous.  Predecessor of
        POOL2.

        ["Definition of the Programming Language POOL-T", Esprit
        Project 415, Doc.  0091, Philips Research Labs, Eindhoven,
        Netherlands, June 1985].

        (1995-02-07)

POP

        1. <language> A family of programming languages, {POP-1},
        {POP-2}, {POP-10}, {Pop-11}, {POP++}, {POP-9X}, {POPLOG}.

        2. {Post Office Protocol}.

        See also {pop}, {PoP}.

        (1996-02-18)

PoP

        <networking> {Point Of Presence}.

        (1996-02-18)

pop

        <programming> To remove something from the top of a {stack}.

        Opposite of {push}.

        Not to be confuse with {POP} or {PoP}.

        (1996-02-18)

POP++

        An object-oriented extension of {POPLOG}.  Available from
        Integral Solutions.

POP-1

        Package for Online Programming.  Edinburgh, 1966.  First of
        the POP family of languages.  Used reverse Polish notation.
        Implemented as a threaded interpreter.  EPU-R-17, U Edinburgh
        (Jul 1966).  "POP-1: An Online Language", R. Popplestone, Mach
        Intell 2, E. Dale et al eds, Oliver and Boyd, Edinburgh 1968.

POP-10

        Descendant of {POP}-2, for the {PDP-10} by Julian Davies,
        1973.  ["POP-10 User's Manual", D.J.M. Davies, CS R25, U West
        Ontario, 1976].

Pop-11

        Robin POPplestone, 1975.  Originally for the {PDP-11}.  In
        some ways, Pop-11 is like FORTH (stack-oriented, extensible,
        efficient).  It's also like LISP (functional, dynamically
        typed, interactive, garbage- collected).  And the syntax is
        like Pascal (block-structured).  "Programming in POP-11",
        J. Laventhol <jcl@deshaw.com>, Blackwell 1987.
        Implementations: AlphaPop for Mac (Computable Functions Inc,
        413-253-7637).  PopTalk, POPLOG (U Sussex) available for
        VAX/VMS and most workstations.  E-mail: Robin Popplestone
        <pop@cs.umass.edu> (413)253-7637

POP-2

        Robin POPplestone, Edinburgh, 1967.  An innovative language
        incorporating many of Landin's ideas, including streams,
        closures, and functions as first-class citizens.  ALGOL-like
        syntax.  The first implementation was named Multi-POP, based
        on a REVPOL function written in POP-1, producing the
        reverse-polish form as output.  "POP-2 Papers", R.M.  Burstall
        et al, Oliver & Boyd 1968.  "Programming in POP-2",
        R.M. Burstall et al, Edinburgh U Press 1971.  "POP-2 User's
        Manual", R. Popplestone, Mach Intell 2, E. Dale et al eds,
        Oliver and Boyd, Edinburgh 1968.

POP3

        <messaging, protocol> Version 3 of the {Post Office Protocol}.
        POP3 is defined in {RFC 1081}, written in November 1988 by
        Marshall Rose, which is based on RFC 918 (since revised as RFC
        937).  POP3 allows a {client} computer to retrieve {electronic
        mail} from a POP3 {server} via a (temporary) {TCP/IP} or
        other[?] connection.  It does not provide for sending mail,
        which is assumed to be done via {SMTP} or some other method.

        POP is useful for computers, e.g. mobile or home computers,
        without a permanent network connection which therefore require
        a "post office" (the POP server) to hold their mail until they
        can retrieve it.

        Although similar in form to the original POP proposed for the
        {Internet} community, POP3 is similar in spirit to the ideas
        investigated by the {MZnet} project at the University of
        California, Irvine, and is incompatible with earlier versions
        of POP.

        Substantial work was done on examining POP in a {PC}-based
        environment.  This work, which resulted in additional
        functionality in this protocol, was performed by the {ACIS}
        Networking Systems Group at {Stanford University}.

        RFC 1082 (POP3 Extended Service) extends POP3 to deal with
        accessing mailboxes for {mailing lists}.

        (1997-01-09)

POP-9X

        Proposed {BSI} standard for {Pop-11}.

POPART

        A {grammar}-driven programming environment generator.  Uses
        {Paddle}.

        ["POPART: Producer of Paddles and Related Tools, System
        Builders' Manual", D.S. Wile TR RR-82-21, ISI, Marina del Rey,
        CA 1982].

        (1994-11-30)

POPCORN

        AI system built on POP-2.  "The POPCORN Reference Manual", S.
        Hardy, Essex U, Colchester, 1973.

pop-down menu

        {pull-down menu}

POPJ

        /pop'J/ [{PDP-10} return-from-subroutine instruction]. To
        return from a digression.  By verb doubling, "Popj, popj"
        means roughly "Now let's see, where were we?"  See {RTI}.

Poplar

        Morris, 1978.  A blend of LISP with SNOBOL4 pattern matching
        and APL-like {postfix syntax}.  Implicit iteration over lists,
        sorting primitive.  "Experience with an Applicative
        String-Processing Language", J.H. Morris et al, 7th POPL, ACM
        1980, pp.32-46.

POPLER

        A PLANNER-type language for the POP-2 environment.

        ["Popler 1.6 Reference Manual", D. Davies et al, U Edinburgh,
        TPU Report No 1 (May 1973)].

POPLOG

        A multi-language programming environment, which includes the
        languages {Pop-11}, {ML}, {Common Lisp} and {Prolog}.  It
        supports mixed-language programming and {incremental
        compilation} and includes a comprehensive {X Window System}
        interface.  It is built on top of a two-stack {virtual
        machine}, PVM.  POPLOG was developed at the University of
        Sussex, Brighton, UK.

        ["POPLOG's Two-Level Virtual Machine Support for Interactive
        Languages", R. Smith et al, in Research Directions in
        Cognitive Science, v.5 (1992)].

POPLOG ML

        {SML} for the {Poplog} system from the University of Sussex,
        UK.

POP server

        {Post Office Protocol}

PopTalk

        <language, product> A commercial {object-oriented} derivative
        of {POP}, from {Cambridge Consultants}, used in the {expert
        system} {MUSE}.

        (1995-02-27)

porno

        {pornography}

pornography

        <application> Still or moving images, usually of women, in
        varying states of nudity, posing or performing erotic acts
        with men, women, animals or other props.  Some say it degrades
        women, some say it corrupts young boys (who down-load it from
        {bulletin board systems} or exchange it on {floppy disks}).
        Much of it is in the form of {GIF} images, or, increasingly
        {JPEG} images.  There are even pornographic games, an early
        example being {Mac Playmate}.

        Beware - many institutions, particularly universities, have
        strict rules against their computers and networks being used
        to transfer or store such things, and you might get corrupted.

        (1998-07-19)

port

        1. <networking> A logical channel or channel endpoint in a
        communications system.  The {Transmission Control Protocol}
        and {User Datagram Protocol} {transport layer} protocols used
        on {Ethernet} use port numbers to distinguish between
        (demultiplex) different logical channels on the same {network
        interface} on the same computer.

        Each {application program} has a unique port number associated
        with it, defined in /etc/services or the {Network Information
        Service} "services" database.  Some {protocols}, e.g. {telnet}
        and {HTTP} (which is actually a special form of telnet) have
        default ports specified as above but can use other ports as
        well.

        2. <operating system, programming> To translate {software} to
        run on a different system or the results of doing so.  See
        {portability}.

        3. <language> An {imperative} language descended from {Zed}
        from {Waterloo Microsystems} (now {Hayes} Canada) ca. 1979.

        ["Port Language" document in the Waterloo Port Development
        System].

        (1998-02-20)

portability

        <operating system, programming> The ease with which a piece of
        software (or {file format}) can be "ported", i.e. made to run
        on a new {platform} and/or compile with a new {compiler}.

        The most important factor is the language in which the
        software is written and the most portable language is almost
        certainly {C} (though see {Vaxocentrism} for counterexamples).
        This is true in the sense that C compilers are available for
        most systems and are often the first compiler provided for a
        new system.  This has led several compiler writers to compile
        other languages to C code in order to benefit from its
        portability (as well as the quality of compilers available for
        it).

        The least portable type of language is obviously {assembly
        code} since it is specific to one particular (family of)
        {processor}(s).  It may be possible to translate mechanically
        from one assembly code (or even {machine code}) into another
        but this is not really portability.  At the other end of the
        scale would come {interpreted} or {semi-compiled} languages
        such as {LISP} or {Java} which rely on the availability of a
        portable {interpreter} or {virtual machine} written in a lower
        level language (often C for the reasons outlined above).

        The act or result of porting a program is called a "port".
        E.g. "I've nearly finished the {Pentium} port of my big bang
        simulation."

        Portability is also an attribute of {file formats} and depends
        on their adherence to {standards} (e.g. {ISO 8859}) or the
        availability of the relevant "viewing" software for different
        {platforms} (e.g. {PDF}).

        (1997-06-18)

portable

        {portability}

Portable Commodore 64

        <computer> A version of the {Commodore 64} modelled after the
        original Osborne portable PCs, with a flip-down keyboard that
        revealed a 5-inch colour monitor, and a built-in {1541} {floppy
        disk} drive.  It is thought that few were made but that they
        did go on sale, at least in Canada.

        [Relationship to {Commodore 65}?]

        (1997-09-14)

Portable Common Loops

        (PCL) A language which started out as an implementation of
        {CommonLoops} and turned into a portable {CLOS}
        implementation.  Version 1992-08-28.  It runs under {Lucid
        Common LISP} 4.0.1 and {CMU Common LISP} 16e.

        {(ftp://parcftp.xerox.com/pcl)}

        (1992-09-02)

        [Was it developed by Richard Harris
        <rharris@ptolemy2.rdrc.rpi.edu>?]

Portable Common Tool Environment

        (PCTE) An {ECMA} standard framework for software tools
        developed in the {Esprit} programme.  It is based on an
        {entity-relationship} {Object Management System} and defines
        the way in which tools access this.

Portable Document Format

        <file format> (PDF) The native file format for {Adobe
        Systems}' {Acrobat}.  PDF is the file format for representing
        documents in a manner that is independent of the original
        application software, hardware, and operating system used to
        create those documents.  A PDF file can describe documents
        containing any combination of text, graphics, and images in a
        device-independent and {resolution} independent format.  These
        documents can be one page or thousands of pages, very simple
        or extremely complex with a rich use of {font}s, graphics,
        colour and images.

        ["The Portable Document Format Reference Manual", Adobe
        systems, Inc. Addison-Wesley Publ.  Co., ISBN: 0-201-62628-4].

        (1995-10-04)

Portable Forth Environment

        (PFE) A {Forth} development system by Dirk Zoller
        <duz@roxi.rz.fht-mannheim.de>.  PFE aims to be correct,
        complete, portable, usable and simple but it isn't optimised
        for speed.  Version 0.8.0 supports all {dpANS} word sets.  It
        runs on {Linux}, {RS/6000}, {HP-UX} and is highly portable.

        {(ftp://roxi.rz.fht-mannheim.de/pub/languages/forth/)}

        (1993-08-11)

Portable Network Graphics

        <file format> /ping/ (PNG) An extensible {file format} for the
        {lossless}, {portable}, well-compressed storage of {raster
        images}.  PNG provides a patent-free replacement for {GIF} and
        can also replace many common uses of {TIFF}.
        {Indexed-colour}, {greyscale} and {truecolour} images are
        supported, plus an optional {alpha channel}.  Sample depths
        range from 1 to 16 bits.

        PNG is designed for on-line viewing applications, such as the
        {World Wide Web}, so it is fully {streamable} with a
        {progressive display} option.  PNG is robust, providing both
        full file integrity checking and simple detection of common
        transmission errors.  Also, PNG can store {gamma correction}
        and {chromaticity} data for improved colour matching on
        heterogeneous {platforms}.

        {Filename extension}: .png.

        {RFC 2083}.  {W3C PNG pages
        (http://www.w3.org/Graphics/PNG/)}.  {PNG home page
        (http://www.wco.com/~png/)}.

        (1997-08-07)

Portable Operating System Interface

        <operating system, standard> (POSIX) A set of {IEEE} standards
        designed to provide {application} {portability} between {Unix}
        variants.  IEEE 1003.1 defines a Unix-like operating system
        interface, IEEE 1003.2 defines the {shell} and utilities and
        IEEE 1003.4 defines {real-time} extensions.

        ["More UNIX For Dummies", ISBN: 1-56884-361-5] says it stands
        for "Portable Operating System Interface with an X thrown in
        to make it sound cooler."

        (1997-12-04)

Portable Pixmap

        <file format> (PPM) A colour {image} {file format}.

        A PPM file contains the following:

         a two character "{magic number}" - "P3",
         the width in pixels,
         the height in pixels,
         the maximum colour component value,
         HEIGHT rows of WIDTH {pixels}.

        The rows are ordered from top to bottom with the pixels in
        each row ordered from left to right.  Each pixel is
        represented as three values for red, green, and blue.

        All parts are separated by {whitespace} and numbers are in
        decimal {ASCIII} representation.  A zero pixel component means
        that colour is absent.  Characters from a "#" to the next
        end-of-line are ignored and no line should be longer than 70
        characters.

        Here is an example of a small pixmap in this format:

         P3
         # feep.ppm
         4 4
         15
          0  0  0    0  0  0    0  0  0   15  0 15
          0  0  0    0 15  7    0  0  0    0  0  0
          0  0  0    0  0  0    0 15  7    0  0  0
         15  0 15    0  0  0    0  0  0    0  0  0

        A "RAWBITS" variant has magic number "P6", pixel values are
        stored as plain binary bytes, instead of ASCII decimal and no
        whitespace is allowed after a single whitespace character
        after the maximum colour component value which must be less
        than or equal to 255.

        (1998-02-06)

Portable Scheme Debugger

        (PSD) A package for source code debugging of {R4RS}-compliant
        {Scheme} under {GNU Emacs} by Kellom ?ki Pertti
        <pk@cs.tut.fi>.  Version 1.1.  Distributed under {GNU} {GPL}.
        It works with {scm}, {Elk} and {Scheme->C}.

        {(ftp://ftp.cs.tut.fi/pub/src/languages/schemes/psd.tar.Z)}

        (1992-10-08)

Portable Scheme Interpreter

        (PSI) A portable scheme interpreter by Ozan Yigit
        <oz@ursa.sis.yorku.ca>, David Keldsen and Pontus Hedman that
        includes a simple {DAG} compiler and a {virtual machine}.  It
        can be used as an integrated extension {interpreter} in other
        systems and allows easy addition of new primitives.  There are
        some unique debugging and tracing facilities.  Acceptable
        performance results from a fairly straight-forward
        implementation.  {Continuation}s are fully and portably
        supported and perform well.  PSI is based on the simple
        compilers and {virtual machine} in Kent Dbyvig's thesis.

        The pre-release version conforms to {R4RS} with a number of
        useful extensions.

        (1993-02-19)

Portable Standard Lisp

        (PSL) A dialect of {Lisp} from {Utah University}.  It is
        available as a kit for {68000} and also runs on {VAX}.  It
        compiles {Lisp} to {C}-code {virtual machine} language.

        ["The Portable Standard LISP Users Manual", TR-10, CS Dept, U
        Utah, Jan 1982].

        ["A Portable Lisp System", M.L. Griss et al, Proc 1982 ACM
        Symp on Lisp and Functional Prog, Aug 1982].

Port Address Translation

        <networking> (PAT) A function provided by some {routers} which
        allows {hosts} on a {LAN} to communicate with the rest of a
        network (such as the {Internet}) without revealing their own
        private {IP address}.  All outbound {packets} have their IP
        address translated to the routers external IP address.
        Replies come back to the router which then translates them
        back into the private IP address of the original host for
        final delivery.

        Compare {SOCKS}.

        (1998-05-08)

PORTAL

        Process-Oriented Real-Time Algorithmic Language.

        ["PORTAL - A Pascal-based Real-Time Programming Language",
        R. Schild in Algorithmic Languages, J.W. deBakker et al eds,
        N-H 1981].

porting

        Translating software to run on a different computer and/or
        {operating system}.

        (1995-01-06)

Port Language

        ["Communicating Parallel Processes", J. Kerridge et al, Soft
        Prac & Exp 16(1):63-86 (Jan 1986)].

portmapper

        <networking> A {server} that converts {TCP/IP} {protocol}
        {port} numbers into {RPC} program numbers.  It must be running
        in order to make RPC calls.

        When an RPC server starts, it tells portmap the port number it
        is listening on and what RPC program numbers it serves.
        Before a client can call a given RPC program number, it must
        contacts portmap on the server machine to determine the port
        number to which RPC packets should be sent.

        (1996-12-09)

POS

        {point of sale}

POSE

        <language A {query language} written in 1967.

        ["POSE: A Language for Posing Problems to Computers",
        S. Schlesinger et al, CACM 10:279-285, May 1967].

        (1996-12-09)

poset

        {partially ordered set}

POSIX

        {Portable Operating System Interface}

post

        <messaging> To send a message to a {mailing list} or
        {newsgroup}.  Usually implies that the message is sent
        indiscriminately to multiple users, in contrast to "mail"
        which implies one or more deliberately selected individual
        recipients.

        You should only post a message if you think it will be of
        interest to a significant proportion of the readers of the
        group or list, otherwise you should use private {electronic
        mail} instead.  See {netiquette}.

        (1997-12-04)

postcardware

        {Shareware} that borders on {freeware}, in that the author
        requests only that satisfied users send a postcard of their
        home town or something.  (This practice, silly as it might
        seem, serves to remind users that they are otherwise getting
        something for nothing, and may also be psychologically related
        to real estate "sales" in which $1 changes hands just to keep
        the transaction from being a gift.)

posted write-through

        A {cache} with a posted write-through policy (e.g. Intel 80386)
        delays the write-back to main memory until the bus is not in
        use.

Postel, Jon

        {Jon Postel}

postfix notation

        <language> (Or Reverse Polish Notation, RPN) One of the
        possible orderings of {functions} and {operands}: in postfix
        notation the functions are preceded by all their operands.
        For example, what may normally be written as "1+2" becomes "1
        2 +".  Postfix notation is well suited for {stack} based
        {architectures} but modern {compilers} reduced this advantage
        considerably.  The best-known language that with strictly
        postfix syntax is {FORTH}.

        Compare:  {infix notation}, {prefix notation}.

        (1997-01-17)

postfix syntax

        {postfix notation}

POSTGRES

        <database> An {active DBMS} developed at the {University of
        California at Berkeley} by a team led by Michael Stonebraker
        (1986-1994).  Postgres was later taken by {Illustra} and
        developed into a commercial product, which in turn was bought
        by {Informix} and integrated into their product, {Universal
        Server}.

        {PostgreSQL} is a further development of the original POSTGRES
        code as a {free software} alternative to commercial {DBMS}
        vendor offerings.

        [Details?  Reference?  Relationship to {Ingres}?]

        (1999-07-04)

PostgreSQL

        <database> /'post-gres-kyu-el/ An enhancement of the
        {POSTGRES} {database} system.

        PostgreSQL is an advanced {relational database management
        system} with some {object oriented} approaches.  PostgreSQL is
        developed and distributed as {free software}, and while
        retaining its freedom it remains technically and featurewise a
        worthy competitor to even the most advanced commercial
        alternatives.

        It was also one of the first databases to offer {MVCC} as
        opposed to {row-level locking} or {table locking}, thereby
        greatly improving multi-user performance.

        PostgreSQL implements an extended subset of {ANSI} {SQL} and
        runs on many {platforms}.  It also has {interfaces} to many
        different {programming languages} and database {protocols},
        like {ODBC} and {JDBC}.

        {Home (http://www.postgresql.org/)}.

        (1999-09-18)

posting

        A message sent to a {newsgroup} or {mailing list} (may also be
        called "a post") or the act of sending it.  Distinguished from
        a "letter" or ordinary {electronic mail} message by the fact
        that it is broadcast rather than point-to-point.  It is not
        clear whether messages sent to a small mailing list are
        postings or e-mail; perhaps the best dividing line is that if
        you don't know the names of all the potential recipients, it
        is a posting.

postmaster

        The {electronic mail} contact and maintenance person at a site
        connected to the {Internet} or {UUCPNET}.  Often, but not
        always, the same as the {admin}.  The Internet standard for
        electronic mail ({RFC} 822) requires each machine to have a
        "postmaster" address; usually it is aliased to this person.
        See also {webmaster}.

post office problem

        Given a set of points (in N dimensions), find another point
        which minimises the sum of the distances from that point to
        each of the others.

Post Office Protocol

        <messaging, protocol> (POP) A {protocol} designed to allow
        single user computers to retrieve {electronic mail} from a POP
        {server}.  The POP server might be a computer with a permanent
        {Internet} connection whereas its clients might only connect
        to it occasionally, e.g. by {modem}.

        There are (in 1994) three versions: POP, POP2, and {POP3}.
        Later versions are NOT compatible with earlier ones.

        [Details?]

        (1997-03-06)

post-order traversal

        <algorithm> An {algorithm} for exploring a tree structure
        which visits each {node} in the tree after visiting its
        children.

        The opposite is {pre-order traversal}.

        (1997-03-10)

POSTQUEL

        POSTGRES QUERy Language.  The language used by the {POSTGRES}
        {database} system.

        ["The Design of POSTGRES", M. Stonebraker et al, Proc ACM
        SIGMOD Conf, June 1986].

        {Version 4.0
        (ftp://postgres.berkeley.edu/pub/postgresv4r0.tar.Z)}.

PostScript

        <language, text, graphics> A {Page Description Language} based
        on work originally done by John Gaffney at Evans and
        Sutherland in 1976, evolving through "JaM" ("John and Martin",
        Martin Newell) at {XEROX PARC}, and finally implemented in its
        current form by John Warnock et al. after he and Chuck Geschke
        founded {Adobe Systems, Inc.} in 1982.

        PostScript is an interpreted, stack-based language (like
        {FORTH}).  It was used as a page description language by the
        {Apple LaserWriter}, and now many {laser printers} and
        on-screen graphics systems.  Its primary application is to
        describe the appearance of text, graphical shapes and sampled
        images on printed or displayed pages.

        A program in PostScript can communicate a document description
        from a composition system to a printing system in a
        device-independent way.

        PostScript is an unusually powerful printer language because
        it is a full programming language, rather than a series of
        low-level escape sequences.  (In this it parallels {Emacs},
        which exploited a similar insight about editing tasks).  It is
        also noteworthy for implementing on-the fly {rasterisation},
        from {Bezier curve} descriptions, of high-quality {font}s at
        low (e.g. 300 dpi) resolution (it was formerly believed that
        hand-tuned {bitmap font}s were required for this task).

        PostScript's combination of technical merits and widespread
        availability has made it the language of choice for graphical
        output.

        See also {PDF}.

        {An introduction
        (http://www.cs.indiana.edu/docproject/programming/postscript/postscript
.html)}.

        ["PostScript Language Reference Manual" ("The Red Book"),
        Adobe Systems, A-W 1985].

        (1997-02-23)

Post, Telephone and Telegraph administration

        <communications, company> (PTT) One of the many national
        bodies responsible for providing communications services in a
        particular country.  Traditionally, PTTs had monopolies in
        their respective countries.  This monopoly was first broken in
        the USA, with the UK joining somewhat later.  Currently the
        markets are being deregulated in Europe as well as other parts
        of the world.

        Well-known PTTs include {MCI}, {AT&T}, and {British Telecom}.

        Compare: {telco}.

        (1998-05-18)

POSYBL

        Programming system for distributed applications.  A {Linda}
        implementation for {Unix} networks by Ioannis Schoinas
        <sxoinas@csd.uch.gr>.

        {(ftp://ariadne.csi.forth.gr/pub/POSYBL.TAR.Z)}

        (1995-12-04)

potential difference

        {voltage}

POTS

        {Plain Old Telephone Service}

pound

        {hash}

pound on

        {bang on}

pound sign

        {hash}

POWER

        Performance Optimization with Enhanced RISC.  The {IBM}
        processor architecture on which {PowerPC} was based.

PowerBuilder

        <tool> A {graphical user interface} development tool from
        {Powersoft} for developing {client-server} {database}
        {application}s.  It runs under {MS-DOS}(?) and {Microsoft
        Windows}.  There are also versions for {Microsoft Windows},
        {Windows NT}, {Macintosh}, and {Unix}.

        Applications can be built by creating {windows}, controls
        (such as {listboxes} and {buttons}), and {menus} within the
        PowerBuilder development environment.  The language used to
        program PowerBuilder, {PowerScript}, is loosely based on
        {BASIC}.

        PowerBuilder supports programming on many database backends
        including {Sybase} and {Oracle}.  It also has added support
        for {ODBC} database drivers.  PowerBuilder also comes with a
        built-in database backend ({WATCOM} {SQL} 32-bit {relational
        database}).

        {Product information
        (http://www.powersoft.com/mktg/prodinfo/prodintr.html)}

        {FAQ (ftp://ftp.oar.net/pub/psoft/pb01.faq)}

        {PowerBuilder Interactive on-line magazine
        (http://pk.com/PowerBuilder/)}.

        {Usenet} newsgroup: {news:comp.soft-sys.powerbuilder}.

        [Correct list of platforms?]

        (1995-04-21)

power cycle

        (Or "cycle power", "cycle") To turn a machine's power off and
        on, with the intention of clearing some kind of {hung} or
        {gronk}ed state.  Synonym {120 reset}; see also {Big Red
        Switch}.  Compare {Vulcan nerve pinch}, {bounce} and {boot},
        and see the {AI Koan} about Tom Knight and the novice.

powerdomain

        <theory> The powerdomain of a {domain} D is a domain
        containing some of the {subsets} of D.  Due to the asymmetry
        condition in the definition of a {partial order} (and
        therefore of a domain) the powerdomain cannot contain all the
        subsets of D.  This is because there may be different sets X
        and Y such that X <= Y and Y <= X which, by the asymmetry
        condition would have to be considered equal.

        There are at least three possible orderings of the subsets of
        a powerdomain:

        Egli-Milner:

                X <= Y  iff  for all x in X, exists y in Y: x <= y
                        and  for all y in Y, exists x in X: x <= y

        ("The other domain always contains a related element").

        Hoare or Partial Correctness or Safety:

                X <= Y  iff  for all x in X, exists y in Y: x <= y

        ("The bigger domain always contains a bigger element").

        Smyth or Total Correctness or Liveness:

                X <= Y  iff  for all y in Y, exists x in X: x <= y

        ("The smaller domain always contains a smaller element").

        If a powerdomain represents the result of an {abstract
        interpretation} in which a bigger value is a safe
        approximation to a smaller value then the Hoare powerdomain is
        appropriate because the safe approximation Y to the
        powerdomain X contains a safe approximation to each point in
        X.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-02-03)

PowerFuL

        <language> A language combining {functional programming} and
        {logic programming}, using "angelic Powerdomains".

        (1998-06-30)

power hit

        (Or "power {glitch}") A sudden increase (spike) or decrease
        (drop-out) in the mains electricity supply.  These can cause
        crashes and even permanent damage to computers.  Computers and
        other electronic equipment should really include some kind of
        over-voltage protection in its mains input to prevent such
        damamge.

PowerMac

        {Power Macintosh}

Power Macintosh

        <computer> {Apple Computer}'s {personal computer} based on the
        {PowerPC}, introduced on 1994-03-14.  Existing {680x0} code
        (both applications and device drivers) run on Power Macintosh
        systems without modification via a {Motorola 68LC040}
        {emulator}.  The performance of these unmodified applications
        is equivalent to a fast {68040}-based Macintosh, e.g. a fast
        {Macintosh Quadra}.  The Power Macintosh runs {Macintosh
        operating system} from {System 7.5} to {Mac OS} 8.5.

        {Home (http://www.info.apple.com/ppc/ppchome.html)}.

        (1999-01-08)

PowerOpen

        The {PowerOpen Association} defines and promotes the
        {PowerOpen Environment} (POE).

PowerOpen Association

        An independent body established to promote, and test
        conformance with, the {PowerOpen Environment} (POE).

        (1994-11-08)

PowerOpen Environment

        <operating system> (POE) A definition containing {API} and
        {ABI} specifications based on the {PowerPC} architecture.  It
        is not an {operating system}.  The presence of the ABI
        specification in the POE distinguishes it from other open
        systems (POSIX, XPG4, etc.)  since it allows {platform}
        independent binary compatibility which is otherwise typically
        limited to particular hardware.

        The POE is an {open standard}, derived from {AIX} and
        conforming to industry open standards including {POSIX},
        {XPG4} and {Motif}.  The POE specification will be publicly
        available to anyone wishing to produce either {application
        program}s or hardware {platform}s.  The {PowerOpen
        Association} will provide the necessary {conformance test}ing
        and POE branding.

        The POE is hardware {bus} independent.  System implementations
        can range from {laptop computers} to {supercomputers}.  It
        requires a multi-user, {multitasking} {operating system}.  It
        provides networking support, an {X Window System} extension, a
        {Macintosh} Application Services extension and {Motif}.  It is
        {conformance test}ed and certified by an independent party
        (the {PowerOpen Association}).

        The POE specification is targeted for availability in the
        first quarter of 1994.  The {PowerOpen Association} will soon
        have some of the information material available on-line.

        (1994-11-08)

PowerPC

        <processor, standard> (PPC) A {RISC} {microprocessor} designed
        to meet a {standard} which was jointly designed by {Motorola},
        {IBM}, and {Apple Computer} (the PowerPC Alliance).  The
        PowerPC standard specifies a common {instruction set
        architecture} (ISA), allowing anyone to design and fabricate
        PowerPC processors, which will run the same code.  The PowerPC
        architecture is based on the IBM {POWER} architecture, used in
        IBM's {RS/6000} {workstation}s.  Currently {IBM} and
        {Motorola} are working on PowerPC chips.

        The PowerPC standard specifies both 32-bit and 64-bit data
        paths.  Early implementations will be 32 bit; future
        higher-performance implementations will be 64 bit
        (e.g. {PowerPC 601}).  A PowerPC has 32 integer {registers}
        (32- or 64 bit) and 32 {floating-point} (IEEE standard 64 bit)
        {floating-point} registers.

        The POWER CPU chip and PowerPC have a (large) common core, but
        both have instructions that the other doesn't.  The PowerPC
        offers the following features that POWER does not:

        Support for running in {little-endian} mode.

        Addition of single precision {floating-point} operations.

        Control of branch prediction direction.

        A hardware coherency model (not in Book I).

        Some other {floating-point} instructions (some optional).

        The real time clock (upper and lower) was replaced with the
        time base registers (upper and lower), which don't count in
        sec/ns (the decrementer also changed).

        64-bit instruction operands, registers, etc. (in 64 bit
        processors).

        See also {PowerOpen}, {PowerPC Platform} (PReP).

        {IBM PPC info
        (http://fnctsrv0.chips.ibm.com/products/ppc/index.html)}.

        {(gopher://info.hed.apple.com/)}, "Apple Corporate News/"
        (press releases), "Apple Technologies/" and "Product
        Information/".  {(gopher://ike.engr.washington.edu/)}, "IBM
        General News/", "IBM Product Announcements/", "IBM Detailed
        Product Announcements/", "IBM Hardware Catalog/".

        {Usenet} newsgroups: {news:comp.sys.powerpc},
        {news:comp.sys.mac.hardware}.

        ["Microprocessor Report", 16 October 1991].

        (1994-09-30)

PowerPC 601

        A 64-bit {RISC} processor with 2.8 million transistors (~1.2
        million in the core logic) and a 32 kilobyte on-chip {cache}.
        Die size 118.8 mm2.  Heat dissipation at 66MHz: 9W.
        Performance at 66MHz: integer >60 {SPECint92},
        {floating-point} >80 {SPECfp92}.  Estimated manufacturing
        cost: $76.  Maximum instructions per cycle: 3.  32 32 bit
        general-purpose registers.  32 64-bit {floating-point}
        registers.  Successors: PowerPC 603,604,620.

        (1994-11-08)

PowerPC G3

        <processor> A {processor} chip from {Apple Computer, Inc.}.

        Described by Apple as "the third generation in the development
        of advanced processor technology" the first PowerPC G3
        products were launched in 1997.  It is specifically optimised
        for the {Macintosh Operating System} and uses {backside cache}
        to improve performance.  The PowerPC G3 has been used by Apple
        in {notebook}, {desktop} and {server} products.

        {Home (http://www.apple.com/powermac/technologies/g3.html)}.

        (1998-10-03)

PowerPC Platform

        <architecture, standard> (PPCP, PReP - PowerPC Reference
        Platform, formerly CHRP - Common Hardware Reference Platform)
        An open system standard, designed by {IBM}, intended to ensure
        compatibility among {PowerPC}-based systems built by different
        companies.  The PReP standard specifies the {PCI} bus, but
        will also support {ISA}, {MicroChannel} and {PCMCIA}.

        PReP-compliant systems will be able to run the {Macintosh} OS,
        {OS/2}, {WorkplaceOS}, {AIX}, {Solaris}, {Taligent} and
        {Windows NT}.  IBM systems will (of course) be PReP-compliant.
        Apple's first {PowerPC} {Macintosh}es will not be compliant,
        but future ones may be.

        {IBM info
        (http://fnctsrv0.chips.ibm.com/products/ppc/L3ppcp.html)}.

        {(http://billboard.emedia.com.au/chipster/computers/CHRP/whatsCHRP.html
)}.

        [Current OS statuses?]

        (1997-03-23)

PowerPC Reference Platform

        {PowerPC Platform}

Powerpoint

        <graphics, tool> A {Microsoft} application for creating
        presentations, speeches, slides, etc.

        (1996-08-26)

power save mode

        <architecture> A feature of a component or subsystem designed
        to actively reduce its power consumption when not in use.
        Almost any electronic device might benefit from having a power
        save mode but the most common application is for portable
        computers which attempt to conserve battery life by
        incorporating power saving modes in the {CPU}, display, disks,
        printer, or other units.

        (1995-10-14)

powerset

        <mathematics> The powerset of a set S is the set of possible
        subsets of S, usually written PS.

        (1994-11-08)

Powersoft Corporation

        <company> A leading vendor of {client/server} application
        development tools.

        In February 1994, {Watcom} became a wholly-owned subsidiary of
        Powersoft Corporation which merged with {Sybase} on 13
        February 1995.  In April 1995, the new company is the fastest
        growing top-ten software company and the seventh largest
        software company in the world.

        {Home (http://www.powersoft.com/)}

        Headquarters: Concord, Massachusetts, USA.

        (1995-12-27)

PP96

        <language> A parallel {Pascal} extension.

        [Details?  Any relation to {Parallel Pascal}?]

        (1998-04-29)

PPC

        {PowerPC}

PPCP

        {PowerPC Platform}

PPD

        {Parallel Presence Detect}

PPGA

        {Packet in Plastic Grid Array}

PPL

        Polymorphic Programming Language.  An interactive, extensible
        language, based on {APL}, from {Harvard University}.

        ["Some Features of PPL - A Polymorphic Programming Language",
        T.A. Standish, SIGPLAN Notices 4(8) (Aug 1969)].

        (1994-10-06)

PPLambda

        <language> essentially the {first-order predicate calculus}
        superposed upon the {simply-typed} {polymorphic
        lambda-calculus}.  PPLambda is the {object language} for
        {LCF}.

        ["Logic and Computation: Interactive Proof with Cambridge
        LCF", L. Paulson, Cambridge U Press, 1987].

        (1995-05-01)

PPM

        {Portable Pixmap}

PPN

        Project-Programmer Number.

        A user-ID under {TOPS-10} and its various mutant progeny at
        {SAIL}, {BBN}, {CompuServe} and elsewhere.  Old-time hackers
        from the {PDP-10} era sometimes use this to refer to user IDs
        on other systems as well.

        (1994-11-18)

PPP

        {Point-to-Point Protocol}

P-Prolog

        <language> A parallel {logic language}.

        ["P-Prolog: A Parallel Logic Language Based on Exclusive
        Relation", R. Yang et al, Third Intl Conf on Logic Prog, 1986,
        pp. 255-269].

        (1994-11-18)

PPTP

        {Point-to-Point Tunneling Protocol}

PQS

        {Picture Quality Scale}

PR

        {Packet Radio}

pr

        <networking> The {country code} for Puerto Rico.

        (1999-01-27)

pr0n

        {pron}

PRA

        PRAgmatics.

        The language used by {COPS} for specification of {code
        generator}s.

        ["Metalanguages of the Compiler Production System COPS", J.
        Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
        W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

        (1994-11-18)

pragma

        (pragmatic information) A standardised form of {comment} which
        has meaning to a {compiler}.  It may use a special {syntax} or
        a specific form within the normal comment syntax.  A pragma
        usually conveys non-essential information, often intended to
        help the compiler to optimise the program.

        (1994-11-08)

PRAM

        <hardware> 1. {parallel random access machine}.

        2. {parameter RAM}.

pre\box

        <computer> {Phase 5}'s Amiga clone, announced on 1998-03-10.
        The pre\box will have a processor card with four {PowerPC}
        processors running in parallel.  The processors will range
        from four 200 MHz {PPC604e} chips to four 300MHz {PPC750}
        chips.  It will have a {Voodoo2} {video graphics card}, as
        well as a custom video chip working in concert, with 8 MB of
        {video ram}.  It will run {Amiga OS} 3.1 (or higher if
        {Gateway 2000} delivers the next upgrade before its release)
        and have {Motorola 68000} {CPU} {emulation} in software.

        Other features include {EIDE}, {Ultra Wide SCSI-II}, {PCI},
        {Ethernet} and {DIMM} sockets.  Extra RAM, hard disks and
        {CD-ROM} will be available.  The initial specification will
        probably be 32MB RAM, 32-speed CD and 4GB hard disk in an {ATX
        minitower}.  Systems should start at about $2000 for four
        parallel 200 MHZ CPUs and be available at the end of 1998.

        {Full press release
        (http://www.cucug.org/amiga/aminews/1998/980310-phase5.html)}.

        (1998-07-29)

PRE-CC

        PREttier Compiler-Compiler.

        An earlier version of {PRECCX}.

        (1995-01-24)

PRECCX

        Pre-C-Compiler eXtended.

        {(ftp://ftp.comlab.ox.ac.uk/Programs)}

        An infinite-{lookahead} {compiler-compiler} by Peter Breuer
        <ptb@comlab.ox.ac.uk> for {context dependent grammar}s.  It
        generates {ANSI C}.  Specification scripts are in very {EBNF}
        with {inherited attribute}s and {synthetic attribute}s
        allowed.  Scripts can be compiled in separate {module}s and
        linked together later.  {Meta-production rule}s are
        allowed. The technology is essentially LL(oo) with
        optimisations.  A converter for {yacc} scripts is available.

        Versions 1.xx were known as "PRECC" and only had unbounded
        lookahead.  The 2.xx series added the "X" for "extended" and
        featured higher order parameterisation (inherited attributes).

        Version 2.42 finally achieved full integration between
        inherited and synthesized attributes by abandoning the
        {yacc}-style attribute stack and using a "monadic" model for
        parsing.  You can now synthsize attributes during the pass and
        inherit them in the remainder, e.g.

                @ foo = bar\x gum(x)

        synthesises an x in bar and passes it down into gum as a
        parameter.  Useful for @ what = ?\x did_you_say(x), for
        example.  It now compiles into {C} instead of running an
        {interpreter} at parse-time.

        Version 2.42 runs under {Unix} and {MS-DOS}.

        {Home (http://www.comlab.ox.ac.uk/archive/redo/precc.html)}

        {(ftp://ftp.comlab.ox.ac.uk/pub/Programs/)}

        E-mail: Peter Breuer <ptb@comlab.ox.ac.uk>, Jonathan Bowen
        <bowen@comlab.ox.ac.uk>.

        ["The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen.
        In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint
        New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8
        January 1993, ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6
        (SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford,
        Herts SG9 9PL, UK, pp 167-182, 1993].

        (1995-01-24)

precedence lossage

        /pre's*-dens los'*j/ A {C} coding error in an expression due
        to unintended grouping of arithmetic or logical operators.
        Used especially of certain common coding errors in {C} due to
        the nonintuitively low precedence levels of "&", "|", "^",
        "<<" and ">>".  For example, the following C expression,
        intended to test the least significant bit of x,

                x & 1 == 0

        is parsed as

                x & (1 == 0)

        which the compiler would probably evaluate at compile-time to

                (x & 0)

        and then to 0.

        Precedence lossage can always be avoided by suitable use of
        parentheses.  For this reason, some {C} programmers
        deliberately ignore the language's precedence hierarchy and
        parenthesise defensively.  {Lisp} fans enjoy pointing out that
        this can't happen in *their* favourite language, which eschews
        precedence entirely, requiring one to use explicit parentheses
        everywhere.

        Other sources of {bug}s include {aliasing bug}, {memory leak},
        {memory smash}, {smash the stack}, {fandango on core},
        {overrun screw}.

        (1994-12-16)

precharge

        <storage> The phase in the access cycle of {DRAM} during which
        the storage capacitors are charged to the appropriate value.

        (1997-02-23)

precision

        <mathematics> The number of decimal places to which a number
        is computed.

        Compare {accuracy}.

        (1998-04-19)

predecessor

        {parent}

predicate calculus

        <logic> A notation for representing logical statements which
        goes beyond {propositional calculus}.

        Where a statement (logic) is concerned only with direct
        relationship it is usually called a {propositional logic}.
        The simplest of these is known as classical or {Boolean}
        propositional logic, in which it is assumed that all
        declarations have a definite truth value; a declaration is
        either true or it is false.

        Where a statement (logic) is concerned not only with direct
        relationship but also with the internal structure of the
        declaration, it is usually called a predicate logic.

        {Predicate Logic
        (http://www.rbjones.com/rbjpub/logic/log019.htm)}.

        [Better explanation?  Distinguish predicate from propositional
        and logic from calculus?  Examples?]

        (1998-01-25)

predomain

        <theory> A {domain} with no {bottom} element.

        (1995-05-04)

pre-emptive multitasking

        <operating system, parallel> A type of {multitasking} where
        the {scheduler} can interrupt and suspend ("swap out") the
        currently running task in order to start or continue running
        ("swap in") another task.  The tasks under pre-emptive
        multitasking can be written as though they were the only task
        and the {scheduler} decides when to swap them.  The scheduler
        must ensure that when swapping tasks, sufficient state is
        saved and restored that tasks do not interfere.

        The length of time for which a process runs is known as its
        "{time slice}" and may depend on the task's priority or its
        use of resources such as memory and I/O.

        {OS/2}, {Unix} and the {Amiga} use pre-emptive multitasking.

        This contrasts with {cooperative multitasking} where each task
        must include calls to allow it to be {deschedule}d
        periodically.

        (1995-03-20)

prefetch

        {instruction prefetch}

prefix

        1. <unit> The standard metric prefixes used in the SI
        (Syst`eme International) conventions for scientific
        measurement.  With units of time or things that come in powers
        of 10, such as money, they retain their usual meanings of
        multiplication by powers of 1000 = 10^3.  When used with bytes
        or other things that naturally come in powers of 2, they
        usually denote multiplication by powers of 1024 = 2^(10).

        Here are the SI magnifying prefixes, along with the
        corresponding binary interpretations in common use:

         prefix abr decimal  binary

         yocto-     1000^-8
         zepto-     1000^-7
         atto-      1000^-6
         femto-  f  1000^-5
         pico-   p  1000^-4
         nano-   n  1000^-3
         micro-  *  1000^-2          * Abbreviation: Greek mu
         milli-  m  1000^-1

         kilo-   k  1000^1 1024^1 = 2^10 = 1,024
         mega-   M  1000^2 1024^2 = 2^20 = 1,048,576
         giga-   G  1000^3 1024^3 = 2^30 = 1,073,741,824
         tera-   T  1000^4 1024^4 = 2^40 = 1,099,511,627,776
         peta-      1000^5 1024^5 = 2^50 = 1,125,899,906,842,624
         exa-       1000^6 1024^6 = 2^60 = 1,152,921,504,606,846,976
         zetta-     1000^7 1024^7 = 2^70 = 1,180,591,620,717,411,303,424
         yotta-     1000^8 1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176

        The prefixes zetta-, yotta-, zepto-, and yocto- have been
        included in these tables purely for completeness and giggle
        value; they were adopted in 1990 by the "19th Conference
        Generale des Poids et Mesures".  The binary peta- and exa-
        loadings, though well established, are not in jargon use
        either - yet.  The prefix milli-, denoting multiplication by
        1000^(-1), has always been rare in jargon (there is, however,
        a standard joke about the "millihelen" - notionally, the
        amount of beauty required to launch one ship).  "Femto" and
        "atto" (which, interestingly, derive not from Greek but from
        Danish) have not yet acquired jargon loadings, though it is
        easy to predict what those will be once computing technology
        enters the required realms of magnitude (however, see
        {attoparsec}).

        The abbreviated forms of these prefixes are common in
        electronics and physics.  k, M and G are also common in
        computing where they stand for powers of two more often than
        powers of ten.  Thus "MB" stands for megabytes (2^20 bytes).
        In speach, the unit is often dropped so one may talk of "a 40K
        salary" (40000 dollars) or "2M of disk space" (2*2^20 bytes).

        The accepted pronunciation of the initial G of "giga-" was
        once soft, /ji'ga/ (like "gigantic"), but now the hard
        pronunciation, /gi'ga/, is probably more common.

        Note that the formal SI metric prefix for 1000 is lower case
        "k"; some, including this dictionary, use this strictly,
        reserving "K" for multiplication by 1024 (KB is thus
        "kilobytes").

        Confusing 1000 and 1024 (or other powers of 2 and 10 close in
        magnitude) - for example, describing a memory in units of 500K
        or 524K instead of 512K - is a sure sign of the {marketroid}.
        One example of this: it is common to refer to the capacity of
        3.5" {microfloppies} as "1.44 MB" In fact, this is a
        completely {bogus} number.  The correct size is 1440 KB, that
        is, 1440 * 1024 = 1474560 bytes.  So the "mega" in "1.44 MB"
        is compounded of two "kilos", one of which is 1024 and the
        other of which is 1000.  The correct number of megabytes would
        of course be 1440 / 1024 = 1.40625.  Alas, this fine point is
        probably lost on the world forever.

        In 1993, hacker Morgan Burke proposed, to general approval on
        {Usenet}, the following additional prefixes: groucho (10^-30),
        harpo (10^-27), harpi (10^27), grouchi (10^30).  This would
        leave the prefixes zeppo-, gummo-, and chico- available for
        future expansion.  Sadly, there is little immediate prospect
        that Mr. Burke's eminently sensible proposal will be ratified.

        2. <language> Related to the {prefix notation}.

        (1998-05-09)

prefix notation

        <language> One of the possible orderings of {functions} and
        {operands}: in prefix notation the function precedes all its
        operands.  For example, what may normally be written as "1+2"
        becomes "(+ 1 2)".  A few languages (e.g., {lisp}) have
        strictly prefix syntax, many more employ prefix notation in
        combination with {infix notation}.

        Compare: {postfix notation}.

        (1997-01-17)

prefix syntax

        {prefix syntax}

pre-order

        1. See {pre-order traversal}.

        2. A {relation} R is a pre-order if it is {reflexive} (x R x)
        and {transitive} (x R y R z => x R z).  If it is also
        {antisymmetric} (x R y R x => x = y) then it is a {partial
        ordering}.

pre-order traversal

        A pre-order traversal of a tree visits each node in the tree
        before visiting its children.  The opposite is {post-order
        traversal}.

PREP

        1. (PReP) {PowerPC Reference Platform}.

        2. (PREP) PRogrammed Electronics Patterns.  Language for
        designing {integrated circuit}s.  ["Computer Assisted Mask
        Production", R.L. Rosenfeld, Proc IEEE 57(9) Sep 1969].

prepaging

        <architecture> (Or "working set model") A technique whereby
        the {operating system} in a {paging} {virtual memory}
        {multitasking} environment loads all pages of a process's
        {working set} into memory before the process is restarted.

        Under {demand paging} a process accesses its working set by
        {page faults} every time it is restarted.  Under prepaging the
        system remembers the pages in each process's working set and
        loads them into physical memory before restarting the process.
        Prepaging reduces the {page fault} rate of reloaded processes
        and hence generally improves CPU efficiency.

        ["Modern Operating Systems", Andrew S. Tanenbaum,
        pub. Prentice Hall, Inc.  1992].

        (1998-04-23)

prepend

        <jargon> /pree'pend'/ (by analogy with "append") To prefix or
        add to the beginning.

        (1998-04-23)

preprocessor

        A program invoked by various {compiler}s to process code
        before compilation.  For example, the {C} preprocessor, {cpp},
        handles textual {macro} substitution, {conditional
        compilation} and inclusion of other files.  A preprocessor may
        be used to transform a program into a simpler language, e.g. to
        transform {C++} into {C}.

        (1994-11-09)

presence detect

        <storage> A means of identifying a memory chip to the memory
        controller logic.  The original scheme, called Parallel
        Presence Detect (PPD) used a separate pin for each bit of
        information.  As the number of pins can not be very large this
        only allowed to identify the density and the speed of the
        chips.  To allow for additional information the Serial
        Presence Detect (SPD) scheme was introduced which uses a
        serial EEPROM to store the presence detect information and
        requires only two pins (one for enabling it and one for data).

        (1998-03-07)

presentation layer

        <networking> The second highest layer (layer 6) in the {OSI}
        seven layer model.  Performs functions such as text
        {compression}, code or format conversion to try to smooth out
        differences between {hosts}.  Allows incompatible processes in
        the {application layer} to communicate via the {session
        layer}.

        Documents: {ITU} Rec. X.226 ({ISO} 8823), ITU Rec. X.216 (ISO
        8822).

        (1996-07-20)

Presentation Manager

        The {elephantine} graphical user interface to the {OS/2}
        {operating system}.

prestidigitization

        /pres`t*-di"j*-ti:-zay"sh*n/ 1. A term coined by Daniel Klein
        <dvk@lonewolf.com> for the act of putting something into
        digital notation via sleight of hand.

        ["Open Channel", IEEE "Computer", November 1981].

        2. Data entry through legerdemain.

        (1994-11-01)

PRESTO

        A parallel language for shared-memory multiprocessors, built
        on top of C++ by Bershad et al, U Washington 1987.  PRESTO
        provides {class}es for {thread}s and {spinlock}s as well as
        {Mesa}-style {monitor}s and {condition variable}s.

        {(ftp://cs.washington.edu/pub/presto1.0.tar.Z)}.  E-mail:
        <presto@cs.washington.edu>.

        ["PRESTO: A Kernel for Parallel Programming Environments",
        B.N. Bershad et al, U Wash CS TR, Jan 1987].

Pretty Amazing New Stuff

        <humour, communications> (PANS) What {PSTN} is evolving into.

        (1996-10-16)

Pretty Good Privacy

        <tool, cryptography> (PGP) A high security {RSA} {public-key
        encryption} application for {MS-DOS}, {Unix}, {VAX/VMS}, and
        other computers.  It was written by {Philip R. Zimmermann}
        <pkz@acm.org> of Phil's Pretty Good(tm) Software and later
        augmented by a cast of thousands, especially including Hal
        Finney, Branko Lankester, and Peter Gutmann.

        PGP was distributed as "{guerrilla freeware}".  The authors
        don't mind if it is distributed widely, just don't ask Philip
        Zimmermann to send you a copy.  PGP uses a {public-key
        encryption} {algorithm} claimed by US patent #4,405,829.  The
        exclusive rights to this patent are held by a California
        company called {Public Key Partners}, and you may be
        infringing this patent if you use PGP in the USA.  This is
        explained in the PGP User's Guide, Volume II.

        PGP allows people to exchange files or messages with {privacy}
        and {authentication}.  Privacy and authentication are provided
        without managing the keys associated with conventional
        cryptographic software.  No secure channels are needed to
        exchange keys between users, which makes PGP much easier to
        use.  This is because PGP is based on {public-key
        cryptography}.

        PGP encrypts data using the {International Data Encryption
        Algorithm} with a random {session key}, and uses the {RSA}
        algorithm to encrypt the session key.

        In December 1994 Philip Zimmermann faced prosecution for
        "exporting" PGP out of the United States but in January 1996
        the US Goverment dropped the case.  A US law prohibits the
        export of {encryption} software out of the country.
        Zimmermann did not do this, but the US government hoped to
        establish the proposition that posting an encryption program
        on a {BBS} or on the {Internet} constitutes exporting it - in
        effect, stretching export control into domestic censorship.
        If the government had won it would have had a chilling effect
        on the free flow of information on the global network, as well
        as on everyone's privacy from government snooping.

        {FAQ (ftp://ftp.netcom.com/pub/mp/mpj/getpgp.asc)}.  {UK FTP
        v2.3 (ftp://src.doc.ic.ac.uk:/packages/pgp/)}.  {USA FTP
        latest version (http://web.mit.edu/network/pgp-form.html)}.
        {(http://www.pegasus.esprit.ec.org/people/arne/pgp.html)}.

        {Justice Dept. announcement
        (http://www.eff.org/pub/Alerts/usatty_pgp_011196.announce)}.

        ["Protect Your Privacy: A Guide for PGP Users", William
        Stallings, Prentice-Hall, ISBN 0-13-185596-4].

        (1996-04-07)

pretty pictures

        (scientific computation) The next step up from {numbers}.
        Interesting graphical output from a program that may not have
        any sensible relationship to the system the program is
        intended to model, but good for showing to {management}.

        (1995-02-15)

prettyprint

        /prit'ee-print/ (Or "pretty-print") To generate "pretty"
        human-readable output from a {hairy} internal representation;
        especially used for the process of {grind}ing program code.

        (1995-02-15)

pretzel key

        The {Macintosh} {feature key}.

        (1995-02-15)

preventive maintenance

        (PM) To bring down a machine for inspection or test purposes.

        See {provocative maintenance}, {scratch monkey}.

        (1995-02-15)

PRI

        {ISDN} {Primary Rate Interface}.

        See also {BRI}

        (1994-12-08)

primary cache

        <hardware, architecture> (L1 cache, level one cache) A small,
        fast {cache} memory inside or close to the {CPU} chip.

        For example, an {Intel 80486} has an eight-{kilobyte} on-chip
        cache, and most {Pentiums} have a 16-KB on-chip level one
        cache that consists of an 8-KB {instruction cache} and an 8-KB
        {data cache}.

        The larger, slower secondary cache is normally connected to
        the CPU via its external {bus}.

        (1997-06-25)

primary key

        <database> The {candidate key} selected as being most
        important for identifying a body of information (an entity,
        object or {record}).

        (1997-04-26)

Primary Rate Interface

        (PRI) A type of {ISDN} connection.  In North America and
        Japan, this consists of 24 channels, usually divided into 23 B
        channels and 1 D channel, and runs over the same physical
        interface as {T1}.  Elsewhere the PRI has 31 user channels,
        usually divided into 30 B channels and 1 D channel and is
        based on the {E1} interface.

        PRI is typically used for connections such as one between a
        PBX (private branch exchange, a telephone exchange operated by
        the customer of a telephone company) and a CO (central office,
        of the telephone company) or IXC (inter exchange carrier, a
        long distance telephone company).

        (1995-01-18)

Prime Computer

        <company> (Or "Pr1ME") A {minicomputer} manufacturer.

        [Dates?  Status?  Products?  Addresses?]

        (1996-09-28)

Primenet, Inc.

        Arizona's {Internet provider}.

        (1994-12-08)

prime number theorem

        <mathematics> The number of {prime number}s less than x is
        about x/log(x).  Here "is about" means that the ratio of the
        two things tends to 1 as x tends to infinity.  This was first
        conjectured by {Gauss} in the early 19th century, and was
        proved (independently) by Hadamard and de la Vall'ee Poussin
        in 1896.  Their proofs relied on {complex analysis}, but Erds
        and Selberg later found an "elementary" proof.

        (1995-04-10)

prime time

        (From TV programming) Normal high-usage hours on a
        {time-sharing} system; the day shift.  Avoidance of prime time
        was traditionally given as a major reason for {night mode}
        hacking.  The rise of the personal workstation has rendered
        this term, along with {time-sharing} itself, almost obsolete.
        The hackish tendency to late-night {hacking run}s has changed
        not a bit.

        (1995-01-18)

primitive

        <programming> A {function}, {operator}, or {type} which is
        built into a programming language (or {operating system}),
        either for speed of execution or because it would be
        impossible to write it in the language.  Primitives typically
        include the arithmetic and logical operations (plus, minus,
        and, or, etc.) and are implemented by a small number of
        {machine language} instructions.

        (1995-05-01)

Princeton University

        <body, education> Chartered in 1746 as the College of New
        Jersey, Princeton was British North America's fourth college.
        First located in Elizabeth, then in Newark, the College moved
        to Princeton in 1756.  The College was housed in Nassau Hall,
        newly built on land donated by Nathaniel and Rebeckah
        FitzRandolph.  Nassau Hall contained the entire College for
        nearly half a century.  The College was officially renamed
        Princeton University in 1896; five years later in 1900 the
        Graduate School was established.

        Fully coeducational since 1969, Princeton now enrolls
        approximately 6,400 students (4,535 undergraduates and 1,866
        graduate students).  The ratio of full-time students to
        faculty members (in full-time equivalents) is eight to one.

        Today Princeton's main campus in Princeton Borough and
        Princeton Township consists of more than 5.5 million square
        feet of space in 160 buildings on 600 acres.  The University's
        James Forrestal Campus in Plainsboro consists of one million
        square feet of space in four complexes on 340 acres.

        As Mercer County's largest private employer and one of the
        largest in the Mercer/Middlesex/Somerset County region, with
        approximately 4,830 permanent employees - including more than
        1,000 faculty members - the University plays a major role in
        the educational, cultural, and economic life of the region.

        {(http://www.princeton.edu/index.html)}

        (1994-01-19)

principal type

        The most general {type} of an expression.  For example, the
        following are all valid types for the {lambda abstraction}
        (\ x . x):

                Int -> Int
                Bool -> Bool
                (a->b) -> (a->b)

        but any valid type will be an instance of the principal type:
        a -> a.  An instance is derived by substituting the same type
        expression for all occurences of some {type variable}.  The
        principal type of an expression can be computed from those of
        its subexpressions by Robinson's {unification} {algorithm}.

        (1994-12-16)

PRINT

        <language> PRe-edited INTerpreter.

        An early mathematics language for the {IBM 705}.

        [Sammet 1969, p. 134].

        (1995-05-01)

printed circuit board

        <hardware> (PCB) A thin board to which electronic components
        are fixed by solder.  Component leads and {integrated circuit}
        pins may pass through holes ("vias") in the board or they may
        be {surface mounted}, in which case no holes are required
        (though they may still be used to connect different layers).

        The simplest kind of PCB has components and wires on one side
        and interconnections (the printed circuit) on the other.  PCBs
        may have components mounted on both sides and may have many
        internal layers, allowing more connections to fit in the same
        board area.  Boards with internal conductor layers usually
        have "plated-through holes" to improve the electrical
        connection to the internal layers.

        The connections are metal strips (usually copper).  The
        pattern of connections is often produced using photo-resist
        and acid etching.  Boards, especially those for high frequency
        circuits such as modern {microprocessor}s, usually have one or
        more "{ground plane}s" and "power planes" which are large
        areas of copper for greater current carrying ability.

        A computer or other electronic system might be built from
        several PCBs, e.g. processor, memory, graphics controller, disk
        controller etc.  These boards might all plug into a
        {motherboard} or {backplane} or be connected by a {ribbon
        cable}.

        (1995-05-01)

printer

        <printer> A {peripheral} device for producing text and images
        on paper.  There are many different types, broadly grouped
        into "{impact printers}" and "{non-impact printers}".

        Compare {plotter}.  See also {Braille printer}, {tree-killer}.

        (1996-01-13)

Printer Access Protocol

        <networking, protocol, printer> (PAP) A {protocol} used in
        {Mac OS} {Appletalk} to provide bi-directional communication
        between {PostScript} printers and the client computer.

        (1999-03-02)

printer port

        <hardware, printer> A connector found on many {microcomputers}
        intended for attaching a printer.  This may be a
        general-purpose input/output {parallel port} or may be a
        special {Centronics} interface.

        Most printers can also be connected to a {serial port} but
        that is unlikely to be described as a "printer port".

        (1996-01-07)

printf

        <library> The standard function in the {C} programming
        language library for printing formatted output.

        The first argument is a format string which may contain
        ordinary characters which are just printed and "conversion
        specifications" - sequences beginning with '%' such as %6d
        which describe how the other arguments should be printed, in
        this case as a six-character decimal integer padded on the
        right with spaces.

        Possible conversion specifications are d, i or u (decimal
        integer), o ({octal}), x, X or p ({hexadecimal}), f
        ({floating-point}), e or E ({mantissa} and {exponent},
        e.g. 1.23E-22), g or G (f or e format as appropriate to the
        value printed), c (a single character), s (a string), %
        (i.e. %% - print a % character).  d, i, f, e, g are signed,
        the rest are unsigned.

        The variant {fprintf} prints to a given output stream and
        sprintf stores what would be printed in a string variable.

        {Unix manual page}: printf(3).

        (1996-12-08)

PRINT I

        An early system on {IBM 705}.

        [CACM 2(5):16 (May 1959)].

printing discussion

        [XEROX PARC] A protracted, low-level, time-consuming,
        generally pointless discussion of something
        only peripherally interesting to all.

print server

        <printer> A {server} device that is set up on a {network} to
        route print requests and status information between computers
        and {printers} connected by a network.  A typical print server
        routes print requests for multiple computers and printers on a
        network.

        For example, a networked {workstation} user submits a print
        command that includes a {print file} and information about the
        printer to be used, usually a nearby printer for convenience.
        The print server sends the print file to the requested
        printer.  The printer {spools} the print file and provides job
        status.  The print server relays the status of the printer
        back to the workstation and makes this status information
        available to other devices on the network.

        (1999-02-18)

Print Services Facility

        <printer> (PSF) {IBM}'s system software which generates
        {native} IBM printer language, {IPDS} and, depending on the
        version, {PostScript} and LaserJet {PCL}.

        See also: {Advanced Function Presentation}.

        (1998-06-28)

priority interrupt

        [hardware] Describes any stimulus compelling enough to yank
        one right out of {hack mode}.  Classically used to describe
        being dragged away by an {SO} for immediate sex, but may also
        refer to more mundane interruptions such as a fire alarm going
        off in the near vicinity.  Also called an {NMI} (non-maskable
        interrupt), especially in PC-land.

priority inversion

        <programming> A phenomenon which can arise in a {concurrent}
        programming environment where a high priority task (H) is
        blocked by a low priority task (L), e.g. because L has locked
        some resource needed by H, and L then has to wait for a medium
        priority task (M).  The net result is that H ends up waiting
        for M instead of the other way round - the priorities become
        inverted.

        This can be a problem if, for example, M takes a long time,
        causing H to miss a deadline.

        A possible cure is to have tasks inherit the maximum priority
        of any task that is waiting for them.  In that case L
        temporarily becomes high priority until H can procede, thus
        preventing M from running in place of H.

        (1997-12-13)

priority queue

        <programming> A data structure with three operations: insert a
        new item, return the highest priority item, and remove the
        highest priority item.  The obvious way to represent priority
        queues is by maintaining a sorted list but this can make the
        insert operation very slow.  Greater efficiency can be
        achieved by using {heaps}.

        (1996-03-12)

priority scheduling

        <operating system> {Processes scheduling} in which the
        {scheduler} selects tasks to run based on their priority as
        opposed to, say, a simple {round-robin}.

        Priorities may be static or dynamic.  Static priorities are
        assigned at the time of creation, while dynamic priorities are
        based on the processes' behaviour while in the system.  For
        example, the scheduler may favour {I/O}-intensive tasks so
        that expensive requests can be issued as early as possible.

        A danger of priority scheduling is {starvation}, in which
        processes with lower priorities are not given the opportunity
        to run.  In order to avoid starvation, in preemptive
        scheduling, the priority of a process is gradually reduced
        while it is running.  Eventually, the priority of the running
        process will no longer be the highest, and the next process
        will start running.  This method is called {aging}.

PRISM

        A distributed {logic language}.

        ["PRISM: A Parallel Inference System for Problem Solving",
        S. Kasif et al, Proc 1983 Logic Prog Workshop, pp. 123-152].

Prisoner of Bill

        <humour> (PoB) A derisory term, in use generally among {Unix}
        users, for anyone who uses {Microsoft} products either because
        they don't know there is anything better (i.e. Unix) or
        because they would be incapable of working anything more
        complex (i.e. Unix).

        The interesting and widespread presumption among users of the
        term is that (at least at the time of writing, 1998) using
        anything other than Unix or a Microsoft OS (whether {VMS},
        {Macintosh}, {Amiga}) is so eccentric a choice as to be at
        least somewhat praiseworthy.

        (1998-09-07)

privacy

        Where only the intended recipients can read a message.

Privacy Enhanced Mail

        (PEM) {Internet} {electronic mail} which provides
        confidentiality, {authentication} and message integrity using
        various {encryption} methods.

        See also {Pretty Good Privacy}.

Private Automatic Branch eXchange

        <communications> (PABX) A telephone exchange operated within
        an organisation, used for switching calls between internal
        lines and between internal and {PSTN} lines.  In contrast to a
        {PMBX}, a PABX can route calls without manual intervention,
        based entirely on the number dialed.  Not all PABXs can route
        external calls to internal numbers automatically however.

        (1998-08-07)

Private Branch Exchange

        <communications> (PBX) A telephone exchange local to a
        particular organisation who use, rather than provide,
        telephone services.  The earliest PBXs were manual ({Private
        Manual Branch EXchange}, PMBX) but are now more likely to be
        automatic ({Private Automatic Branch eXchange}).

        (1997-06-25)

Private Manual Branch eXchange

        <communications> (PMBX) The original manual equivalent of a
        {PABX}; a PMBX involves company employed operators manually
        switching each call using a manual switchboard.

        (1998-08-07)

privileged instruction

        A {machine code} instruction that may only be executed when
        the processor is running in {supervisor mode}.  Privileged
        instructions include operations such as I/O and {memory
        management}.

        (1995-02-15)

PRL

        Proof Refinement Logic.

        Versions: {micro-PRL}, {lambda-PRL}, {nu-PRL}.

        ["PRL: Proof Refinement Logic Programmer's Manual", CS Dept,
        Cornell, 1983].

        (1995-01-24)

PRML

        {Partial Response Maximum Likelihood}

probabilistic

        <probability> Relating to, or governed by, probability. The
        behaviour of a probabilistic system cannot be predicted
        exactly but the probability of certain behaviours is known.
        Such systems may be simulated using {pseudo-random} numbers.
        {Evolutionary computation} uses probabilistic processes to
        generate new (potential) solutions to a problem.

        See also {deterministic}, {non-probabilistic}.

        (1995-09-22)

probabilistic automaton

        {nondeterministic automaton}

Probe

        An {object-oriented} {logic language} based on {ObjVlisp}.

        ["Proposition d'une Extension Objet Minimale pour Prolog",
        Actes du Sem Prog en Logique, Tregastel (May 1987),
        pp. 483-506].

problem state

        {IBM} jargon for {user mode}, the opposite of "supervisor
        state".

        On IBM {System 360}, 370 and 390 {mainframe}s {privileged
        instruction}s may only be executed in "supervisor state".
        {Application program}s request the {operating system} to
        perform these operations by using the Supervisor Call (SVC)
        instruction.

        (1995-02-15)

PROC

        <language> The {job control language} used in the {Pick}
        {operating system}.

        ["Exploring the Pick Operating System", J.E. Sisk et al,
        Hayden 1986].

        (1998-10-13)

procedural language

        <language> (Or "imperative language") A term used in contrast
        to {declarative language} to describe a language where the
        programmer specifies an explicit sequences of steps to follow
        to produce a result.  Common procedural languages include
        {Basic}, {Pascal}, {C} and {Modula-2}.

        (1998-10-13)

Procedural Language/SQL

        <language> (PL/SQL) {Oracle Corporation}'s proprietary
        {procedural language} extension of industry-standard {SQL}.

        [Features?  Reference?  Any relation to {PL/I}?]

        (1999-09-14)

procedure

        {subroutine}

process

        <operating system, software> An executing {program}.  A
        process consists of the program {code} (which may be shared
        with other processes which are executing the same program),
        and some private data.  It may have other associated resources
        such as a {process identifier}, open files, {CPU time} limits,
        {shared memory}, {child processes}, and {signal handlers}.

        A {multitasking} {operating system} can run multiple processes
        {concurrently} or in {parallel}.

        (1996-12-09)

Process Design Language 2

        <language> (PDL2) A language developed for the {Texas
        Instruments} {ASC} computer.

        ["Texas Instruments Process Design Methodology - Design
        Specification: Process Design Language", Volume I (Sep 1976)].

        [Mentioned in "An Overview of Ada" J.G.P. Barnes, Soft Prac &
        Exp 10:851-887 (1980)].

        (1995-08-13)

process ID

        {process identifier}

process identifier

        <operating system> (PID) An integer used by the {Unix}
        {kernel} to uniquely identify a process.  PIDs are returned by
        the {fork} {system call} and can be passed to wait() or
        kill() to perform actions on the given process.

        (1996-12-09)

processor

        {central processing unit}

Processor Direct Slot

        <hardware> (PDS) {Apple Computer}'s name for a {local bus}
        connection.  Most {Macintosh}es have only one PDS connector.
        Different Apple computers have different PDS specifications.

        (1995-05-02)

processor farm

        <computer, parallel> A {parallel processor} where tasks are
        distributed "farmed out" by one "farmer" processor to several
        "worker" processors and results are sent back to the farmer.
        This arrangement is suitable for {application}s which can be
        partitioned into many separate, independant tasks, the
        canonical examples being {ray tracing} and the {Mandelbrot
        set}.  In order to be efficient, the tasks need to be big
        enough that the communications {overhead} is negligible.

        (1995-03-16)

processor time

        <software> The amount of time a {process} takes to run, given
        that it has exclusive and uninterrupted use of the {CPU}.
        Note that in a modern computer, this would be very unusual,
        and so the processor time calculation for most processes
        involves adding up all the small amounts of time the CPU
        actually spends on the process.

        Some systems break processor time down into {user time} and
        {system time}.

        Compare {wall clock time}.

        (1998-03-13)

process scheduling

        {multitasking}

process table

        <operating system, process> A table containing all of the
        information that must be saved when the {CPU} switches from
        running one {process} to another in a {multitasking} system.

        The information in the process table allows the suspended
        process to be restarted at a later time as if it had never
        been stopped.  Every process has an entry in the table.  These
        entries are known as {process control blocks} and contain the
        following information:

        process state - information needed so that the process can be
        loaded into memory and run, such as the {program counter}, the
        {stack pointer}, and the values of {registers}.

        memory state - details of the memory allocation such as
        pointers to the various memory areas used by the program

        resource state - information regarding the status of files
        being used by the process such as {user ID}.

        Accounting and scheduling information.

        An example of a UNIX process table is shown below.

         SLOT  ST  PID  PGRP  UID  PRI  CPU  EVENT  NAME  FLAGS
          0    s    0     0     0   95   0  runout  sched load sys
          1    s    1     0     0   66   1    u     init  load
          2    s    2     0     0   95   0  10bbdc  vhand load sys

        SLOT is the entry number of the process.

        ST shows whether the process is paused or sleeping (s), ready
        to run (r), or running on a {CPU} (o).

        PID is the {process ID}.

        PGRP is the {process Group}.

        UID is the {user ID}.

        PRI is the priority of the process from 127 (highest) to 0
        (lowest).

        EVENT is the {event} on which a process is paused or
        sleeping.

        NAME is the name of the process.

        FLAGS are the process {flags}.

        A process that has died but still has an entry in the process
        table is called a {zombie process}.

        (1998-04-24)

PROCOL

        <language> A parallel {object language} with {protocols},
        {constraints} and distributed delegation by J. Van Den Bos of
        Erasmus University, Rotterdam.

        ["PROCOL: A Parallel Object Language with Protocols", J. Van
        Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89), Oct
        1989].

        (1998-03-23)

Procomm

        <communications, product> A communications program from
        {Datastorm Technologies}, used for connection to {BBS}es etc.

        Procomm Plus for Windows incorporates automatic {modem} make
        and modem detection, a custom log-on script generator and
        sophisticated {off-line} message managers for {CompuServe} and
        {MCI Mail}.  It also has a fax send and receive capability.

        Current version 2.0 was chosen as the Editors Choice in PC
        Magazine March 14, 1995.  List price is $179.  It requires
        {Microsoft} {Windows 3.1} or later.

        (1995-04-04)

Procrustean string

        <programming> A fixed-length {string}.  If a string value is
        too long for the allocated space, it is truncated to fit; and
        if it is shorter, the empty space is padded, usually with
        space characters.

        This is an allusion to Procrustes, a legendary robber of ancient
        Attica.  He bound his victims to a bed, and if they were longer
        than the bed, he stretched their limbs until they would fit; if
        their limbs were longer, he lopped them off.

        (1997-09-12)

Prodigy

        <networking> A commercial on-line conferencing service,
        co-developed by {IBM} and Sears, Roebuck, Inc.

        Prodigy's main competitors are {AOL} and {Compuserve}.

        (1995-03-01)

ProDoc

        A set of tools for software documentation from {SPC}.

product

        See {tuple}.

production system

        A production system consists of a collection of productions
        (rules), a {working memory} of {fact}s and an {algorithm}
        known as {forward chaining} for producing new facts from old.
        A rule becomes eligible to "fire" when its conditions match
        some set of elements currently in working memory.  A {conflict
        resolution strategy} determines which of several eligible
        rules (the {conflict set}) fires next.  A condition is a list
        of symbols which represent constants, which must be matched
        exactly; variables which bind to the thing they match and "<>
        symbol" which matches a field not equal to symbol.  Examples
        are {OPS5}, {CLIPS}, {flex}.

Professional Graphics Adapter

        <graphics, specification> (PGA) A computer video {display
        standard} produced by {IBM} for early {CAD} applications.  It
        had a resolution of 640x400 {pixels}.

        (1997-04-25)

Professional Office System

        <messaging> (PROFS) An office messaging system from {IBM},
        used worldwide, mainly on IBM {mainframes}.

        (1996-03-23)

professional programming

        See {paranoid programming}.

PROFILE

        Simple language for matching and scoring data.  "User's Manual
        for the PROFILE System", Cambridge Computer Assoc (May 1974).

profile

        1. A control file for a program, especially a text file
        automatically read from each user's home directory and
        intended to be easily modified by the user in order to
        customise the program's behaviour.  Used to avoid {hard-coded}
        choices (see also {dot file}, {rc file}).

        2. A report on the amounts of time spent in each routine of a
        program, used to find and {tune} away the {hot spot}s in it.
        This sense is often verbed.  Some profiling modes report units
        other than time (such as call counts) and/or report at
        granularities other than per-routine, but the idea is similar.

PROFS

        {Professional Office System}

PROGENY

        1961.  Report generator for UNIVAX SS90.

proglet

        /prog'let/ [UK] A short extempore program written to meet an
        immediate, transient need.  Often written in BASIC, rarely
        more than a dozen lines long and containing no subroutines.
        The largest amount of code that can be written off the top of
        one's head, that does not need any editing, and that runs
        correctly the first time (this amount varies significantly
        according to one's skill and the language one is using).
        Compare {toy program}, {noddy}, {one-liner wars}.

program

        {software}

Program Composition Notation

        (PCN) A specification language for parallelism between {C} and
        {Fortran} {module}s.  PCN provides a simple language for
        specifying {concurrent} {algorithm}s, interfaces to {Fortran}
        and {C}, a portable toolkit that allows applications to be
        developed on a {workstation} or small parallel computer and
        run unchanged on {supercomputer}s and integrated debugging and
        performance analysis tools.  PCN was developed at {Argonne
        National Laboratory} and the {California Institute of
        Technology}.  It has been used to develop a wide variety of
        applications, in areas such as climate modeling, fluid
        dynamics, computational biology, chemistry, and circuit
        simulation.

        Version 2.0 runs on networks of workstations: {Sun4}, {NeXT},
        {RS/6000}, {SGI}; {multicomputer}s: {iPSC}/860, {Touchstone
        DELTA}; and {shared memory} multiprocessors:
        {Symmetry}/{Dynix}.

        {(ftp://info.mcs.anl.gov/pub/pcn)}

        E-mail: Ian Foster <pcn@mcs.anl.gov>, Steve Tuecke
        <tuecke@mcs.anl.gov>.

        ["Productive Parallel Programming: The PCN Approach",
        I. Foster et al, Sci Prog 1(1):51-66 (1992)].

        (1993-02-12)

program counter

        <hardware> (PC, or "instruction address register") A
        {register} in the {central processing unit} that contains the
        addresss of the next instruction to be executed.  The PC is
        automatically incremented after each instruction is fetched to
        point to the following instruction.  It is not normally
        manipulated like an ordinary {register} but instead, special
        instructions are provided to alter the {flow of control} by
        writing a new value to the PC, e.g. JUMP, CALL, {RTS}.

        (1995-03-21)

Program Design Language

        Any of a large class of formal and profoundly useless
        pseudo-languages in which {management} forces one to design
        programs.  Too often, management expects PDL descriptions to
        be maintained in parallel with the code, imposing massive
        overhead of little or no benefit.

        See also {flow chart}.

        (1995-04-01)

Program Evaluation and Review Technique

        <programming> (PERT) A method used to size a software product
        and calculate the Standard Deviation (SD) for risk assessment.
        The PERT equation (beta distribution) estimates the Equivalent
        {Delivered Source Instructions} (EDSIs) and the SD based on
        the analyst's estimates of the lowest possible size, the most
        likely size, and the highest possible size of each computer
        program component (CPC).

        (1996-05-29)

Program Information File

        <file format> Under {Windows}, a file providing information on
        how a non-Windows {application program} should be run,
        including how much {memory} should be allocated to it and what
        graphics interface it requires.

        {Filename extension}: .pif

        (1997-10-11)

Programmable Airline Reservation System

        <application> (PARS) An {IBM} proprietary large scale airline
        reservation application, executing under the control of IBM's
        {ACP} (and later its successor, {TPF}).

        In the early days of automated reservations systems in the
        1960s and 1970s the combination of ACP and PARS provided
        unprecendented scale and performance from an on-line
        {real-time} system, and for a considerable period ranked among
        the largest networks and systems of the era.

        {IPARS} was the international version.

        (1999-01-18)

Programmable Array Logic

        <hardware> (PAL) A family of fuse-programmable logic
        {integrated circuits} originally developed by {MMI}.
        Registered or {combinatorial} output functions are modelled in
        a {sum of products} form.  Each output is a sum (logical or)
        of a fixed number of products (logical and) of the input
        signals.  This structure is well suited for automatic
        generation of programming patterns by logic compilers.

        PAL devices are programmed by blowing the fuses permanently
        using overvoltage.

        Today, more complex devices based on the same original
        architecture are available (CPLD's for Complex PLD's) that
        incorporate the equivalent of several original PAL chips.  PAL
        chips are, however, still popular due to their high speed.

        {Generic Array Logic} devices are reprogrammable and contain
        more {logic gates}.

        (1995-12-09)

Programmable Logic Controller

        <hardware> (PLC) A device used to automate monitoring and
        control of industrial plant.  Can be used stand-alone or in
        conjunction with a {SCADA} or other system.

        (1997-02-11)

Programmable Read Only Memory

        <storage> (PROM) A kind of {ROM} which can be written using a
        PROM programmer.  The contents of each bit is determined by a
        {fuse} or {antifuse}.  The memory can be programmed once after
        manufacturing by "blowing" the fuses, which is an irreversible
        process.  Blowing a fuse opens a connection while blowing an
        antifuse closes a connection (hence the name).  Programming is
        done by applying high-voltage pulses which are not encountered
        during normal operation.

        (1995-04-22)

Programmed Data Processor

        <computer> (PDP) Early (1960's?) {Digital Equipment
        Corporation} family of {minicomputers}.  The best known ranges
        were the {PDP-10} and {PDP-11}.  {PAL} was the {assembly
        language}.

        (1997-11-21)

PROgrammed Graph REwriting Systems

        <language> (PROGRES) A very high level language based on
        {graph grammar}s, developed by Andy Scheurr
        <andy@i3.informatik.rwth-aachen.de> and Albert Zuendorf
        <albert@i3.informatik.rwth-aachen.de> of {RWTH}, Aachen in
        1991.

        PROGRES supports structurally {object-oriented specification}
        of {attributed graph} structures with {multiple inheritance}
        hierarchies and types of types (for {parametric
        polymorphism}).  It also supports declarative/relational
        specification of derived attributes, node sets, binary
        relationships (directed edges) and {Boolean} {constraint}s,
        rule-oriented/visual specification of parameterised graph
        rewrite rules with complex application conditions,
        {nondeterministic} and imperative programming of composite
        graph transformations (with built-in {backtracking} and
        cancelling arbitrary sequences of failing graph
        modifications).

        It is used for implementing {abstract data type}s with
        graph-like internal structure, as a visual language for the
        {graph-oriented database} {GRAS}, and as a rule-oriented
        language for prototyping {nondeterministic}ally specified
        data/rule base transformations.

        PROGRES has a formally defined {semantics} based on
        "PROgrammed Graph Rewriting Systems".  It is an almost
        {statically typed} language which additionally offers "down
        casting" operators for run-time checked type
        casting/conversion (in order to avoid severe restrictions
        concerning the language's expressiveness).

        Version RWTH 5.10 includes an integrated environment.

        [A. Scheurr, "Introduction to PROGRES, an Attribute Graph
        Grammar Based Specification Language", in Proc WG89 Workshop
        on Graphtheoretic Concepts in Computer Science", LNCS 411,
        Springer 1991].

        {(ftp://ftp.informatik.rwth-aachen.de/pub/Unix/PROGRES/)} for
        {Sun4}.

        (1993-11-02)

Programmer Brain Damage

        <humour> (PBD) A classification of a {bug} which was obviously
        introduced by an incompetent or short-sighted programmer.

        Compare {UBD}.  See also {brain-damaged}.

        (1996-10-13)

Programmer's Cheer

        <humour>

         "Shift to the left!
         Shift to the right!
         Pop up, push down!
         Byte!  Byte!  Byte!"

        [Origin?]

        (1996-10-13)

Programmers Hierarchical Interactive Graphics System

        (PHIGS) An {ANSI}/{ISO} {standard}.  Worked on by the
        {ISO}/{IEC} group {JTC1/SC24}.

        [More detail?]

        (1995-01-04)

PROgrammer's Microapplication Language

        <language> (PROMAL) An interpreted {C}-like language from
        {Systems Management Associates} for {MS-DOS}, {Commodore 64},
        and {Apple II}.

        [Computer Language, Mar 1986, pp. 128-134].

        (1996-03-21)

Programmer's Switch

        <hardware> A button on the front of some {Apple Macintosh}
        computers ({Centris} and above) which, when pressed, causes a
        command line prompt to appear.  This gives access to the
        debugger, which by default has only one command:

                G "Finder"

        It is useful for getting out of system {crash}es, but you need
        to install a more sophisticated {debugger} for inspecting
        {breakpoint}s, etc.

        (1995-05-02)

programming

        1. The art of debugging a blank sheet of paper (or, in these
        days of on-line editing, the art of debugging an empty file).

        2. A pastime similar to banging one's head against a wall, but
        with fewer opportunities for reward.

        3. The most fun you can have with your clothes on (although
        clothes are not mandatory).

programming fluid

        <jargon> (Or "{wirewater}") Coffee, unleaded coffee
        (decaffeinated), Cola, or any caffeinacious stimulant.  Many
        hackers consider these essential for those all-night {hacking
        runs}.

        (1996-05-01)

programming language

        <language> A formal language in which computer programs are
        written.  The definition of a particular language consists of
        both {syntax} (how the various symbols of the language may be
        combined) and {semantics} (the meaning of the language
        constructs).

        Languages are classified as low level if they are close to
        {machine code} and high level if each language statement
        corresponds to many machine code instructions (though this
        could also apply to a low level language with extensive use of
        {macro}s, in which case it would be debatable whether it still
        counted as low level).  A roughly parallel classification is
        the description as {first generation language} through to
        {fifth generation language}.

        Another major distinction is between {imperative language}s
        and {declarative language}s.

        (1995-04-06)

Programming Language/Cornell

        <language> (PL/C) A large subset of {PL/I} from {Cornell
        University}, aimed at novice programmers.

        ["Introduction to PL/1 and PL/C programming", Kochenburger,
        Ralph J., Santa Barbara, Hamilton, c1974].

        ["User's Guide to PL/C", S. Worona et al, Cornell, June 1974].

        ["PL/C - A High Performance Compiler" H.L. Morgan et al, Proc
        SJCC, AFIPS 38:503-510 (1971)].

        (1999-05-26)

Programming Language/Systems

        <language> (PL/S) An {IBM} machine-oriented language derived
        from {PL/I} in the late 1960s for the {IBM 360} and {IBM 370}.
        PL/S permitted {inline} {assembly language} and control over
        {register} usage.

        Much of IBM 360 {OS/MFT}(?), {OS/MVT}(?), {OS/VS1} and
        {OS/VS2} ({OS/SVS} and {MVS}) were written in PL/S.  It was
        used internally and never released to the public.  It is
        documented in various IBM internal ZZ-?  publications.

        Versions: PLS1, PLSII.

        ["PL/S, Programming Language/Systems", W.R. Brittenham, Proc
        GUIDE Intl, GUIDE 34, May 14, 1972, pp. 540-556].

        [Were MFT and MVT in PL/S or pure BAL?  Dates?]

        (1999-01-24)

Program Temporary Fix

        <programming> (PTF) (Colloquially: Probably This Fixes) An
        {IBM} sanctioned {patch}, often implemented using {ZAP} or
        {SUPERZAP}.

        (1998-07-08)

program transformation

        The systematic development of efficient programs from
        high-level specifications by meaning-preserving program
        manipulations.  Also known as optimisation.  See {fusion},
        {loop combination}, {peephole optimisation}, {register
        allocation}, {tupling}, {unfold/fold}.

Prograph

        <language>

        A visual {dataflow} programming language and environment from
        the {Technical University of Halifax}.

        Prograph is an entirely graphical {visual programming}
        language, other than for the text of {method} names, and
        supports the program development process in a
        highly-interactive fashion.  Operation icons are connected by
        data links through which information flows.  It supports
        {object orientation} via {class}-based {data abstraction} with
        {single inheritance}.

        Prograph is available for the {Macintosh}, and soon for
        Windows and Unix, from {TGS Systems}.

        (1995-03-31)

PROGRES

        <language> {PROgrammed Graph REwriting Systems}.

progressive coding

        <algorithm> A way to send an {image} gradually to a receiver
        instead of all at once so that the receiver first receives a
        low {resolution} version of the image and susbsequent data
        increases the {resolution}.

        {JBIG} uses {progressive coding}.

        See also {progressive/sequential coding}.

        ["Progressive Bi-level Image Compression, Revision 4.1",
        ISO/IEC JTC1/SC2/WG9, CD 11544, September 16, 1991].

        (1995-03-01)

Progressive JPEG

        <graphics, file format> (PJPEG) An implementation of {JPEG}
        that supports distinct passes, much as other formats supprt
        {interlacing}.

        [Standards documents?]

        (1998-02-10)

progressive/sequential coding

        <compression, algorithm> The kind of image {compression}
        {algorithm} used in {JBIG} where an image coded using
        {progressive coding} can be decoded sequentially, and vice
        versa.

        (1995-03-01)

PROJECT

        Subsystem of ICES.  Sammet 1969, p.616.

project assurance

        The process of specifying the support system: techniques,
        internal standards, measurements, tools, and training for a
        project; counselling the project team in the application of
        these elements and monitoring the adherence to the standards.

Project Guardian

        <project, security> A project which grew out of the {ARPA}
        support for {Multics} and the sale of Multics systems to the
        US Air Force.  The USAF wanted a system that could be used to
        handle more than one security classification of data at a
        time.  They contracted with {Honeywell} and {MITRE} to figure
        out how to do this.  Project Guardian led to the creation of
        the {Access Isolation Mechanism}, the forerunner of the {B2}
        labeling and star property support in Multics.  The {DoD
        Orange Book} was influenced by the experience in building
        secure systems gained in Project Guardian.

        (1997-01-29)

projection

        <theory> In domain theory, a {function}, f, which is (a)
        {idempotent}, i.e.  f(f(x))=f(x) and (b) whose result is no
        more defined than its argument.  E.g. F(x)=bottom or F(x)=x.

        In {reduction} systems, a function which returns some
        {component} of its argument.  E.g. head, tail, \ (x,y) . x.
        In a {graph reduction} system the function can just return a
        pointer to part of its argument and does not need to build any
        new graph.

        (1997-01-29)

projective plane

        <mathematics> The space of {equivalence classes} of {vectors}
        under non-zero {scalar} multiplication.  Elements are sets of
        the form

                {kv: k != 0, k scalar, v != O, v a vector}

        where O is the origin.  v is a representative member of this
        equivalence class.

        The projective plane of a {vector space} is the collection of
        its 1-dimensional {subspaces}.  The properties of the vector
        space induce a {topology} and notions of {smoothness} on the
        projective plane.

        A projective plane is in no meaningful sense a plane and would
        therefore be (but isn't) better described as a "projective
        space".

        (1996-09-28)

Project MAC

        <project> A project suggested by J C R Licklider; its founding
        director was {MIT} Prof. Robert M Fano.  MAC stood for
        Multiple Access Computers on the 5th floor of Tech Square, and
        Man and Computer on the 9th floor.  The major efforts were
        Corbato's {Multics} development and {Marvin Minsky}'s
        {Artificial Intelligence} Laboratory.  In 1963 Project MAC
        hosted a summer study, which brought many well-known computer
        scientists to Cambridge to use {CTSS} and to discuss the
        future of computing.

        Funding for Project MAC was provided by the Information
        Processing Techniques Office of the {Advanced Research
        Projects Agency} (ARPA) of the US Department of Defense.

        See also {Early PL/I}, {MacLisp}, {MACSYMA}, {MDL},
        {Multipop-68}, {OCAL}.

        (1997-01-29)

project management

        <project, job> The process of planning, organising, staffing,
        directing and controlling the production of a system.
        Software tools are available to help with this, e.g. {PERT}
        chart editors.

        (1998-12-12)

project planning

        {project management}

Prolog

        <programming> Programming in Logic or (French) Programmation
        en Logique.  The first of the huge family of {logic
        programming} languages.

        Prolog was invented by Alain Colmerauer and Phillipe Roussel
        at the University of Aix-Marseille in 1971.  It was first
        implemented 1972 in {ALGOL-W}.  It was designed originally for
        {natural-language processing} but has become one of the most
        widely used languages for {artificial intelligence}.

        It is based on {LUSH} (or {SLD}) {resolution} {theorem
        proving} and {unification}.  The first versions had no
        user-defined functions and no control structure other than the
        built-in {depth-first search} with {backtracking}.  Early
        collaboration between Marseille and Robert Kowalski at
        {University of Edinburgh} continued until about 1975.

        Early implementations included {C-Prolog}, {ESLPDPRO},
        {Frolic}, {LM-Prolog}, {Open Prolog}, {SB-Prolog}, {UPMAIL
        Tricia Prolog}.  In 1998, the most common Prologs in use are
        {Quintus Prolog}, {SICSTUS Prolog}, {LPA Prolog}, {SWI
        Prolog}, {AMZI Prolog}, {SNI Prolog}.

        {ISO} draft standard at {Darmstadt, Germany
        (ftp://ftp.th-darmstadt.de/pub/programming/languages/prolog/standard/)}
        or {UGA, USA (ftp://ai.uga.edu/ai.prolog.standard)}.

        See also {negation by failure}, {Kamin's interpreters},
        {Paradigms of AI Programming}, {Aditi}.

        A Prolog {interpreter} in {Scheme}.
        {(ftp://cpsc.ucalgary.ca/pub/prolog1.1)}.

        {A Prolog package
        (ftp://cpsc.ucalgary.ca/pub/prolog1.1/prolog11.tar.Z)} from
        the {University of Calgary} features {delayed goals} and
        {interval arithmetic}.  It requires {Scheme} with
        {continuations}.

        A Prolog by Michael Covington <mcovingt@uga.cc.uga.edu> runs
        on {MS-DOS} and {Macintosh}.
        {(ftp://ftp.ai.uga.edu/ai.prolog/Contents)}.

        ["Programming in Prolog", W.F. Clocksin & C.S. Mellish,
        Springer, 1985].

        (1999-04-22)

Prolog++

        (After {C++}) {Prolog} with {object-oriented} features added
        by Phil Vasey of {Logic Programming Associates}.  Prolog++ is
        available for {MS-DOS} and the {X Window System}.  It is
        distributed by {AI International} Ltd. in England and by
        {Quintus}.

Prolog-2

        An implementation of Edinburgh Prolog by Nick Henfrey, {ESL}.

        ["An Advanced Logic Programming Language", Anthony Dodd].

Prolog-D-Linda

        Embeds the {Linda} parallel paradigm into {SISCtus Prolog}.

        {(ftp://ftp.cs.uwa.au/)}.  E-mail: <geoff@cs.uwa.edu.au>.

Prolog-II

        Prolog with two new predicates: "dif" for coroutines and
        "freeze" for delayed evaluation.

        Available from ExperIntelligence, Santa Barbara CA.

        ["Prolog II Reference Manual and Theoretical Model",
        A. Colmerauer, Internal Report, GroupeIA, U Aix-Marseille (Oct
        1982)].

Prolog-III

        A. Colmerauer, U Aix-Marseille, ca 1984.  Marseille Prolog,
        with unification replaced by constraint resolution.  [deferred
        goals too?]  (Not to be confused with Prolog 3, a commercial
        product?)

        Version 1.2 for MS-DOS.

        ["Opening the Prolog-III Universe", BYTE 12(9):177-182 (Aug
        1987)].

        ["An Introduction to Prolog III", A. Colmerauer, CACM
        33(7):69-90 (1990)].

Prolog-Linda

        1. Prolog extended with Linda-style parallelism.  Proc 4th
        Australian Conf on Artif Intell.

        {(ftp://bison.cs.uwa.oz.au/)}

        2. Neil MacDonald, U Edinburgh 1989.  Another Prolog extended
        with Linda, implemented on a Computing Surface.

Prolog/Mali

        (PM) {Lambda-Prolog} for the {MALI}-V06 abstract memory system
        by Pascal Brisset <brisset@irisa.fr>.  There is a compiler
        which compiles to {C}, a linker, libraries, {run-time system}
        and documentation.  It runs under {Unix}.

        {(ftp://ftp.irisa.fr/pm/)}

        Mailing list: prolog-mali-request@irisa.fr.  E-mail:
        <pm@irisa.fr>.

        (1992-07-06)

PROM

        <storage> {Programmable Read Only Memory}.

PROMAL

        {PROgrammer's Microapplication Language}

Prometheus

        <language> A programmaing language geared for logic,
        mathematics, {AI}, and string, list and database processing.
        Prometheus runs on a variety of {platforms} from {Macintosh}
        to {MS-DOS}

        {Home (http://www.aard.tracor.com/Jason/Prometheus/)}

        (1996-03-04)

promiscuous mode

        <networking> Where a node on a network accepts all {packets},
        regardless of their destination address.

        (1996-03-04)

PROM monitor

        <operating system> a small program stored in {PROM} (or
        {ROM}), responsible for both loading the {OS} and providing
        some means to analyse OS {crashes}.  It may also have some
        sort of {user interface} which can be used to examine and
        change the contents of memory, control the boot process
        (specifying arguments to the {kernel}, or changing where to
        look for the it), and so forth.

        The main difference between a PROM monitor and a {bootstrap
        loader} is that the PROM monitor regains control when the OS
        terminates.  This may enable a {wizard} to find out what went
        wrong if the OS crashed, although it is usually of little help
        for the average {sysadmin}.

        (1996-12-03)

pron

        <jargon> (Or "pr0n") {B1FF}-speak for pornography.  Often seen
        on {IRC} in such desperate cries for help as "I WNAT
        PRON!!!!!"

        (1997-09-14)

Pronet

        <language>

        ["The Design of a Programming Language Based on Connectivity
        Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp
        Sys, IEEE 1982, pp. 532-541].

        (1997-09-14)

Pronunciation

        In this dictionary slashes (/../) bracket phonetic
        pronunciations which are neither words found in a standard
        English dictionary nor obvious compounds thereof.  The
        notation, and many of the pronunciations, was adapted from the
        Hacker's {Jargon File}.

        Syllables are separated by {dash} or followed {single quote}
        or {back quote}.  Single quote means the preceding syllable is
        stressed (louder), back quote follows a syllable with
        intermediate stress (slightly louder), otherwise all syllables
        are equally stressed.

        Consonants are pronounced as in English but note:

                ch      soft, as in "church"
                g       hard, as in "got"
                gh      aspirated g+h of "bughouse" or "ragheap"
                j       voiced, as in "judge"
                kh      guttural of "loch" or "l'chaim"
                s       unvoiced, as in "pass"
                zh      as "s" in "pleasure"

        Uppercase letters are pronounced as their English letter
        names; thus (for example) /H-L-L/ is equivalent to /aych el
        el/.  /Z/ is pronounced /zee/ in the US and /zed/ in the UK
        (elsewhere?).

        Vowels are represented as follows:

                a       back, that
                ah      father, palm (see note)
                ar      far, mark
                aw      flaw, caught
                ay      bake, rain
                e       less, men
                ee      easy, ski
                eir     their, software
                i       trip, hit
                i:      life, sky
                o       block, stock (see note)
                oh      flow, sew
                oo      loot, through
                or      more, door
                ow      out, how
                oy      boy, coin
                uh      but, some
                u       put, foot
                *r      fur, insert (only in stressed
                        syllables; otherwise use just "r")
                y       yet, young
                yoo     few, chew
                [y]oo   /oo/ with optional fronting as
                        in `news' (/nooz/ or /nyooz/)

        A /*/ is used for the `schwa' sound of unstressed or occluded
        vowels (often written with an upside-down `e').  The schwa
        vowel is omitted in unstressed syllables containing vocalic l,
        m, n or r; that is, "kitten" and "colour" would be rendered
        /kit'n/ and /kuhl'r/, not /kit'*n/ and /kuhl'*r/.

        The above table reflects mainly distinctions found in standard
        American English (that is, the neutral dialect spoken by TV
        network announcers and typical of educated speech in the Upper
        Midwest, Chicago, Minneapolis/St.Paul and Philadelphia).
        However, we separate /o/ from /ah/, which tend to merge in
        standard American.  This may help readers accustomed to
        accents resembling British Received Pronunciation.

        Entries with a pronunciation of `//' are written-only.

        (1997-12-10)

proof

        1. <logic> A {finite} sequence of {well-formed formula}s, F1,
        F2, ... Fn, where each Fi either is an {axiom}, or follows by
        some rule of inference from some of the previous F's, and Fn
        is the statement being proved.

        See also {proof theory}.

        2. A left-associative {natural language} {parser} by Craig
        R. Latta <latta@xcf.berkeley.edu>.  Ported to {Decstation
        3100}, {Sun-4}.

        {(ftp://scam.berkeley.edu/pub/src/local/proof/)}

        E-mail: <proof@xcf.berkeley.edu>.  Mailing list:
        proof-requestf@xcf.berkeley.edu (Subject: add me).

        (1994-11-29)

PROOF/L

        A {functional}, {object-oriented language} with {implicit
        parallelism}.

        [J Parallel Dist Comp 12:202-212 (1991)].

        [Forthcoming Technical Report from {RADC}].

        (1994-10-31)

proof theory

        <logic> The branch of {logic} describing procedures for
        combining logical statements to show, by a series of
        truth-preserving transformations, that one statement is a
        consequence of some other statement or group of statements.

        (1994-10-31)

propeller head

        <jargon> Used by hackers, this is synonym with {computer
        geek}.  Non-hackers sometimes use it to describe all techies.
        Probably derives from SF fandom's tradition (originally
        invented by old-time fan Ray Faraday Nelson) of propeller
        beanies as fannish insignia (though nobody actually wears them
        except as a joke).

        (1995-01-18)

propeller key

        The {Macintosh} {feature key}.

        (1995-01-18)

Proposal Writing

        Extension of {FORTRAN} for proposal writing.

        [Sammet 1969, p. 170].

        (1995-01-18)

propositional calculus

        A system of {symbolic logic}.

        [More detail?].

proprietary

        1. In {marketroid}-speak, superior; implies a product imbued
        with exclusive magic by the unmatched brilliance of the
        company's own hardware or software designers.

        2. In the language of hackers and users, inferior; implies a
        product not conforming to {open-systems} {standard}s, and thus
        one that puts the customer at the mercy of a vendor who can
        inflate service and upgrade charges after the initial sale has
        locked the customer in.

PROSE

        1. PROblem Solution Engineering.  Numerical problems including
        differentiation and integration.  "Computing in Calculus",
        J. Thames, Research/Development 26(5) (May 1975).

        2. A constraints-and-sequencing system similar to
        Kaleidoscope.  "Reflexive Constraints for Dynamic Knowledge
        Bases", P. Berlandier et al in Proc First Intl CS Conf '88:
        AI: Theory and Appls, Dec 1988.

ProSet

        A derivative of {SETL} with {Ada}-like {syntax} developed at
        the {University of Essen} in 1990.  Formerly known as SETL/E.

        ["SETL/E, A Prototyping System Based on Sets", E.E. Doberkat
        et al, in Tagungsband TOOL90, W. Zorn ed, pp. 109-118, U
        Karlsruhe, Nov 1990].

        ["ProSet - A Language for Prototyping with Sets",
        E.-E. Doberkat et al, in Proc Third Intl Workshop on Rapid
        System Prototyping, N.  Kanopoulos ed, IEEE Comp Soc Press,
        June 1992, pp. 235-248].

PROSPER

        ["PROSPER: A Language for Specification by Prototyping", J.
        Leszczylowski, Comp Langs 14(3):165-180 (1989)].

Prospero

        A tool for organising {Internet} resources.  Prospero allows
        each user to organise the contents of remote file servers into
        his own virtual file system with his own hierarchical name
        space consisting of links to remote objects.  Remote indexing
        services are made available by treating the results as a
        virtual directory.  A "union link" allows the contents of the
        link's target directory to appear as part of the directory
        containing the link.  Arbitrary filters can be associated with
        links to modify the representation of the target directory as
        desired.  Prospero directories can be shared between users.
        The Prospero protocol is used for communication between
        clients and servers in the archie system.

        A prototype of Prospero has been available since December
        1990.  It interfaces with Sun {NFS}, the {Andrew File System}
        and {FTP} (with local caching) and {Archie}.  Support for
        {World-Wide Web} and {WAIS} is planned (1992).

        E-mail: <info-prospero@isi.edu>.
        {(ftp://prospero.isi.edu/pub/prospero)}.

ProTalk

        {Quintus}.  An {object-oriented} {Prolog}.

protected mode

        An operating mode of {Intel 80x86} processors.  The opposite
        of real mode.  The {Intel 8088}, {Intel 8086}, {Intel 80188}
        and {Intel 80186} had only real mode, processors beginning
        with the {Intel 80286} feature a second mode called protected
        mode.

        In real mode, addresses are generated by adding an address
        offset to the value of a {segment register} shifted left four
        bits.  As the segment register and address offset are 16 bits
        long this results in a 20-bit address.  This is the origin of
        the one megabyte (2^20) limit in real mode.

        There are 4 segment registers on processors before the {Intel
        80386}.  The 80386 introduced two more segment registers.
        Which segment register is used depends on the instruction, on
        the {addressing mode} and of an optional instruction prefix
        which selects the segment register explicitly.

        In protected mode, the segment registers contain an index into
        a table of {segment descriptors}.  Each segment descriptor
        contains the start address of the segment, to which the offset
        is added to generate the address.  In addition, the segment
        descriptor contains {memory protection} information.  This
        includes an offset limit and bits for write and read
        permission.  This allows the processor to prevent memory
        accesses to certain data.  The {operating system} can use this
        to protect different processes' memory from each other, hence
        the name "protected mode".

        While the standard {register set} belongs to the {CPU}, the
        segment registers lie "at the boundary" between the CPU and
        MMU.  Each time a new value is loaded into a segment register
        while in protected mode, the corresponding descriptor is
        loaded into a descriptor cache in the (Segment-)MMU.  On
        processors before the {Pentium} this takes longer than just
        loading the segment register in real mode.  Addresses
        generated by the CPU (which are segment offsets) are passed to
        the MMU to be checked against the limit in the segment
        descriptor and are there added to the segment base address in
        the descriptor to form a {linear address}.

        On a 80386 or later, the linear address is further processed
        by the paged MMU before the result (the physical address)
        appears on the chip's address pins.  The 80286 doesn't have a
        paged MMU so the linear address is output directly as the
        physical address.

        The paged MMU allows for arbitrary remapping of four klilobyte
        memory blocks ({page}s) through a translation table stored in
        memory.  A few entries of this table are cached in the MMU's
        {Translation Lookaside Buffer} to avoid excessive memory
        accesses.

        After processor reset, all processors start in real mode.
        Protected mode has to be enabled by software.  On the 80286
        there exists no documented way back to real mode apart from
        resetting the processor.  Later processors allow switching
        back to real mode by software.

        Software which has been written or compiled to run in
        protected mode must only use segment register values given to
        it by the operating system.  Unfortunately, most application
        code for {MS-DOS}, written before the 286, will fail in
        protected mode because it assumes real mode addressing and
        writes arbitrary values to segment registers, e.g. in order to
        perform address calculations.

        Such use of segment registers is only really necessary with
        data structures that are larger than 64 kilobytes and thus
        don't fit into a single segment.  This is usually dealt with
        by the {huge memory model} in compilers.  In this model,
        compilers generate address arithmetic involving segment
        registers.  A solution which is portable to protected mode
        with almost the same efficiency would involve using a table of
        segments instead of calculating new segment register values ad
        hoc.

        To ease the transition to protected mode, {Intel 80386} and
        later processors provide "{virtual 86 mode}".

        (1995-03-29)

PROTEUS

        An extensible language, the core of {PARSEC}.

        ["The Design of a Minimal Expandable Computer Language",
        J.R. Bell, PhD Thesis, CS, {Stanford University} (Dec 1968)].

protocal

        <spelling> It's spelled "{protocol}".

protocol

        A set of formal rules describing how to transmit data,
        especially across a {network}.  Low level protocols define the
        electrical and physical standards to be observed, bit- and
        byte-ordering and the transmission and {error detection and
        correction} of the bit stream.  High level protocols deal with
        the data formatting, including the {syntax} of messages, the
        terminal to computer dialogue, {character set}s, sequencing of
        messages etc.

        Many protocols are defined by {RFC}s or by {OSI}.

        See also {handshaking}.

        (1995-01-12)

protocol converter

        <networking> A device or program to translate between
        different {protocol}s which serve similar functions
        (e.g. {TCP} and {TP4}).

        Some call this a "gateway", though others use that term for
        other kinds of {internetworking} device.

        (1996-03-07)

Protocol Data Unit

        (PDU) A {packet} of data passed across a {network}.  The term
        implies a specific layer of the {OSI} seven layer model and a
        specific {protocol}.

        (1994-10-13)

protocol layer

        <networking> The {software} and/or {hardware} environment of
        two or more communications devices or computers in which a
        particular {network} {protocol} operates.  A network
        connection may be thought of as a set of more or less
        independent protocols, each in a different layer or level.
        The lowest layer governs direct host-to-host communication
        between the hardware at different hosts; the highest consists
        of user {application programs}.  Each layer uses the layer
        beneath it and provides a service for the layer above.  Each
        networking component {hardware or software} on one host uses
        {protocols} appropriate to its layer to communicate with the
        corresponding component (its "peer") on another host.  Such
        layered protocols are sometimes known as peer-to-peer
        protocols.

        The advantages of layered {protocols} is that the methods of
        passing information from one layer to another are specified
        clearly as part of the {protocol} suite, and changes within a
        protocol layer are prevented from affecting the other layers.
        This greatly simplifies the task of designing and maintaining
        communication systems.

        Examples of layered protocols are {TCP/IP}'s five layer
        {protocol stack} and the {OSI} seven layer model.

        (1997-05-05)

protocol stack

        <protocol> A layered set of {protocols} which work together to
        provide a set of network functions.  Each intermediate
        {protocol layer} uses the layer below it to provide a service
        to the layer above.

        The {OSI} seven layer model is an attempt to provide a
        standard framework within which to describe protocol stacks.

        (1997-12-07)

PROTON

        1. A home computer made by {Acorn Computers} under a contract
        won from the {BBC} in April 1981.

        [Details?]

        2. Something to do with {Microsoft} {SoftLib}?

        (1994-11-28)

Protosynthex

        A query system for English text.

        [Sammet 1969, p. 669].

Prototyper

        An {interface builder} for the {Macintosh} from Smethers
        Barnes.

        (1994-11-28)

prototyping

        The creation of a model and the {simulation} of all aspects of
        a product.  {CASE} tools support different degrees of
        prototyping.  Some offer the end-user the ability to review
        all aspects of the {user interface} and the structure of
        documentation and reports before code is generated.

provably difficult

        The set or property of problems for which it can be proven
        that no {polynomial-time} {algorithm} exists, only
        {exponential-time} {algorithm}s.

provably unsolvable

        The set or property of problems for which no {algorithm} at
        all exists.  E.g. the {Halting Problem}.  See also {provably
        difficult}.

provider

        {Internet Access Provider}

provocative maintenance

        [Common ironic mutation of "preventive maintenance"] Actions
        performed upon a machine at regularly scheduled intervals to
        ensure that the system remains in a usable state.  So called
        because it is all too often performed by a {field servoid} who
        doesn't know what he is doing; such "maintenance" often
        *induces* problems, or otherwise results in the machine's
        remaining in an *un*usable state for an indeterminate amount
        of time.  See also {scratch monkey}.

prowler

        ({Unix}) A {daemon} that is run periodically (typically once a
        week) to seek out and erase {core} files, truncate
        administrative logfiles, nuke "lost+found" directories, and
        otherwise clean up the {cruft} that tends to pile up in the
        corners of a file system.

        See also {GFR}, {reaper}, {skulker}.

        (1995-02-14)

proxy ARP

        The technique in which one {host}, usually a {router}, answers
        {Address Resolution Protocol} (ARP) requests intended for
        another machine.  By "faking" its identity, the router accepts
        responsibility for routing packets to the "real" destination.
        Proxy ARP allows a site to use a single {IP address} with two
        physical networks.  {Subnet}ting would normally be a better
        solution.

proxy gateway

        <networking> A computer and associated software which will
        pass on a request for a {URL} from a {World-Wide Web}
        {browser} such as {Mosaic} to an outside server and return the
        results.  This provides clients that are sealed off from the
        {Internet} a trusted agent that can access the Internet on
        their behalf.  Once the client is properly configured, its
        user should not be aware of the proxy gateway.

        A proxy gateway often runs on a {firewall machine}.  Its main
        purpose is to act as a barrier to the threat of {crackers}.
        It may also be used to hide the {IP addresses} of the
        computers inside the firewall from the {Internet} if they do
        not use official registered {network numbers}.

        Browsers such as {Mosaic} and {Netscape} can be configured to
        use a different proxy or no proxy for each URL {access method}
        (or "{scheme}") - {FTP}, {Gopher}, {WAIS}, {news}, and {HTTP}.

        {Mosaic and proxy gateways
        (http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/proxy-gateways.html)
}.

        Compare {proxy server}.

        (1997-06-08)

Proxy Server

        <software, security> {Microsoft}'s {proxy server} and {proxy
        gateway}, designed to provide extensible {firewall} and network
        security.  Proxy Server is part of {BackOffice}.

        (1999-09-17)

proxy server

        <programming, World-Wide Web> A process providing a {cache} of
        items available on other {servers} which are presumably slower
        or more expensive to access.

        This term is used particularly for a {World-Wide Web} server
        which accepts {URL}s with a special prefix.  When it receives
        a request for such a URL, it strips off the prefix and looks
        for the resulting URL in its local {cache}.  If found, it
        returns the document immediately, otherwise it fetches it from
        the remote server, saves a copy in the cache and returns it to
        the requester.  The cache will usually have an expiry
        {algorithm} which flushes documents according to their age,
        size, and access history.

        Compare {proxy gateway}.

        (1995-02-14)

PS

        {PostScript}

PS/2

        {IBM}'s second generation of {personal computer}s.  The PS/2
        series introduced three advances over the PC series: 3.5" 1.44
        megabyte {microfloppy} disks, {VGA} and {8514} graphics
        {display standard}s, and the {Micro Channel} bus architecture.
        The 3.5" disks and VGA can be easily installed on other PCs
        and will become the standard for new compatible computers.
        The Micro Channel bus allows for multiprocessing and less
        aggravation, but cannot be retrofitted to older PCs.

        PS/2 models 25 and 30 are {ISA}, other models have Micro
        Channel and {ESDI}.

        (1995-11-27)

PS 440

        The system implementation language for the Telefunken TR 440
        computer.  K. Lagally, ca 1974.

PSA

        Problem Statement Analizer.  See {PSL/PSA}.

PS-ALGOL

        Persistent ALGOL.  ca 1981, released 1985.  A derivative of
        S-ALGOL.  Database capability derived from the longevity of
        data.  "The PS- Algol Reference Manual", TR PPR-12-85, CS
        Dept, U Glasgow 1985.  IBM PC version available from CS Dept,
        U Strathclyde, Glasgow.

pSather

        <language> A parallel extension of {Sather} for a clustered
        {shared memory} model.  It features {thread}s synchronised by
        {monitor} objects ("gates"); {locality} {assertion}s and
        placement operators.

        There is an implementation for the {CM-5}.

        ["pSather Monitors: Design, Tutorial, Rationale and
        Implementation", J.A. Feldman et al, TR-91-031 and TR-93-028,
        ICSI, Berkeley, CA].

        (1995-03-13)

PSD

        <tool> {Portable Scheme Debugger}.

PSDN

        <communications> {Public Switched Data Network}.

pseudo

        <jargon> /soo'doh/ ({Usenet}) Pseudonym.

        1. An {electronic-mail} or {Usenet} persona adopted by a human
        for amusement value or as a means of avoiding negative
        repercussions of one's net.behaviour; a "nom de {Usenet}",
        often associated with forged postings designed to conceal
        message origins.  Perhaps the best-known and funniest hoax of
        this type is {BIFF}.

        2. Notionally, a {flamage}-generating {AI} program simulating
        a {Usenet} user.  Many flamers have been accused of actually
        being such entities, despite the fact that no AI program of
        the required sophistication yet exists.  However, in 1989
        there was a famous series of forged postings that used a
        phrase-frequency-based travesty generator to simulate the
        styles of several well-known flamers; it was based on large
        samples of their back postings (compare {Dissociated Press}).
        A significant number of people were fooled by the forgeries,
        and the debate over their authenticity was settled only when
        the perpetrator came forward to publicly admit the hoax.

        (1995-03-13)

Pseudocode

        A notation resembling a programming language but not intended
        for actual compilation.  It usually combines some of the
        structure of a programming language with an informal
        natural-language description of the computations to be carried
        out.  It is often produced by CASE systems as a basis for
        later hand coding.

pseudoprime

        A backgammon prime (six consecutive occupied points) with one
        point missing.  This term is an esoteric pun derived from a
        mathematical method that, rather than determining precisely
        whether a number is prime (has no divisors), uses a
        statistical technique to decide whether the number is
        "probably" prime.  A number that passes this test is called a
        pseudoprime.  The hacker backgammon usage stems from the idea
        that a pseudoprime is almost as good as a prime: it does the
        job of a prime until proven otherwise, and that probably won't
        happen.

pseudo-random number

        <programming> One of a sequence of numbers generated by some
        algorithm so as to have an even distribution over some range
        of values and minimal correlation between successive values.

        {Home (http://random.mat.sbg.ac.at/home.html)}

        (1995-04-21)

PseudoScheme

        A translator from {Scheme} to {Common Lisp} by Jonathan Rees
        <jar@cs.cornell.edu>.  Version 2.8.  It conforms to all of
        {R3RS} except {call/cc} and requires {Common Lisp}.  Runs on
        {Lucid}, {Symbolics CL}, {VAX Lisp}, {Explorer CL}.

        Mailing list: info-clscheme-request@mc.lcs.mit.edu.

        (1994-10-28)

pseudosuit

        /soo'doh-s[y]oot"/ A {suit} wannabee; a hacker who has decided
        that he wants to be in management or administration and begins
        wearing ties, sport coats, and (shudder!) suits voluntarily.
        It's his funeral.  See also {lobotomy}.

pseudo-tty

        {Berkeley} {Unix} networking device which appears to an
        {application program} as an ordinary terminal but which is in
        fact connected via the network to a process running on a
        different {host} or a windowing system.  Pseudo-ttys have a
        slave half and a control half.  The slave tty (/dev/ttyp*) is
        the device that user programs use and the control tty
        (/dev/ptyp*) is used by {daemon}s to talk to the net.

        (1994-11-08)

PSF

        {Print Services Facility}

PSI

        {Portable Scheme Interpreter}

Psion Organiser

        <computer> A popular {pocket computer} from the UK Company
        {Psion} plc.  The organiser uses a {graphical user interface}
        with windows, menus, icons and {dialog box}es.  There have
        been several versions so far: Series3a, Series3, HC, MC,
        OrgII.

        {Usenet} newsgroups: {news:comp.sys.psion},
        {news:comp.binaries.psion}.

        (1995-03-03)

PSK

        <communications> {Phase Shift Keying}.

PSL

        1. {Portable Standard Lisp}.

        2. Problem Statement Language.  See {PSL/PSA}.

PSL/PSA

        Problem Statement Language/Problem Statement Analyser.  A
        {CASE} system developed by D. Teichroew.  It allows
        computer-based development and analysis of a statement of
        requirements, and assistance during the design phase.

PSML

        Processor System Modeling Language.  Simulating computer
        systems design.  A preprocessor to SIMSCRIPT.  "Processor
        System Modeling - A Language and Simulation System",
        F. Pfisterer, Proc Symp on Simulation of Computer Systems (Aug
        1976).

PSN

        {Packet Switch Node}

PSTN

        {Public Switched Telephone Network}

psychedelicware

        /si:"k*-del"-ik-weir/ [UK] Synonym {display hack}.  See also
        {smoking clover}.

psyton

        <humour> /si:'ton/ (From {TMRC}) The elementary particle
        carrying the sinister force.  The probability of a process
        losing is proportional to the number of psytons falling on it.
        Psytons are generated by observers, which is why demos are
        more likely to fail when lots of people are watching.  This
        term appears to have been largely superseded by {bogon}; see
        also {quantum bogodynamics}.

        (1997-04-26)

pt

        1. <text, unit> {point}.

        2. <networking> The {country code} for Portugal.

        (1999-01-27)

P-TAC

        Parallel Three Address Code.

        {Kid} is a refinement of {P-TAC}, used as an intermediate
        language for {Id}.

        ["P-TAC: A Parallel Intermediate Language", Z. Ariola et al,
        Fourth Intl Conf Func Prog Langs and Comp Arch, ACM Sept
        1989].

ptc

        A {Pascal} to {C} translator.

        {(ftp://uxc.sco.uiuc.edu/languages/ptc)}

PTF

        {Program Temporary Fix}

Pthreads

        A library of pre-emptive thread routines (for {Ada}?), designed
        and implemented in the {PART} (POSIX / Ada-Runtime Project).
        Pthreads is compliant with {POSIX} 1003.4a Draft 6.

        Version 1.17 has been ported to {Sun-4}/{SunOS} 4.1.x.

        {(ftp://ftp.cs.fsu.edu/pub/PART/)}.  Mailing list:
        mueller@uzu.cs.fsu.edu ("Subject: subscribe-pthreads").
        E-mail: <pthreads-bugs@ada.cs.fsu.edu>.

        (1993-07-22)

PTI

        Portable Tool Interface: a standard such as PCTE, allowing
        interworking between different software tools via defined
        interfaces to the user and to the repository or object
        management system.

Ptolemy

        A flexible foundation for the specification, simulation, and
        rapid prototyping of systems.  It is an {object-oriented}
        framework within which diverse models of computation can
        co-exist and interact.  For example, using Ptolemy a
        {data-flow} system can be easily connected to a hardware
        simulator which in turn may be connected to a discrete-event
        system.  Because of this, Ptolemy can be used to model entire
        systems.  In addition, Ptolemy now has code generation
        capabilities.  From a {flow graph} description, Ptolemy can
        generate both {C} code and {DSP} {assembly code} for rapid
        prototyping.  Note that code generation is not yet complete,
        and is included in the current release for demonstration
        purposes only.

        Version 0.4.1 includes a graphical algorithm layout, code
        generator and simulator.  It requires {C++}, {C} and has been
        ported to {Sun-4}, {MIPS}/{Ultrix}; {DSP56001}, {DSP96002}.
        Ptolemy is an active research project.

        {(ftp://ptolemy.bekeley.edu/pub/ptolemy/)}.  Mailing list:
        ptolemy-hackers-request@ohm.berkeley.edu.  E-mail:
        <ptolemy@ohm.berkeley.edu>.

        (1993-04-22)

PTT

        {Post, Telephone and Telegraph administration}

PUB

        1. PUBlishing.  A 1972 text-formatting language for {TOPS-10},
        with syntax based on {SAIL}.  Influenced {TeX} and {Scribe}.
        ["PUB: The Document Compiler", Larry Tesler, Stanford AI Proj
        Op Note, Sept 1972].

        2. /pub, the top-level, publicly accessible directory on most
        {anonymous FTP} archives.  This is usually where the
        interesting files are.  See {pubic directory}.

pubic directory

        [NYU] (also "pube directory" /pyoob' d*-rek't*-ree/) The "pub"
        (public) directory on a machine that allows {FTP} access.  So
        called because it is the default location for {SEX} (software
        exchange).

public domain

        (PD) The total absence of {copyright} protection.  If
        something is "in the public domain" then anyone can copy it or
        use it in any way they wish.  The author has none of the
        exclusive rights which apply to a copyright work.

        The phrase "public domain" is often used incorrectly to refer
        to {freeware} or {shareware} (software which is copyrighted
        but is distributed without (advance) payment).  Public domain
        means no copyright -- no exclusive rights.  In fact the phrase
        "public domain" has no legal status at all in the UK.

        See also {archive site}, {careware}, {charityware},
        {copyleft}, {crippleware}, {guiltware}, {postcardware} and
        {-ware}.  Compare {payware}.

public domain software

        {public domain}

public-key cryptography

        {public-key encryption}

Public-Key Cryptography Standards

        <cryptography, standard> (PKCS) A set of {standards} for
        {public-key cryptography}, developed by {RSA Data Security,
        Inc.} in cooperation with an informal consortium, originally
        including {Apple}, {Microsoft}, {DEC}, {Lotus}, {Sun} and
        {MIT}.  The PKCS have been cited by the {OSI Implementers'
        Workshop} (OIW) as a method for implementation of {OSI}
        standards.

        PKCS includes both {algorithm}-specific and
        algorithm-independent implementation standards.  Many
        algorithms are supported, including {RSA} and {Diffie-Hellman}
        key exchange, however, only the latter two are specifically
        detailed.  PKCS also defines an algorithm-independent {syntax}
        for {digital signatures}, {digital envelopes}, and extended
        {digital certificates}; this enables someone implementing any
        cryptographic algorithm whatsoever to conform to a standard
        syntax, and thus achieve interoperability.

        E-mail: pkcs@rsa.com.

        (1999-02-16)

public-key encryption

        <cryptography> (PKE, Or "public-key cryptography") An
        {encryption} scheme, introduced by Diffie and Hellman in 1976,
        where each person gets a pair of keys, called the public key
        and the private key.  Each person's public key is published
        while the private key is kept secret.  Messages are encrypted
        using the intended recipient's public key and can only be
        decrypted using his private key.  This is often used in
        conjunction with a {digital signature}.

        The need for sender and receiver to share secret information
        (keys) via some secure channel is eliminated: all
        communications involve only public keys, and no private key is
        ever transmitted or shared.

        Public-key encryption can be used for {authentication},
        {confidentiality}, {integrity} and {non-repudiation}.

        {RSA encryption} is an example of a public-key cryptosystem.

        {alt.security FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/alt/security/top
.html)}.

        See also {knapsack problem}.

        (1995-03-27)

Public Switched Telephone Network

        <communications> (PSTN, T.70) The collection of interconnected
        systems operated by the various telephone companies and
        administrations ({telcos} and {PTTs}) around the world.  Also
        known as the Plain Old Telephone System (POTS) in contrast to
        {xDSL} and {ISDN} (not to mention other forms of {PANS}).

        The PSTN started as human-operated analogue circuit switching
        systems (plugboards), progressed through electromechanical
        switches.  By now this has almost completely been made
        digital, except for the final connection to the subscriber
        (the "last mile"): The signal coming out of the phone set is
        analogue.  It is usually transmitted over a {twisted pair
        cable} still as an analogue signal.  At the {telco} office
        this analogue signal is usually digitised, using 8000 samples
        per second and 8 bits per sample, yielding a 64 kb/s data
        stream ({DS0}).  Several such data streams are usually
        combined into a fatter stream: in the US 24 channels are
        combined into a {T1}, in Europe 30 [or 29?] channels are
        combined into an {E1} line.  This can later be further
        combined into larger chunks for transmission over
        high-bandwidth core trunks.  At the receiving end the channels
        are separated, the digital signals are converted back to
        analogue and delivered to the received phone.

        While all these conversions are inaudible when voice is
        transmitted over the phone lines it can make digital
        communication difficult.  Items of interest include {A-law} to
        {mu-law} conversion (and vice versa) on international calls;
        {robbed bit} signalling in North America (56 kbps <--> 64
        kbps); data {compression} to save {bandwidth} on long-haul
        trunks; signal processing such as echo suppression and voice
        signal enhancement such as AT&T TrueVoice.

        (1998-05-18)

puff

        <algorithm> To decompress data that has been crunched by
        {Huffman coding}.  At least one widely distributed Huffman
        decoder program was actually *named* "PUFF", but these days it
        is usually packaged with the encoder.

        Opposite: {huff}.

        (1996-10-16)

PUFFT

        ["The Purdue University Fast FORTRAN Translator", Saul Rosen
        et al, CACM 8(11):661-666 (Nov 1965)].

        (1995-01-05)

pull

        {pull media}

pull-down list

        <operating system> (Or "drop-down list") A {graphical user
        interface} component that allows the user to choose one (or
        sometimes more than one) item from a list.  The current choice
        is visible in a small rectangle and when the user clicks on
        it, a list of items is revealed below it.  The user can then
        click on one of these to make it the current choice and the
        list disappears.  In some cases, by holding down a modifier
        key such as Ctrl when clicking, the selection is added to (or
        removed from) the set of current choices rather than replacing
        it.

        (1999-09-25)

pull-down menu

        <operating system> (Or "drop-down menu", "pop-down menu") A
        {menu} in a {graphical user interface}, whose title is
        normally visible but whose contents are revealed only when the
        user activates it, normally by pressing the {mouse} button
        while the {pointer} is over the title, whereupon the menu
        items appear below the title.  The user may then select an
        item from the menu or click elsewhere, in either case the menu
        contents are hidden again.  A menu item is selected either by
        dragging the mouse from the menu title to the item and
        releasing or by clicking the title and then the item.

        When a pull-down menu appears in the main area of a window, as
        opposed to the {menu bar}, it may have a small,
        downward-pointing triangle to the right.

        Compare: {scrollable list}.

        (1999-09-22)

pull media

        <messaging> A model of media distribution were the bits of
        content have to be requested by the user, e.g. normal use of
        {HTTP} on the {World-Wide Web}.

        Opposite: "{push media}".

        (1997-04-10)

Pulse Code Modulation

        (PCM) A method by which an audio signal is represented as
        digital data.

        Virtually all digital audio systems use PCM, including, {CD},
        {DAT}, F1 format, 1630 format, DASH, DCC, and MD.  Many people
        get confused because "PCM" is also slang for Sony's F1 format
        which stores PCM digital audio on videotape.

        (1995-02-09)

pumpkin

        <jargon> A humourous term for the {token} - the object
        (notional or real) that gives its possessor (the "pumpking" or
        the "pumpkineer") exclusive access to something, e.g. applying
        {patches} to a master copy of {source} (for which the pumpkin
        is called a "patch pumpkin").

        Chip Salzenberg <chip@perl.com> wrote:

        David Croy once told me once that at a previous job, there was
        one tape drive and multiple systems that used it for backups.
        But instead of some high-tech exclusion software, they used a
        low-tech method to prevent multiple simultaneous backups: a
        stuffed pumpkin.  No one was allowed to make backups unless
        they had the "backup pumpkin".

        (1999-02-23)

pumpkineer

        {pumpkin}

pumpking

        {pumpkin}

punch card

        {punched card}

punched card

        <storage, history> (Or "punch card") The signature medium of
        computing's Stone Age, now long obsolete outside of a few
        {legacy systems}.  The punched card actually predates
        computers considerably, originating in 1801 as a control
        device for {Jacquard looms}.  {Charles Babbage} used them as a
        data and program storage medium for his {Analytical Engine}:

        "To those who are acquainted with the principles of the
        Jacquard loom, and who are also familiar with analytical
        formul, a general idea of the means by which the Engine
        executes its operations may be obtained without much
        difficulty.  In the Exhibition of 1862 there were many
        splendid examples of such looms. [...] These patterns are then
        sent to a peculiar artist, who, by means of a certain machine,
        punches holes in a set of pasteboard cards in such a manner
        that when those cards are placed in a Jacquard loom, it will
        then weave upon its produce the exact pattern designed by the
        artist.  [...]  The analogy of the Analytical Engine with this
        well-known process is nearly perfect.  There are therefore two
        sets of cards, the first to direct the nature of the
        operations to be performed -- these are called operation
        cards: the other to direct the particular variables on which
        those cards are required to operate -- these latter are called
        variable cards.  Now the symbol of each variable or constant,
        is placed at the top of a column capable of containing any
        required number of digits."

        -- from Chapter 8 of Charles Babbage's "Passages from the Life
        of a Philosopher", 1864.

        The version patented by {Herman Hollerith} and used with
        mechanical tabulating machines in the 1890 US Census was a
        piece of cardboard about 90 mm by 215 mm.  There is a
        widespread myth that it was designed to fit in the currency
        trays used for that era's larger dollar bills, but recent
        investigations have falsified this.

        {IBM} (which originated as a tabulating-machine manufacturer)
        married the punched card to computers, encoding binary
        information as patterns of small rectangular holes; one
        character per column, 80 columns per card.  Other coding
        schemes, sizes of card, and hole shapes were tried at various
        times.

        The 80-column width of most character terminals is a legacy of
        the IBM punched card; so is the size of the quick-reference
        cards distributed with many varieties of computers even today.

        See {chad}, {chad box}, {eighty-column mind}, {green card},
        {dusty deck}, {lace card}, {card walloper}.

        (1998-10-19)

punt

        (From the punch line of an old joke referring to American
        football: "Drop back 15 yards and punt!") 1. To give up,
        typically without any intention of retrying.  "Let's punt the
        movie tonight."  "I was going to hack all night to get this
        feature in, but I decided to punt" may mean that you've
        decided not to stay up all night, and may also mean you're not
        ever even going to put in the feature.

        2. More specifically, to give up on figuring out what the
        {Right Thing} is and resort to an inefficient hack.

        3. A design decision to defer solving a problem, typically
        because one cannot define what is desirable sufficiently well
        to frame an algorithmic solution.  "No way to know what the
        right form to dump the graph in is - we'll punt that for
        now."

        4. To hand a tricky implementation problem off to some other
        section of the design.  "It's too hard to get the compiler to
        do that; let's punt to the run-time system."

Purdue Compiler-Construction Tool Set

        (PCCTS) A highly integrated lexical analser generator and
        parser generator by Terence J. Parr <parrt@acm.org>, Will
        E. Cohen <cohenw@ecn.purdue.edu> and Henry G. Dietz
        <hankd@ecn.purdue.edu>.  ANTLR (ANother Tool for Language
        Recognition) corresponds to YACC and DLG (DFA-based Lexical
        analyser Generator) functions like {LEX}.  PCCTS has many
        additional features which make it easier to use for a wide
        range of translation problems.  PCCTS {grammar}s contain
        specifications for lexical and syntactic analysis with
        selective {backtracking} ("infinite lookahead"), {semantic
        predicate}s, intermediate-form construction and error
        reporting.  Rules may employ {Extended BNF} (EBNF) grammar
        constructs and may define parameters, return values and have
        {local variable}s.  Languages described in PCCTS are
        recognised via {LLk} parsers constructed in pure,
        human-readable, {C} code.  Selective backtracking is available
        to handle non-LL(k) constructs.  PCCTS {parser}s may be
        compiled with a {C++} compiler.  PCCTS also includes the
        {SORCERER} tree parser generator.

        The current version, 1.10, runs under {Unix}, {MS-DOS}, {OS/2}
        and {Macintosh} and is very portable.

        {(ftp://marvin.ecn.purdue.edu/pub/pccts/1.10)}

        {UK FTP (ftp://src.doc.ic.ac.uk/
        computing/programming/languages/tools/pccts/)}.  {Macintosh
        FTP (ftp://maya.dei.unipd.it/pub/mac/)}.

        Mailing list: pccts-users-request@ahpcrc.umn.edu ("subscribe
        pccts-users your_name" in the message body).

        E-mail: Terence J. Parr <parrt@acm.org>, Roberto Avanzi
        <mocenigo@maya.dei.unipd.it> (Mac port).

        (1993-09-14)

Purdue University

        {(http://www.purdue.edu/)}

        (1995-01-05)

pure functional language

        {purely functional language}

pure lambda-calculus

        {Lambda-calculus} with no constants, only functions expressed
        as {lambda abstraction}s.

        (1994-10-27)

PureLink

        An incremental linker from {Pure Software}.

Pure Lisp

        A {purely functional language} derived from {Lisp} by
        excluding any feature which causes {side-effect}s.

purely functional language

        <language> A {functional language} with no {side-effect}s.
        Program execution consists of evaluation of an expression and
        all subexpressions are {referentially transparent}.

        (1996-07-11)

Purify

        A debugging tool from Pure Software.

Purple Book

        1. <publication> The "System V Interface Definition".  The
        covers of the first editions were an amazingly nauseating
        shade of off-lavender.

        2. <publication> The {Wizard Book}.

        See also {book titles}.

purple wire

        <jargon, hardware> Wire installed by {IBM} Field Engineers to
        work around problems discovered during testing or debugging.
        These are called "purple wires" even when (as is frequently
        the case) they are yellow.

        Compare {blue wire}, {yellow wire}, and {red wire}.

        (1995-04-11)

Purveyor

        <World-Wide Web> A {World-Wide Web} {server} for {Windows NT}
        and {Windows 95} (when available).

        {Home (http://www.process.com/)}

        E-mail: <info@process.com>.

        (1995-04-11)

push

        1. <programming> To put something onto a {stack} or {pdl}.

        Opposite: "{pop}".

        2. <communications> {push media}.

        (1997-04-10)

push-button

        <electronics> A roughly fingertip-sized plastic cover attached
        to a spring-loaded, normally-open switch, which, when pressed,
        closes the switch.  Typical examples are the keys on a
        computer or calculator keyboard and {mouse} buttons.

        (1997-07-07)

Push Down List

        <programming> (PDL) In {ITS} days, the preferred {MIT}ism for
        {stack}.

        See {overflow pdl}.

        (1995-12-21)

push media

        <messaging> A model of media distribution where items of
        content are sent to the user (viewer, listener, etc.) in a
        sequence, and at a rate, determined by a {server} to which the
        user has connected.  This contrasts with {pull media} where
        the user requests each item individually.  Push media usually
        entail some notion of a "channel" which the user selects and
        which delivers a particular kind of content.

        Broadcast television is (for the most part) the prototypical
        example of push media: you turn on the TV set, select a
        channel and shows and commercials stream out until you turn
        the set off.

        By contrast, the {World-Wide Web} is (mostly) the prototypical
        example of pull media: each "page", each bit of content, comes
        to the user only if he requests it; put down the keyboard and
        the mouse, and everything stops.

        At the time of writing (April 1997), much effort is being put
        into blurring the line between push media and pull media.
        Most of this is aimed at bringing more push media to the
        {Internet}, mainly as a way to disseminate advertising, since
        telling people about products they didn't know they wanted is
        very difficult in a strict pull media model.

        These emergent forms of push media are generally variations on
        targeted advertising mixed in with bits of useful content.
        "At home on your computer, the same system will run soothing
        {screensavers} underneath regular news flashes, all while
        keeping track, in one corner, of press releases from companies
        whose stocks you own.  With frequent commercial messages, of
        course."  (Wired, March 1997, page 12).

        {Pointcast (http://www.pointcast.com)} is probably the best
        known push system on the Internet at the time of writing.

        As part of the eternal desire to apply a fun new words to
        boring old things, "push" is occasionally used to mean nothing
        more than email {spam}.

        (1997-04-10)

PVC

        {Permanent Virtual Circuit}

PVM

        {Parallel Virtual Machine}

PV-WAVE

        <graphics, tool> (Precision Visuals' Workstation Analysis and
        Visualization Environment) Interactive scientific
        {visualisation} software originally from Precision Visuals,
        Inc., but now owned by Visual Numerics, Inc. (VNI).

        (1999-07-18)

pw

        <networking> The {country code} for Palau.

        (1999-01-27)

py

        <networking> The {country code} for Paraguay.

        (1999-01-27)

Python

        1. <language> A simple, high-level interpreted language by
        Guido van Rossum <guido@cwi.nl>, 1991.  Python combines ideas
        from {ABC}, {C}, {Modula-3} and {Icon}.  It bridges the gap
        between {C} and {shell} programming, making it suitable for
        rapid prototyping or as an extension language for C
        applications.  It is {object-oriented} and supports packages,
        {modules}, {classes}, user-defined exceptions, a good C
        interface, dynamic loading of C modules and has no arbitrary
        restrictions.

        Python is available, among others, for {Unix}, {Windows},
        {DOS}, {OS/2}, {Macintosh}, and {Amoeba}.  Current version is
        1.4, including the {interpreter}, libraries, and
        documentation.

        {Python home page (http://www.python.org/)}.

        {Usenet} newsgroup: {news:comp.lang.python}.

        2. <compiler> A {compiler} for {CMU Common LISP}.  Python is
        more sophisticated than other {Common Lisp} compilers.  It
        produces better code and is easier to use.  The programming
        environment based on the {Hemlock} editor is better integrated
        than {GNU} {Emacs} based environments.

        (1997-02-27)

Q

        Very high level language based on generalised (lazy)
        sequences.  {Lexical scope}, some support for logical and
        constraint programming.  Macros.  Implemented in C++.

        {(ftp://ftp.cygnus.com/pub/)}

        (Also small subsets of Common Lisp and Scheme)

        Version ? 1

        interpreter, compiler framework, libraries, documentation

        Per Bothner <bothner@cygnus.com>

        {(ftp://ftp.cygnus.com/pub/Q/)}

        Q is a very high-level programming language, and a test-bed
        for programming language ideas.  Where APL uses arrays to
        explicit looping, Q uses generalised sequences (finite or
        infinite, stored or calculated on demand).  It has {lexical
        scope}, and some support for logical and constraint
        programming.  The syntax was designed for convenient
        interactive use.  A macro facility together with primitives to
        run programs is used to make an interactive command language
        with full shell features.  The Q system is written in C++, and
        its run-time code may be useful to people implementing other
        languages.  ports: Linux and SUN 4 portability: Should work on
        32-bit Unix-like systems

        (1993/06/07)

QA

        {Quality Assurance}

qa

        <networking> The {country code} for Qatar.

        (1999-01-27)

QA4

        Question-answering language.  A procedural calculus for
        intuitive reasoning.  A LISP-based pattern-matching language
        for theorem proving.  "QA4, A Language for Writing
        Problem-Solving Programs", J.F. Rulifson et al, Proc IFIP
        Congress 1968.

QAM

        1. {Quadrature Amplitude Modulation}.

        2. {Quality Assurance Management}.

Qbasic

        <language> Quick basic.

        A version of {BASIC} from {Microsoft}, later known as
        {MS-BASIC}.

        (1995-03-16)

QBE

        Query By Example.  A {user-friendly} {query language} by Moshe
        Zloof of {IBM}, 1975.

        ["QBE: A Language for Office and Business Automation", M.M.
        Zloof, Computer pp.13-22 (May 1981)].

qdjanus

        A {Janus}-to-{Prolog} compiler by Saumya Debray
        <debray@cs.arizona.edu>.  It is meant to be used with {Sicstus
        Prolog} and is mostly compliant with "Programming in Janus" by
        Saraswat, Kahn, and Levy.  Current version: 1.3.

        {(ftp://cs.arizona.edu/janus/qdjanus/)}

        (1992-05-18)

QDOS

        <operating system> The Sinclair {QL}'s proprietary {operating
        system}.  The origin of the name is uncertain (a weak pun on
        kudos, perhaps, as {Unix} was on {Multics}).  There was
        another OS around from the birth of personal computers called
        Q.D.O.S. - Quick And Dirty Operating System.  QDOS might also
        stand for QL Data/Disk/Drive/Device Operating System.

        QDOS did the usual OS sorts of things, as well as
        multitasking.  It was unusual in several ways.  It treated all
        devices (serial ports, mouse ports, screen, {microdrive},
        {disk drive}, keyboard, etc.) uniformly, so you could print a
        text file direct to disk or save a binary to the screen for
        example.

        Also logical channels could be assigned to particular physical
        devices.  Output directed to a channel would go to the
        appropriate in/output.  This also meant you could have many
        windows on screen (the QL booted up from internal ROMs with 3
        windows - command line, output and program listing) all
        independent to some extent.  Channels could be redirected
        without affecting the way the process sent or received the
        data.

        (1996-07-22)

QEMM386

        <software, storage> A combined {expanded memory manager} and
        {extended memory manager} for {IBM PCs} with an {Intel 80386}
        or higher processor from {Quarterdeck Office Systems}.
        QEMM386 can also act as an {UMB} provider and an {A20
        handler}.

        (1996-01-10)

QIC

        {Quarter-Inch Cartridge}

QL

        <computer> (Quantum Leap) Sir {Clive Sinclair}'s first
        {Motorola 68008}-based {personal computer}, developed from
        around 1981 and released about 1983.  The QL ran Sinclair's
        {QDOS} {operating system} which was the first {multitasking}
        OS on a home computer, though few programmers used this
        feature.  It had a structured, extended {BASIC} and a suite of
        integrated {application program}s written by {Psion}.  It
        featured innovative "{microdrive}s" which were random access
        tape drives.  It was not a success.

        The microdrives were innovative but probably a mistake.
        Though reliable and quite quick, they sounded like they were
        going to jam and explode, releasing a shower of plastic
        shavings and tape into your face.

        The QL and QDOS only supported two graphics modes - ominously
        named high res and low res.  High res had four (fixed) colours
        at a resolution of 512 by 256 {pixels}.  Low res had 8 colours
        (black, blue, red, magenta, green, cyan, yellow, white) plus a
        flash mode with 256 by 256 pixels.  The sound was next to
        useless - single channel single oscillator with various
        parameters for fuzz, pitch change.  There was one internal
        {font}, scalable to 2 heights and 3 widths.

        Peripherals and enhancements included a {GUI} on a plug-in
        {ROM}, accelerator cards ({Motorola 68020}, 4 MB RAM), {floppy
        disks} and {hard disks}.

        In 1996 there is still some interest in the QL, spread by the
        Internet of course.  {Emulation} software, {source code}, "The
        QL Hackers Journal" and similar are still available, and many
        QLs are on the net.

        {(http://www.imaginet.fr/~godefroy/english)}.

        (1996-08-01)

Qlambda

        <language> A {LISP} by {Richard Gabriel} and {John McCarthy}.

        ["Queue-based Multi-processing Lisp", R. Gabriel &
        J. McCarthy, Proc 1984 Symp Lisp and Functional Prog,
        pp. 25-44].

        (1999-10-12)

QLISP

        1. SRI 1973.  General problem solving, influenced by PLANNER.
        QA4 features merged with INTERLISP.

        ["QLISP - A Language for the Interactive Development of
        Complex Systems", E. Sacerdoti et al, NCC 45:349-356, AFIPS,
        1976].

        2. A parallel LISP.

        ["Qlisp", R. Gabriel et al in Parallel Computation and
        Computers for AI, J. Kowalik ed, 1988, pp.63-89].

        (1999-10-12)

QLOG

        A version of {Prolog} implemented in {Lisp} which allows
        Prolog programs to call Lisp and vice versa.

        ["QLOG - The Programming Environment for Prolog in LISP",
        H.J. Komorowski in Logic Prgramming, K.L. Clark et al eds,
        Academic Press 1982].

        (1995-01-25)

QMW

        {Queen Mary and Westfield College}

Q'NIAL

        A portable {incremental compiler} for {NIAL}, written in {C}
        at {Queen's University}, Canada.

        There aree versions for {Unix} and {MS-DOS}, from {NIAL
        Systems} Ltd.

        ["The Q'NIAL Reference Manual", M.A. Jenkins, Queen's U
        Report, Dec 1983].

        (1995-01-25)

QNX

        A {realtime}, network distributed, {POSIX}-certified,
        {microkernel}, multi-user, {multitasking}, {ROMable},
        {fault-tolerant}, embeddable {operating system} that supports
        {TCP/IP}, {NFS}, {FTP}, the {X Window System}, {Microsoft
        Windows} as a guest process, {Ethernet}, {Token Ring},
        {Arcnet} and {Watcom} {ANSI C}/{C++}.  Support for {Pentium},
        {486}, {386}, {286}, {80x87}.  Developed and distributed by
        QNX Software Systems, Ltd.

        E-mail: Dan Hildebrand <danh@qnx.com>.

        {Papers (ftp://ftp.cse.ucsc.edu/pub/qnx/qnx-paper.ps.Z)}
        (128.114.134.19).

        {Usenet} newsgroup: {news:comp.os.qnx}.

        (1995-03-13)

QoS

        {Quality of service}

QPE

        Two-dimensional pictorial query language.  "Pictorial
        Information Systems", S.K. Chang et al eds, Springer 1980.

        Q-systems.  A. Colmerauer, 1969.  A rewrite system with
        one-way unification, used for English-French translation.  It
        led to Prolog.  "The Birth of Prolog" A. Colmerauer et al,
        SIGPLAN Notices 28(3):37-52 (March 1993).

QT-OBJECTS

        A library by Michael Travers <mt@media.mit.edu> and others
        providing an interface between {MCL} and {QuickTime}.

        (1992-12-20)

QTRADER

        <application> Analytical software for stock and commodity
        trading, released in July 1995 by {Caribou CodeWorks}.

        QTRADER allows dynamic automated analysis of current trends
        and features "Paper Trade" plotting, as well as "TradeSignal
        Bands" and "StudyMatrix" filter to screen potential trades.
        Projected ranges are handled with a "Tomorrow's Bar".

        QTRADER version 3.0 runs on {IBM PC}-compatibles, a
        {Macintosh} version is not available until late 1996.

        {Demo copy (http://www.winternet.com/~jottis)}.
        {(ftp://ftp.winternet.com/users/jottis)}.

        (1995-11-05)

quad

        1. Two bits; synonym for {quarter}, {crumb}, {tayste}.

        2. A four-pack of anything (compare {hex}).

        3. The rectangle or box glyph used in the APL language for
        various arcane purposes mostly related to I/O.

        Former Ivy-Leaguers and Oxford types are said to associate it
        with nostalgic memories of dear old University (short for
        "quadrangle").

Quadralay Corporation

        Developers of {GWHIS}.  Director of Technical Marketing: Brian
        Combs <combs@quadralay.com>.

        {(http://www.quadralay.com)}.  {(ftp://ftp.quadralay.com/)}.
        Telephone: +1 512-346-9199.  Fax: +1 512-346-8990.

Quadrature Amplitude Modulation

        (QAM) A method for encoding digital data in an analog signal
        in which each combination of phase and amplitude represents
        one of sixteen four bit patterns.  This is required for fax
        transmission at 9600 bits per second.

        (1995-02-02)

quadruple bucky

        Obsolete. 1. On an MIT {space-cadet keyboard}, use of all four
        of the shifting keys (control, meta, hyper, and super) while
        typing a character key.

        2. On a Stanford or MIT keyboard in {raw mode}, use of four
        shift keys while typing a fifth character, where the four
        shift keys are the control and meta keys on *both* sides of
        the keyboard.  This was very difficult to do!  One accepted
        technique was to press the left-control and left-meta keys
        with your left hand, the right-control and right-meta keys
        with your right hand, and the fifth key with your nose.

        Quadruple-bucky combinations were very seldom used in
        practice, because when one invented a new command one usually
        assigned it to some character that was easier to type.  If you
        want to imply that a program has ridiculously many commands or
        features, you can say something like: "Oh, the command that
        makes it spin the tapes while whistling Beethoven's Fifth
        Symphony is quadruple-bucky-cokebottle."  See {double bucky},
        {bucky bits}, {cokebottle}.

Quake

        A string-oriented language designed to support the
        construction of {Modula-3} programs from {module}s, interfaces
        and libraries.  Written by Stephen Harrison of DEC SRC, 1993.

Qualcomm

        <company> A California-based technology company; their primary
        product is the {OMNITRACS} tractor-trailer-tracking system.
        They also develop the free and commercial versions of
        {Eudora} for {Macintosh} and {IBM PC}.

        (1995-10-05)

quality

        The totality of features and characteristics of a product or
        service that bear on its ability to satisfy stated or implied
        needs.  Not to be mistaken for "degree of excellence" or
        "fitness for use" which meet only part of the definition.

        [{ISO8402}].

        (1995-11-10)

Quality Assurance

        <testing> (QA) A planned and systematic pattern of all actions
        necessary to provide adequate confidence that the product
        optimally fulfils customer's expectations.

        (1998-01-07)

Quality Control

        <testing> The assessment of product compliance.  Independently
        finding deficiencies assures compliance of the product with
        stated requirements.

        (1998-01-07)

Quality of service

        <communications, networking> (QoS) The performance properties
        of a network service, possibly including {throughput},
        {transit delay}, {priority}.  Some {protocols} allow {packets}
        or {streams} to include QoS requirements.

        (1998-07-30)

Quality Systems & Software Ltd.

        <company> The company which produced the {DOORS} requirements
        engineering tool.  They also provide consultancy as
        Requirements Engineering Ltd.

        {Home (http://www.qss.co.uk/)}

        E-mail: Ian Alexander <iany@easynet.co.uk>, Amanda
        Haisman-Baker <100023.44@compuserve.com>.

        (1995-11-11)

quantifier

        An operator in mathematics and logic specifying for which
        values of a variable a formula is true.  Universally
        quantified means "for all values" (written with an inverted A,
        {LaTeX} \forall) and existentially quantified means "there
        exists some value" (written with a reversed E, {LaTeX}
        \exists).  To be unambiguous, the set to which the values of
        the variable belong should be specified, though this is often
        omitted when it is clear from the context.  E.g.

                Forall x . P(x)  <=>  not (Exists x . not P(x))

        meaning that any x (in some unspecified set) has property P
        which is equivalent to saying that there does not exist any x
        which does not have the property.

        If a variable is not quantified then it is a {free variable}.
        In {logic programming} this usually means that it is actually
        universally quantified.

        See also {first order logic}.

Quantify

        A performance analysis tool from {Pure Software}.

quantum

        {time slice}

quantum bogodynamics

        /kwon'tm boh"goh-di:-nam"iks/ A theory that characterises the
        universe in terms of {bogon} sources (such as politicians,
        used-car salesmen, TV evangelists, and {suit}s in general),
        bogon sinks (such as taxpayers and computers), and bogosity
        potential fields.  Bogon absorption causes human beings to
        behave mindlessly and machines to fail (and may also cause
        both to emit secondary bogons); however, the precise mechanics
        of bogon-{computron} interaction are not yet understood.

        Quantum bogodynamics is most often invoked to explain the
        sharp increase in hardware and software failures in the
        presence of suits; the latter emit bogons, which the former
        absorb.

        (1994-11-02)

quantum computer

        <computer> A type of computer which uses the ability of
        quantum systems, such as a collection of atoms, to be in many
        different states at once.  In theory, such superpositions
        allow the computer to perform many different computations
        simultaneously.  This capability is combined with interference
        among the states to produce answers to some problems, such as
        factoring integers, much more rapidly than is possible with
        conventional computers.  In practice, such machines have not
        yet been built due to their extreme sensitivity to noise.

        {Oxford University (http://eve.physics.ox.ac.uk/QChome.html)},
        {Stanford University (http://feynman.stanford.edu/qcomp/)}.

        A {quantum search algorithm
        (ftp://parcftp.xerox.com/pub/dynamics/quantum.html)} for
        {constraint satisfaction} problems exhibits the phase
        transition for {NP-complete} problems.

        (1997-02-11)

quantum computing

        {quantum computer}

quarter

        Two bits.  This in turn comes from the "pieces of eight" famed
        in pirate movies - Spanish silver crowns that could be broken
        into eight pie-slice-shaped "bits" to make change.  Early in
        American history the Spanish coin was considered equal to a
        dollar, so each of these "bits" was considered worth 12.5
        cents.  Usage: rare.

        Synonyms: {tayste}, {crumb}, {quad}.

        See also {nickle}, {nibble}, {byte}, {dynner}.

        (1995-01-25)

Quarter Inch Cartridge

        <storage> /kwik/ (QIC) a type of {magnetic tape} and {tape
        drive}.  Development standards for QIC make it possible for
        tapes written on one QIC drive to be read on another.  QIC
        drives are made to work with different lengths of tape.  The
        model number of the drive consists of QIC followed by a number
        which indicates the drives tape capacity in {megabytes} (MB).

        (1996-12-09)

Quay Financial Software

        {CSK Software}

QUEASY

        An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-25)

Queen Mary and Westfield College

        (QMW) One of the largest of the multi-faculty schools of the
        {University of London}.  QMW has some 6000 students and over
        600 teaching and research staff organised into seven
        faculties.

        QMW was one of the first colleges in the University of London
        to develop fully the course-unit, or modular, approach to
        degree programmes.  Cross faculty courses are encouraged and
        the physical proximity of all the College buildings is a major
        factor in enabling students to adopt an interdisciplinary
        approach to their studies.

        {Home (http://www.qmw.ac.uk/)}

        (1995-01-25)

Queens Problem

        {Eight Queens Puzzle}

Queens Puzzle

        {Eight Queens Puzzle}

Queen's University

        A Canadian University.  Source of {GVL}, {NIAL}, {Pasqual},
        {Q'NIAL} and {TXL}.

        {(ftp://ftp.qucis.queensu.ca/pub/)}

        (1994-10-20)

QUEL

        The {query language} used by the {database management system}
        {INGRES}.

        (1995-01-31)

query

        1. <database, information science> A user's (or {agent}'s)
        request for information, generally as a formal request to a
        {database} or {search engine}.

        {SQL} is the most common {database query language}.

        2. <character> {question mark}.

        (1997-04-09)

query expansion

        <information science> Adding {search terms} to a user's
        search.  Query expansion is the process of a {search engine}
        adding {search terms} to a user's {weighted search}.  The
        intent is to to improve {precision} and/or {recall}.  The
        additional terms may be taken from a {thesaurus}.  For example
        a search for "car" may be expanded to: car cars auto auto
        automobile automobiles.
        
        The additional terms may also be taken from documents
        that the user has specified as being relevant; this is the
        basis for the "more like this" feature of some search engines.
        
        The extra terms can have positive or negative weights.

        (1999-08-27)

ques

        {question mark}

Quest

        1. A language designed for its simple denotational semantics.
        "The Denotational Semantics of Programming Languages",
        R. Tennent, CACM 19(8):437-453 (Aug 1976).

        2. QUantifiers and SubTypes.  Language with a sophisticated
        type system.  Just as types classify values, "kinds" classify
        types and type operators.  Explicit universal and existential
        quantification over types, type operators, and subtypes.
        Subtyping is defined inductively on all type constructions,
        including higher-order functions and abstract types.
        User-definable higher-order type operators.

        "Typeful Programming", Luca Cardelli <luca@src.dec.com>, RR
        45, DEC SRC 1989.

        Implemented in Modula-3.

        {(ftp://gatekeeper.dec.com/pub/DEC/Quest/quest12A.tar.Z)}

        3. <tool, text> A {multimedia} {authoring} system.  Quest has
        been available for {MS-DOS} for some time.  Version 3.5 for
        {Microsoft Windows} was released around March 1995.  It
        features an {Authorware}-style {flowchart} system with an
        {ANSI-C} {script language}.

        (1995-04-02)

question mark

        <character> "?", {ASCII} character 63.

        Common names: query; {ITU-T}: question mark; {ques}.  Rare:
        whatmark; {INTERCAL}: what; wildchar; huh; hook; buttonhook;
        hunchback.

        (1995-04-02)

queue

        <programming> A {first-in first-out} data structure used to
        sequence multiple demands for a resource such as a {printer},
        {processor} or communications channel.  Objects are added to
        the tail of the queue and taken off the head.

        A typical use of queues in an {operating system} involves a
        user command which places something on a queue, e.g. a file on
        a printer queue or a job on a job queue, and a {background}
        process or "{demon}" which takes things off and processes them
        (e.g. prints or executes them).  Another common use is to pass
        data between an {interrupt handler} and a user process.

        (1995-05-11)

QUICK

        <language> An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-05-11)

quick-and-dirty

        <jargon, programming> Describes a {crock} put together under
        time or user pressure.  Used especially when you want to
        convey that you think the fast way might lead to trouble
        further down the road.  "I can have a quick-and-dirty fix in
        place tonight, but I'll have to rewrite the whole module to
        solve the underlying design problem."

        See also {kluge}.

        (1995-05-11)

QuickDraw

        <library, graphics> Part of the software in the {Apple
        Macintosh}'s {ROM} that performs graphics operations.

        (1995-05-11)

Quicksilver

        <database> A {dBASE}-like compiler for {MS-DOS} from
        {WordTech}.

        (1995-05-11)

Quicksort

        A sorting {algorithm} with O(n log n) average time
        {complexity}.

        One element, x of the list to be sorted is chosen and the
        other elements are split into those elements less than x and
        those greater than or equal to x.  These two lists are then
        sorted {recursive}ly using the same algorithm until there is
        only one element in each list, at which point the sublists are
        recursively recombined in order yielding the sorted list.

        This can be written in {Haskell}:

                qsort               :: Ord a => [a] -> [a]
                qsort []             = []
                qsort (x:xs)         = qsort [ u | u<-xs, u<x ] ++
                                       [ x ] ++
                                       qsort [ u | u<-xs, u>=x ]

        [Mark Jones, Gofer prelude.]

Quicktime

        <graphics, standard, file format, product> {Apple Computer}'s
        standard for integrating {full-motion video} and digitised
        sound into {application program}s.

        [Details?  Archives?]

        (1995-04-21)

QUIKSCRIPT

        Simulation language derived from {SIMSCRIPT}, based on
        {20-GATE}.

        ["Quikscript - A Simpscript-like Language for the G-20",
        F.M. Tonge et al, CACM 8(6):350-354 (June 1965)].

QUIKTRAN

        FORTRAN-like, interactive with debugging facilities.  Sammet
        1969, p.226.

QUIN

        Pyle 1965.  Interactive language.  Sammet 1969, p.691.

quine

        <programming> /kwi:n/ (After the logician Willard V. Quine,
        via Douglas Hofstadter) A program that generates a copy of its
        own source text as its complete output.  Devising the shortest
        possible quine in some given programming language is a common
        hackish amusement.

        In most interpreted languages, any constant, e.g. 42, is a
        quine because it "evaluates to itself".  In certain {Lisp}
        dialects (e.g. {Emacs Lisp}), the symbols "nil" and "t" are
        "self-quoting", i.e. they are both a symbol and also the value
        of that symbol.  In some dialects, the function-forming
        function symbol, "lambda" is self-quoting so that, when
        applied to some arguments, it returns itself applied to those
        arguments.  Here is a quine in {Lisp} using this idea:

         ((lambda (x) (list x x)) (lambda (x) (list x x)))

        Compare this to the {lambda expression}:

                (\ x . x x) (\ x . x x)

        which reproduces itself after one step of {beta reduction}.
        This is simply the result of applying the {combinator} {fix}
        to the {identity function}.  In fact any quine can be
        considered as a {fixed point} of the language's evaluation
        mechanism.

        We can write this in {Lisp}:

         ((lambda (x) (funcall x x)) (lambda (x) (funcall x x)))

        where "funcall" applies its first argument to the rest of its
        arguments, but evaluation of this expression will never
        terminate so it cannot be called a quine.

        Here is a more complex version of the above Lisp quine, which
        will work in Scheme and other Lisps where "lambda" is not
        self-quoting:

         ((lambda (x)
           (list x (list (quote quote) x)))
          (quote
             (lambda (x)
               (list x (list (quote quote) x)))))

        It's relatively easy to write quines in other languages such
        as {PostScript} which readily handle programs as data; much
        harder (and thus more challenging!) in languages like {C}
        which do not.  Here is a classic {C} quine for {ASCII}
        machines:

         char*f="char*f=%c%s%c;main() {printf(f,34,f,34,10);}%c";
         main(){printf(f,34,f,34,10);}

        For excruciatingly exact quinishness, remove the interior line
        break.  Some infamous {Obfuscated C Contest} entries have been
        quines that reproduced in exotic ways.

        {Ken Thompson}'s {back door} involved an interesting variant
        of a quine - a compiler which reproduced part of itself when
        compiling (a version of) itself.

        (1995-04-25)

Quintec-Objects

        Based on {Quintec Prolog} (not {Quintus}).  British.

quintillion

        10^30 in Europe (this is called a {nonillion} in the United
        States and Canada).

        10^18 in the United States and Canada (this is called a
        trillion in Europe).

        [Collins dictionary].

Quintus Prolog

        <language, product> A version of {Prolog} developed by
        {Quintus}.  Development of Quintus Prolog had transferred to
        the {Swedish Institute of Computer Science} by December 1998.

        {(ftp://ftp.quintus.com/)}.

        Telephone: +1 (800) 542 1283.

        [More details?  Features?]

        (1998-12-12)

quote chapter and verse

        [by analogy with the mainstream phrase] To cite a relevant
        excerpt from an appropriate {bible}.  "I don't care if "rn"
        gets it wrong; "Followup-To: poster" is explicitly permitted
        by {RFC} 1036.  I'll quote chapter and verse if you don't
        believe me."  See also {legalese}, {language lawyer}, {RTFS}
        (sense 2).

quotient

        The number obtained by dividing one number (the "numerator")
        by another (the "denominator").  If both numbers are
        {rational} then the result will also be rational.

Qu-Prolog

        An extension of {Prolog} which performs {meta-level
        computation}s over {object language}s, such as {predicate
        calculi} and {lambda-calculi}, which have object-level
        variables, and {quantifier}s that create local {scope}s for
        those variables. Qu-Prolog is well suited as an implementation
        language for {theorem prover}s and support notations typically
        found in texts on mathematics and logic.

Quty

        A functional plus logic language.  "Quty: A Functional
        Language Based on Unification", M. Sato et al, in Conf. Fifth
        Gen. Computer Systems, ICOT 1984, pp.157-165.

quux

        /kwuhks/ [Mythically, from the Latin semi-deponent verb quuxo,
        quuxare, quuxandum iri; noun form variously "quux" (plural
        "quuces", anglicised to "quuxes") and "quuxu" (genitive plural
        is "quuxuum", for four u-letters out of seven in all, using up
        all the "u" letters in Scrabble).]  1. Originally, a
        {metasyntactic variable} like {foo} and {foobar}.  Invented by
        {Guy Steele} for precisely this purpose when he was young and
        naive and not yet interacting with the real computing
        community.  Many people invent such words; this one seems
        simply to have been lucky enough to have spread a little.  In
        an eloquent display of poetic justice, it has returned to the
        originator in the form of a nickname.

        2. See {foo}; however, denotes very little disgust, and is
        uttered mostly for the sake of the sound of it.

        3. {Guy Steele} in his persona as "The Great Quux", which is
        somewhat infamous for light verse and for the "Crunchly"
        cartoons.

        4. In some circles, used as a punning opposite of "crux".
        "Ah, that's the quux of the matter!" implies that the point is
        *not* crucial (compare {tip of the ice-cube}).

qux

        /kwuhks/ The fourth of the standard {metasyntactic variable},
        after {baz} and before the quu(u...)x series.  See {foo},
        {bar}, {baz}, {quux}.  This appears to be a recent mutation
        from {quux}, and many versions (especially older versions) of
        the standard series just run {foo}, {bar}, {baz}, {quux}, ...

QWERTY

        <hardware> /kwer'tee/ (From the top left row of letter keys of
        most keyboards) Pertaining to a standard English-language
        typewriter keyboard (sometimes called the Sholes keyboard
        after its inventor), as opposed to {Dvorak} or
        foreign-language layouts (e.g. "keyboard AZERTY" in
        french-speaking countries) or a {space-cadet keyboard} or {APL
        keyboard}.

        The QWERTY layout is a fine example of a {fossil}.  It is
        sometimes said that it was designed to slow down the typist,
        but this is wrong; it was designed to allow *faster* typing -
        under a constraint now long obsolete.  In early typewriters,
        fast typing using nearby type-bars jammed the mechanism.  So
        Sholes fiddled the layout to separate the letters of many
        common digraphs (he did a far from perfect job, though; "th",
        "tr", "ed", and "er", for example, each use two nearby keys).
        Also, putting the letters of "typewriter" on one line allowed
        it to be typed with particular speed and accuracy for {demos}.
        The jamming problem was essentially solved soon afterward by a
        suitable use of springs, but the keyboard layout lives on.

        (1998-01-15)

QX

        (Meaning "OK", from E.E. Smith SF books) A language for
        {digital signal processing} of digitised speech, by Richard
        Gillmann of {SDC}, Santa Monica.  QX was part of SDC's {speech
        recognition} project.

        (1995-02-09)

R2000

        {MIPS R2000}

R2RS

        A revision of {RRS}, itself revised in {R3RS}.

        ["The Revised Revised Report on the Algorithmic Language
        Scheme", Clinger, AI Memo 848, MIT Aug 1985].

        (1995-02-09)

R3.99RS

        {R4RS} without the {macro}s.

R3RS

        A revision of {R2RS}, revised in {R4RS}.

        ["The Revised^3 Report on the Algorithmic Language Scheme",
        J. Rees et al, SIGPLAN Notices 21(12):37-79 (Dec 1986)].

R4RS

        A revision of {R3RS}, revised in {R3.99RS}.

        {(ftp://altdorf.ai.mit.edu/)}

        ["The Revised^4 Report on the Algorithmic Language Scheme", W.
        Clinger et al, MIT (Nov 1991)].

        (1994-10-28)

        [Later revisions?]

rabbit job

        (Cambridge) A batch job that does little, if any, real work,
        but creates one or more copies of itself, breeding like
        rabbits.

        Compare {wabbit}, {fork bomb}.

        (1994-11-09)

RACE

        <programming> {Requirements Acquisition and
        Controlled Evolution}.

        (1995-11-21)

race condition

        Anomolous behavior due to unexpected critical dependence on
        the relative timing of events.

        For example, if one process writes to a file while another is
        reading from the same location then the data read may be the
        old contents, the new contents or some mixture of the two
        depending on the relative timing of the read and write
        operations.

        A common remedy in this kind of race condition is {file
        locking}; a more cumbersome remedy is to reorganize the system
        such that a certain processes (running a {daemon} or the like)
        is the only process that has access to the file, and all other
        processes that need to access the data in that file do so only
        via interprocess communication with that one process.

        As an example of a more subtle kind of race condition,
        consider a {distributed} {chat} {network} like {IRC}, where a
        {user} is granted channel-operator {privileges} in any channel
        he starts.  If two users on different {servers}, on different
        ends of the same network, try to start the same-named channel
        at the same time, each user's respective server will grant
        channel-operator privileges to each user, since neither will
        yet have received the other's signal that that channel has
        been started.

        In this case of a race condition, the "shared resource" is the
        conception of the {state} of the network (what channels exist,
        as well as what users started them and therefore have what
        privileges), which each server is free to change as long as it
        signals the other servers on the network about the changes so
        that they can update their conception of the state of the
        network.  However, the {latency} across the network makes
        possible the kind of race condition described.  In this case,
        heading off race conditions by imposing a form of control over
        access to the shared resource -- say, appointing one server to
        be in charge of who holds what privileges -- would mean
        turning the distributed network into a centralized one (at
        least for that one part of the network operation).  Where this
        is not acceptable, the more pragmatic solution is to have the
        system recognize when a race condition has occurred and to
        repair the ill effects.

        Race conditions also affect electronic circuits where the
        value output by a {logic gate} depends on the exact timing of
        two or more input signals.  For example, consider a two input
        AND gate fed with a logic signal X on input A and its
        negation, NOT X, on input B.  In theory, the output (X AND NOT
        X) should never be high.  However, if changes in the value of
        X take longer to propagate to input B than to input A then
        when X changes from false to true, there will be a brief
        period during which both inputs are true, and so the gate's
        output will also be true.  If this output is fed to an
        edge-sensitive component such as a counter or flip-flop then
        the temporary effect ("{glitch}") will become permanent.

        (1999-06-07)

RACF

        {Resource Access Control Facility}

RAD

        <programming> {Rapid Application Development}.

Raddle

        ["On the Design of Large Distributed Systems", I.R. Forman,
        Proc 1st IEEE Intl Conf Comp Langs, pp.25-27 (Oct 1986)].

Radio Frequency Interference

        <hardware, testing> (RFI) Electromagnetic radiation which is
        emitted by electrical circuits carrying rapidly changing
        signals, as a by-product of their normal operation, and which
        causes unwanted signals (interference or noise) to be induced
        in other circuits.

        The most important means of reducing RFI are: use of bypass or
        "decoupling" {capacitors} on each active device (connected
        across the power supply, as close to the device as possible),
        risetime control of high speed signals using series resistors
        and {VCC filtering}.  Shielding is usually a last resort after
        other techniques have failed because of the added expense of
        RF gaskets and the like.

        The efficiency of the radiation is dependant on the height
        above the ground or power plane (at RF one is as good as the
        other) and the length of the conductor in relationship to the
        wavelength of the signal component (fundamental, harmonic or
        transient (overshoot, undershoot or ringing)).  At lower
        frequencies, such as 133 MHz, radiation is almost exclusively
        via I/O cables; RF noise gets onto the power planes and is
        coupled to the line drivers via the VCC and ground pins.  The
        Rf is then coupled to the cable through the line driver as
        common node noise.  Since the noise is common mode, shielding
        has very little effect, even with differential pairs.  The RF
        energy is capacitively coupled from the signal pair to the
        shield and the shield itself does the radiating.

        At higher frequencies, usually above 500 Mhz, traces get
        electrically longer and higher above the plane.  Two
        techniques are used at these frequencies: wave shaping with
        series resistors and embedding the traces between the two
        planes.  If all these measures still leave too much RFI,
        sheilding such as RF gaskets and copper tape can be used.
        Most digital equipment is designed with metal, or coated
        plastic, cases.

        Switching power supplies can be a source of RFI, but have
        become less of a problem as design techniques have improved.

        Most countries have legal requirements that electronic and
        electrical hardware must still work correctly when subjected
        to certain amounts of RFI, and should not emit RFI which could
        interfere with other equipment (such as radios).

        See also {Electrostatic Discharge}, {Electromagnetic
        Compatibility}.

        (1998-01-26)

radiosity

        A technique for modelling light for producing (rendering)
        images from three dimensional models.  It is physically more
        accurate than {raytracing}, but takes more computing
        power.

        {Usenet} newsgroup: {news:comp.graphics}.

        [Details?]

        (1995-01-05)

RADIUS

        {Remote Authenication Dial-In User Service}

radix

        <mathematics> (Or "base", "number base") In a positional
        representation of numbers, that integer by which the
        significance of one digit place must be multiplied to give the
        significance of the next higher digit place.  Conventional
        decimal numbers are radix ten, {binary} numbers are radix two.

        (1995-12-24)

RAID

        {Redundant Arrays of Independent Disks}

RAIL

        <robotics> Automatix.  High-level language for industrial
        robots.

rainbow series

        <publication> Any of several series of technical manuals
        distinguished by cover colour.  The original rainbow series
        was the NCSC security manuals (see {Orange Book}, {crayola
        books}); the term has also been commonly applied to the
        PostScript reference set (see {Red Book}, {Green Book}, {Blue
        Book}, {White Book}).  Which books are meant by ""the" rainbow
        series" unqualified is thus dependent on one's local technical
        culture.

        (1996-12-03)

rain dance

        1. Any ceremonial action taken to correct a hardware problem,
        with the expectation that nothing will be accomplished.  This
        especially applies to reseating {printed circuit board}s,
        reconnecting cables, etc.  "I can't boot up the machine.
        We'll have to wait for Greg to do his rain dance."

        2. Any arcane sequence of actions performed with computers or
        software in order to achieve some goal; the term is usually
        restricted to rituals that include both an {incantation} or
        two and physical activity or motion.

        Compare {magic}, {voodoo programming}, {black art}, {cargo
        cult programming}, {wave a dead chicken}.

        (1995-02-09)

RAISE

        See {RSL}.

RAL

        1. Rutherford Appleton Laboratory (UK).

        2. An {expert system}.

RAM

        1. <storage> {Random Access Memory}.

        2. <humour> Rarely Adequate Memory.

        A humorous reference to the fact that programs and data
        expand to fill the memory available.

        (1995-04-22)

Rambus DRAM

        <storage> A high bandwidth {DRAM}, designed by {Rambus, Inc.}
        of Mountain View, CA.

        RDRAM is used mainly for {video accelerators}, and also in the
        {Ultra 64} from {Nintendo}.  It offers sustained {transfer
        rates} of around 1000 Mbps, compared to 200 Mbps for ordinary
        DRAM.  Although it cannot be used as a direct replacement for
        existing memory, it is likely that it will replace DRAM and
        {SDRAM} as the main memory system in {personal computers} as
        the {bus} speeds required by these machines increase.  SDRAM
        can operate up to around 100MHz, but RDRAM has been
        demonstrated by the manufacturers running at 600MHz.

        The memory is also only 8 or 9 {bit}s wide, so the bandwidth
        would increase enormously if it were used in parallel to give
        32 or 64-bit memory.

        (1996-12-13)

Rambus, Inc.

        <company> The company which designed {Rambus DRAM}.

        {Home (http://www.rambus.com/)}.

        Address: Mountain View, CA., USA.

        (1996-12-15)

RAMDAC

        {Random Access Memory Digital-to-Analog Converter}

RAM disk

        <operating system, storage> A memory-resident program which
        mimics a {hard disk} drive.  It uses part of computer's {RAM}
        to store data which can be accessed as files.  Unlike a real
        disk drive, this drive forgets all stored data when the
        computer is turned off.

        (1995-03-14)

RAM drive

        {RAM disk}

RAMIS II

        Rapid Access {Management Information System}.

        A {database} from {On-Line Software International}.

        (1994-11-14)

RAMTRON

        <company> The company which holds the patents for {FRAM} and
        licenses the technology to other companies.

        The licensees are currently (Feb 1997) {Hitachi}, {Rohm},
        {Samsung}, {SGS-Thomson} and {Toshiba}, none of who offer FRAM
        products of their own yet.

        {Home (http://www.csn.net/ramtron/)}.

        (1997-02-19)

random

        1. Unpredictable (closest to mathematical definition); weird.
        "The system's been behaving pretty randomly."

        2. Assorted; undistinguished.  "Who was at the conference?"
        "Just a bunch of random business types."

        3. (pejorative) Frivolous; unproductive; undirected.  "He's
        just a random loser."

        4. Incoherent or inelegant; poorly chosen; not well organised.
        "The program has a random set of misfeatures."  "That's a
        random name for that function."  "Well, all the names were
        chosen pretty randomly."

        5. In no particular order, though {deterministic}.  "The I/O
        channels are in a pool, and when a file is opened one is
        chosen randomly."

        6. Arbitrary.  "It generates a random name for the scratch
        file."

        7. Gratuitously wrong, i.e. poorly done and for no good
        apparent reason.  For example, a program that handles file
        name defaulting in a particularly useless way, or an assembler
        routine that could easily have been coded using only three
        registers, but redundantly uses seven for values with
        non-overlapping lifetimes, so that no one else can invoke it
        without first saving four extra registers.  What {randomness}!

        8.  A random hacker; used particularly of high-school students
        who soak up computer time and generally get in the way.

        9.  Anyone who is not a hacker (or, sometimes, anyone not
        known to the hacker speaking).  "I went to the talk, but the
        audience was full of randoms asking bogus questions".

        10.  (occasional MIT usage) One who lives at Random Hall.  See
        also {J. Random}, {some random X}.

        (1995-12-05)

random-access memory

        <storage> (RAM) (Previously "direct-access memory").  A data
        storage device for which the order of access to different
        locations does not affect the speed of access.  This is in
        contrast to, say, a {magnetic disk}, {magnetic tape} or a
        {mercury delay line} where it is very much quicker to access
        data sequentially because accessing a non-sequential location
        requires physical movement of the storage medium rather than
        just electronic switching.

        The most common form of RAM in use today is built from
        {semiconductor} {integrated circuit}s, which can be either
        static ({SRAM}) or dynamic ({DRAM}).  In the 1970s magnetic
        {core} memory was used.  RAM is still referred to as core by
        some old-timers.

        The term "RAM" has gained the additional meaning of
        read-write.  Most kinds of semiconductor {read-only memory}
        (ROM) are actually "random access" in the above sense but are
        never referred to as RAM.  Furthermore, memory referred to as
        RAM can usually be read and written equally quickly
        (approximately), in contrast to the various kinds of
        {programmable read-only memory}.  Finally, RAM is usually
        volatile though {non-volatile random-access memory} is also
        used.

        Interestingly, some {DRAM} devices are not truly random access
        because various kinds of "{page mode}" or "column mode" mean
        that sequential access is faster than random access.

        (1995-12-05)

Random Access Memory Digital-to-Analog Converter

        <hardware> (RAMDAC) A combination of three fast {DAC}s with a
        small {SRAM} used in graphics {display adapters} to store the
        {colour palette} and to generate the analog signals to drive a
        colour {monitor}.  The logical colour number from the display
        memory is fed into the address inputs of the SRAM to select a
        palette entry to appear on the output of the SRAM.  This entry
        is composed of three separate values corresponding to the
        three components (red, green, and blue) of the desired
        physical colour.  Each component value is fed to a separate
        DAC, whose analog output goes to the monitor, and ultimately
        to one of its three {electron guns} (or equivalent in
        non-{CRT} displays).

        DAC word lengths range usually from 6 to 10 bits.  The SRAM's
        wordlength is three times the DAC's word length.  The SRAM
        acts as a {colour lookup table}.  It usually has 256 entries
        (and thus an 8-bit address).  If the DAC's word length is also
        8 bits, we have a 256 x 24-bit SRAM which allows a selection
        of 256 out of 16777216 possible colours for the display.  The
        contents of the SRAM can be changed while the display is not
        active (during {display blanking} times).  The SRAM can
        usually be bypassed and the DACs can be fed directly by
        display data (for {true colour} modes).

        (1996-03-24)

randomness

        1. An inexplicable misfeature; gratuitous inelegance.

        2. A {hack} or {crock} that depends on a complex combination
        of coincidences (or, possibly, the combination upon which the
        crock depends for its accidental failure to malfunction).
        "This hack can output characters 40--57 by putting the
        character in the four bit accumulator field of an XCT and then
        extracting six bits - the low 2 bits of the XCT opcode are
        the right thing."  "What randomness!"

        3. Of people, synonymous with "flakiness".  The connotation is
        that the person so described is behaving weirdly,
        incompetently, or inappropriately for reasons which are (a)
        too tiresome to bother inquiring into, (b) are probably as
        inscrutable as quantum phenomena anyway, and (c) are likely to
        pass with time. "Maybe he has a real complaint, or maybe it's
        just randomness.  See if he calls back."

random numbers

        1. <programming> {pseudorandom number}.

        2. <jargon> When one wishes to specify a large but random
        number of things, and the context is inappropriate for {N},
        certain numbers are preferred by hacker tradition (that is,
        easily recognised as placeholders).  These include the
        following:

        17 - Long described at MIT as "the least random number"; see
        23.

        23 - Sacred number of Eris, Goddess of Discord (along with 17
        and 5).

        42 - The Answer to the Ultimate Question of Life, the
        Universe, and Everything, as revealed in Douglas Adams'
        "Hitchhiker's Guide to the Galaxly".  Note that this answer is
        completely fortuitous :-) (US pronunciation).  It has been
        observed that in the little-used number base 13, the answer to
        the ultimate question, "What is 6 x 9?", is indeed 42, showing
        that in six dimensions white mice have 13 digits.

        69 - From the sexual act.  This one was favoured in {MIT}'s
        {ITS} culture.

        105 - 69 {hex} = 105 decimal and 69 decimal = 105 {octal}.

        666 - The Number of the Beast.

        For further enlightenment, study the "Principia Discordia",
        "The Joy of Sex", and the Christian Bible (Revelation 13:18).

        See also {Discordianism} or consult your pineal gland.  See
        also {for values of}.

        (1997-02-10)

range

        [Mathematics].  See {image}.

Rapid Application Development

        <programming> (RAD) A loose term for any {software life-cycle}
        designed to give faster development and better results and to
        take maximum advantage of recent advances in development
        software.

        RAD is associated with a wide range of approaches to software
        development: from hacking away in a {GUI builder} with little
        in the way of analysis and design to complete {methodologies}
        expanding on an {information engineering} framework.

        Some of the current RAD techniques are: {CASE} tools,
        {iterative life-cycles}, {prototyping}, {workshops}, {SWAT
        team}s, {timebox development}, and {Re-use} of applications,
        templates and code.

        {RAD at BSO/Den Haag
        (http://www.riv.nl/origin/company/denhaag/RAD.HTM)}.

        ["Rapid Application Development", James Martin].

        (1995-09-23)

RapidCAD

        <processor> A specially packaged {Intel 486DX} and a dummy
        {floating point unit} (FPU) designed as pin-compatible
        replacements for an {Intel 80386} processor and {80387} FPU.
        Since the DX variant has a working on-chip FPU, a dummy FPU
        package is supplied to go in the {387} FPU socket.

        (1995-05-10)

Rapidly Extensible Language, English

        <language> (REL English) A {formal language} based on English.

        ["Practical Natural Language Processing: The REL System as
        Prototype", Adv in Computers 13, Academic Press 1975].

        (1997-04-09)

rapid prototyping

        <programming> The creation of a working model of a software
        module to demonstrate the feasibility of the function.  The
        prototype is later refined for inclusion in a final product.

        (1996-05-29)

Rapidwrite

        <language, tool> A method for translating set of abbreviations
        into the much more verbose {COBOL} code.

        [Sammet 1969, p. 338].

        (1995-05-10)

RAPT

        ["An Interpreter for a Language for Describing Assemblies",
        R.J. Popplestone et al, Artif Intell 14:79-107 (1980)].

        (1995-05-10)

RARE

        {Rseaux Associs pour la Recherche Europenne}

rare mode

        <operating system> {Unix} CBREAK mode (character-by-character
        with keyboard {interrupt}s enabled).  Distinguished from {raw
        mode} and {cooked mode}; the phrase "a sort of half-cooked
        (rare?) mode" is used in the V7/BSD manuals to describe the
        mode.  Usage: rare.

        (1995-05-10)

RARP

        {Reverse Address Resolution Protocol}

RAS

        1. <hardware, storage> {Row Address Strobe}.

        2. <communications> {Remote Access Services}.

        (1996-08-14)

RASP

        <language> ["RASP - A Language with Operations on Fuzzy Sets",
        D.D. Djakovic, Comp Langs 13(3):143-148 (1988)].

        (1995-05-10)

raster

        <hardware> The area of a video display that is covered by
        sweeping the electron beam of the display in a series of
        horizontal lines from top to bottom.  The beam then returns to
        the top during the vertical flyback interval.

        See also {CRT}, {frame buffer}.

        (1995-03-22)

raster blaster

        <hardware, jargon> (Cambridge) Specialised hardware for
        {bitblt} operations (a {blitter}).  Allegedly inspired by
        "Rasta Blasta", British slang for the sort of portable stereo
        Americans call a "boom box" or "ghetto blaster".

        (1995-03-22)

raster burn

        1. (Or terminal illness) Eyestrain brought on by too many
        hours of looking at low-resolution, poorly tuned, or
        glare-ridden monitors, especially graphics monitors.

        2. The "burn-in" condition your {CRT} tends to get if you
        don't use a {screen saver}.

raster font

        {bitmap font}

rastergram

        {Single Image Random Dot Stereogram}

raster graphics

        <graphics> Computer graphics in which an {image} is composed
        of an array of pixels arranged in rows and columns.

        Opposite: {vector graphics}.

        (1995-03-22)

raster subsystem

        <graphics> The part of a graphics system concerned with an
        {image} after it has been transformed and scaled to screen
        coordinates.  It includes scan conversion and display.

        (1995-03-22)

Ratatosk

        An {SLR parser} generator written in {Gofer} (a {Haskell}
        variant) by Torben AEgidius Mogensen <torbenm@diku.dk>.
        Ratatosk generates {purely functional} {backtracking} {LR0
        grammar} {parser}s (also in Gofer).

        Even though the {sematic} value of a {production} is a
        function of the attributes of its right-hand side (and thus
        apparently purely synthesised), inherited attributes are
        easily simulated by using {higher-order function}s.

        {(ftp://ftp.diku.dk/pub/diku/dists/Ratatosk.tar.Z)}

rat belt

        A cable tie, especially the sawtoothed, self-locking plastic
        kind that you can remove only by cutting (as opposed to a
        random twist of wire or a twist tie or one of those humongous
        metal clip frobs).  Small cable ties are "mouse belts".

RatC

        {Rationalized C}

RATEL

        Raytheon Automatic Test Equipment Language.  For analog and
        digital computer controlled test centres.  "Automatic Testing
        via a Distributed Intelligence Processing System", S.J. Ring,
        IEEE AUTOTESTCON 77 (Nov 1977).

Rate monotonic scheduling

        <algorithm> A means of {scheduling} the time allocated to
        periodic {hard-deadline} {real-time} users of a resource.  The
        users are assigned priorities such that a shorter fixed period
        between deadlines is associated with a higher priority.

        Rate monotonic scheduling provides a low-overhead, reasonably
        resource-efficient means of guaranteeing that all users will
        meet their deadlines provided that certain analytical
        equations are satisfied during the system design.  It avoids
        the design complexity of {time-line scheduling} and the
        overhead of dynamic approaches such as {earliest-deadline
        scheduling}.

        [D. R. Wilcox, Naval Ocean Systems Center Technical Report
        1310, August 1989, "Periodic Phase Adjustment Distributed
        Clock Synchronization in the Hard Realtime Environment",
        p. 9].

        (1996-03-23)

RATFIV

        Successor to {RATFOR}.

RATFOR

        RATional FORTRAN.  Kernighan.  {FORTRAN} {preprocessor} to
        allow programming with {C}-like control flow.  Mainly of
        historical significance.

        ["Ratfor - A Preprocessor for a Rational Fortran",
        B.W. Kernighan, Soft Prac & Exp 5:395-406 (Oct 1975)].

        [Software Tools, B.W. Kernighan & P.J. Plauger, A-W 1976].

        {(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/ratfor.tar-z)}

        A translator from Ratfor to Fortran IV was posted to
        comp.sources.Unix volume 13.

        ["Ratfor - A Preprocessor for a Rational Fortran",
        B.W. Kernighan, Soft Prac & Exp 5:395-406 (Oct 1975)].

rational

        [Mathematics] a fractional number n/d, where n and d are
        integers, n is the numerator and d is the denominator.  The
        set of all rational numbers is usually called Q.
        Computers do not usually deal with rational numbers but
        instead convert them to {real} numbers which are represented
        (approximately in some cases) as {floating-point} numbers.
        Compare {irrational}.

Rationalized C

        <language> (RatC, after "{RATFOR}") A version of Ron Cain's
        original {Small-C} {compiler}.

        ["A Book on C", R.E. Berry and B.A. Meekings, 1984, ISBN
        0-333-36821-5].

        [In what way was it "rationalized"?]

        (1999-06-28)

rave

        [WPI] 1. To persist in discussing a specific subject.

        2. To speak authoritatively on a subject about which one knows
        very little.

        3. To complain to a person who is not in a position to correct
        the difficulty.

        4. To purposely annoy another person verbally.

        5. To evangelise.  See {flame}.

        6. Also used to describe a less negative form of blather, such
        as friendly bullshitting.  "Rave" differs slightly from
        {flame} in that "rave" implies that it is the persistence or
        obliviousness of the person speaking that is annoying, while
        {flame} implies somewhat more strongly that the tone or
        content is offensive as well.

rave on!

        Sarcastic invitation to continue a {rave}, often by someone
        who wishes the raver would get a clue but realises this is
        unlikely.

raw data

        {data}

raw mode

        A mode that allows a program to transfer bits directly to or
        from an I/O device (or, under {bogus} systems that make a
        distinction, a disk file) without any processing, abstraction,
        or interpretation by the operating system.  Compare {rare
        mode}, {cooked mode}.

RAWOOP-SNAP

        <language> An early system on the {IBM 1103} or 1103A.

        [Listed in CACM 2(5):16, May 1959].

        (1996-05-29)

Rayleigh distribution

        <mathematics> A curve that yields a good approximation to the
        actual labour curves on software projects.

        [Details?  Equation?]

        (1996-05-29)

ray tracing

        <graphics> A technique used in computer graphics to create
        realistic images by calculating the paths taken by rays of
        light entering the observer's eye at different angles.  The
        paths are traced backwards from the viewpoint, through a point
        (a pixel) in the image plane until they hit some object in the
        scene or go off to infinity.  Objects are modelled as
        collections of abutting surfaces which may be rectangles,
        triangles or more complicated shapes such as 3D splines.  The
        optical properties of different surfaces (colour, reflectance,
        transmitance, refraction, texture) also affect how it will
        contribute to the colour and brightness of the ray.  The
        position, colour and brightness of light sources, including
        ambient lighting, is also taken into account.

        Ray tracing is an ideal application for parallel processing
        since there are many pixels, each of whose values is
        independent and can thus be calculated in parallel.

        {Usenet} newsgroup: {news:comp.graphics.raytracing}.

        {(http://www.cm.cf.ac.uk:/Ray.Tracing/)}

        (1996-05-29)

R:BASE

        {MS-DOS} 4GL from Microrim.  Based on Minicomputer DBMS RIM.

        [Was Wayne Erickson the author?]

RBASIC

        Database language for Revelation, by Cosmos, Inc.  Combines
        features of BASIC, Pascal and Fortran.

RBCSP

        Roper and Barter's CSP.

        ["A Communicating Sequential Process Language and
        Implementation", T. Roper & J. Barter, Soft Prac & Exp
        11(11):1215-1234 (Nov 1981)].

RBOC

        {Regional Bell Operating Company}

rc

        1. <filename extension> (run commands) The {filename
        extension} common to many {Unix} configuration files, e.g.
        {.newsrc}, {.cshrc}, {.twmrc}, elmrc, etc.

        The suffix "rc" derives from a script-creation utility in
        {CTSS} called "{runcom}" (for "run commands").

        {Unix FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/unix-faq/faq/top.ht
ml)}.

        2. {AT&T} {Plan 9} {shell} by Tom Duff.

        Version 1.4 of the free lookalike shell by Byron Rakitzis
        <byron@archone.tamu.edu> or <byron@netapp.com> is available by
        {(ftp://archone.tamu.edu/)}, {(ftp://ftp.white.toronto.edu/)}.

        Mailing list: <rc-request@hawkwind.utcs.toronto.edu>.

        (1996-04-09)

RC4

        <cryptography> A {cipher} designed by {RSA Data Security,
        Inc.} which can accept {keys} of arbitrary length, and is
        essentially a {pseudo random number generator} with the output
        of the generator being {XOR}ed with the data stream to produce
        the encrypted data.  For this reason, it is very important
        that the same RC4 key never be used to encrypt two different
        data streams.  The encryption mechanism used to be a trade
        secret, until someone posted source code for an {algorithm}
        onto {Usenet News}, claiming it to be equivalent to RC4.  The
        algorithm is very fast, its security is unknown, but breaking
        it does not seem trivial either.  There is very strong
        evidence that the posted algorithm is indeed equivalent to
        RC4.

        The United States government routinely approves RC4 with
        40-bit keys for export.  Keys this small can be easily broken
        by governments, criminals, and amateurs.  The exportable
        version of {Netscape}'s {Secure Socket Layer}, which uses
        RC4-40, was broken by at least two independent groups.
        Breaking it took about eight days; in many universities or
        companies the same computing power is available to any
        computer science student.

        See also {Damien Doligez's SSL cracking page
        (http://pauillac.inria.fr/~doligez/ssl/)}, {RC4 Source and
        Information (http://www.cs.hut.fi/crypto/rc4)}, {SSLeay
        (http://www.cs.hut.fi/crypto/software.html#ssleay)}, {Crypto++
        (http://www.cs.hut.fi/crypto/software.html#crypto++)}, {Ssh
        (http://www.cs.hut.fi/crypto/software.html#ssh)}, {A
        collection of articles
        (http://www.cs.hut.fi/crypto/rc4-breaking)}.

        (1996-10-28)

RCA 1802

        An extremely simple {microprocessor} fabricated in {CMOS},
        which allowed it to run at 6.4 MHz (at 10V, but very fast for
        1974) or suspended with the clock stopped.  It was an 8 bit
        processor, with 16-bit addressing but the major features were
        its extreme simplicity, and the flexibility of its large
        {register set}.  Simplicity was the primary design goal, and
        in that sense it was one of the first {RISC} chips.  It had
        sixteen 16-bit {register}s, which could be accessed as
        thirty-two 8-bit registers, and an {accumulator} D used for
        arithmetic and memory access - memory to D, then D to
        registers and vice versa, using one 16-bit register as an
        address.  This led to one person describing the 1802 as having
        32 bytes of {RAM} and 65535 I/O ports.  A 4-bit control
        register P selected any one general register as the {program
        counter}, while control registers X and N selected registers
        for I/O Index and the operand for the current instruction.
        All instructions were 8 bits - a 4-bit {op code} (total of 16
        operations) and 4-bit {operand register} stored in N.  There
        was no real conditional branching, no {subroutine} support and
        no actual {stack} but clever use of the register set allowed
        these to be implemented - for example, changing P to another
        register allowed jump to a subroutine.  Similarly, on an
        interrupt P and X were saved, then R1 and R2 were selected for
        P and X until an {RTI} restored them.

        The {RCA 1805} was an enhanced version.

        Apart from the {COSMAC} (VIP?) {microcomputer} kit, the 1802
        saw action in some video games from {RCA} and {Radio Shack}.
        It was used in the {DREAM 6800} and {ETI-660} computers and is
        also the heart of the Voyager, Viking and Galileo probes.  One
        reason for this is that the 1802 was also fabricated on
        sapphire ({Silicon on Sapphire}), which leads to radiation and
        static resistance, ideal for space operation.

        (1994-11-16)

RCA 1805

        A later, enhanced version of the {RCA 1802}.  It added several
        {Forth} language primitives.

        (1994-11-16)

RCC

        An extensible language.

        [More detail?]

rc file

        /R C fi:l/ [Unix: from the startup script "/etc/rc", but this
        is commonly believed to have been named after older scripts to
        "run commands"] Script file containing startup instructions
        for an application program (or an entire operating system),
        usually a text file containing commands of the sort that might
        have been invoked manually once the system was running but are
        to be executed automatically each time the system starts up.
        See also {dot file}, {profile} (sense 1).

RCL

        Reduced Control Language.  A simplified job control language
        for OS360, translated to IBM JCL.  "Reduced Control Language
        for Non- Professional Users", K. Appel in Command Languages,
        C. Unger ed, N-H 1973.

rcp

        <networking, tool> (Remote copy) The {Unix} utility for
        copying files over {Ethernet}.  Rcp is similar to {FTP} but
        uses the {hosts.equiv} user authentication method.

        {Unix manual page}: rcp(1).

        (1997-01-12)

RCS

        {Revision Control System}

Rdb

        {Oracle Rdb}

rdb

        A roll-your-own {database}, created in the {Unix} toolkit
        philosophy.  It appears to be written in the {awk} language,
        and is very compatible with awk.  It uses awk's syntax and can
        be combined with awk commands.

        The definitive introduction is "Unix Relational Database
        Management: Application Development in the Unix Environment",
        by Rod Manis, Evan Schaeffer, and Robert Jorgensen, published
        by Prentice Hall.  The book tells how to use rdb to create
        database/spreadsheets in the awk tradition, only easier. It's
        a good way to get into programming for novices.  It's also a
        good way to learn DB theory and construction quite painlessly.

RDBA

        {Remote Database Access}

RDBMS

        {relational database} management system.

RDI

        {Receiver Data Interface}

RDL

        Requirements and Development Language.

        ["RDL: A Language for Software Development", H.C. Heacox,
        SIGPLAN Notices 14(9):71-79 (Sep 1979)].

RDOS

        {Realtime Disk Operating System}

RDRAM

        {Rambus DRAM}

RDS

        {Random Dot Stereogram}

RE

        {regular expression}

re

        1. <networking> The {country code} for Reunion.

        2. <chat> /re-/ (From "rehi") Hello again.  A greeting
        originating in, and most often heard on, {Internet}
        interactive conversation services.

        (1999-02-08)

README file

        <convention> An introduction traditionally included in the
        top-level directory of a {Unix} {source} distribution,
        containing a pointer to more detailed documentation, credits,
        miscellaneous revision history, notes, etc.  The file may be
        named README, or READ.ME, or rarely ReadMe or readme.txt or
        some other variant.

        In the {Macintosh} and {IBM PC} worlds, software is not
        usually distributed in source form, and the README is more
        likely to contain user-oriented material like last-minute
        documentation changes, error workarounds, and restrictions.

        The README convention probably follows the famous scene in
        Lewis Carroll's "Alice's Adventures In Wonderland" in which
        Alice confronts magic munchies labelled "Eat Me" and "Drink
        Me".

        (1995-02-28)

Read-Only Memory

        <storage> (ROM) A type of data storage device which is
        manufactured with fixed contents.  In its most general sense,
        the term might be used for any storage system whose contents
        cannot be altered, such as a gramophone record or a printed
        book; however, the term is most often applied to
        {semiconductor} {integrated circuit} memories, of which there
        are several types, and {CD-ROM}.

        ROM is inherently {non-volatile storage} - it retains its
        contents even when the power is switched off, in contrast to
        {RAM}.

        ROM is often used to hold programs for {embedded system}s
        since these usually have a fixed purpose.  ROM is also used
        for storage of the lowest level {bootstrap} software
        (firmware) in a computer.

        See also {Programmable Read-Only Memory}.

        (1995-05-09)

read-only user

        <jargon> Describes a {luser} who uses computers almost
        exclusively for reading {Usenet}, {bulletin board}s, and/or
        {electronic mail}, rather than writing code or purveying
        useful information.

        See {twink}, {terminal junkie}, {lurker}.

        (1995-02-28)

Read the Fucking Manual

        <jargon> (Always written "RTFM") Traditional response when
        someone asks a question in a {newsgroup} or {mailing list}
        which they could have easily answered for themself if they had
        bothered to RTFM.

        (1995-02-28)

real

        1. Not simulated.  Often used as a specific antonym to
        {virtual} in any of its jargon senses.

        2. <mathematics> {real number}.

        (1997-03-12)

Realaudio

        <tool, communications> A program for playing {audio} over the
        {Internet}.

        The system is implemented as a {client/server} architecture.
        The Realaudio server incorporates an {encoder} which
        compresses sound into Realaudio files.  The client side is a
        {web browser} {plug-in} or {add-on} (a recent version of
        {Internet Explorer} apparently has built-in support for
        Realaudio) which allows the stream of data sent from the
        server to be uncompressed and output using the normal sound
        facilities of the computer, such as a {sound card}.

        A 14.4 {KBps} or better {modem} is required, and a 28.8 KBps
        connection is recommended for music-quality sound.

        {Home (http://www.realaudio.com/)}.

        (1996-11-28)

real estate

        <jargon> May be used for any critical resource measured in
        units of area.  Most frequently used of "chip real estate",
        the area available for logic on the surface of an {integrated
        circuit} (see also {nanoacre}).  May also be used of floor
        space in a {dinosaur pen}, or even space on a crowded desktop
        (whether physical or electronic).

        (1996-11-06)

real hack

        A {crock}.  This is sometimes used affectionately; see {hack}.

reality check

        1. The simplest kind of test of software or hardware; doing
        the equivalent of asking it what 2 + 2 is and seeing if you
        get 4.  The software equivalent of a {smoke test}.

        2. The act of letting a {real user} try out prototype
        software.

        Compare {sanity check}.

real mode

        An operating mode of {Intel 80x86} processors.  The opposite
        of {protected mode}.

        (1995-03-29)

real number

        <mathematics> One of the infinitely divisible range of values
        between positive and negative {infinity}, used to represent
        continuous physical quantities such as distance, time and
        temperature.

        Between any two real numbers there are infinitely many more
        real numbers.  The {integers} ("counting numbers") are real
        numbers with no fractional part and real numbers ("measuring
        numbers") are {complex numbers} with no imaginary part.  Real
        numbers can be divided into {rational numbers} and {irrational
        numbers}.

        Real numbers are usually represented (approximately) by
        computers as {floating point} numbers.

        Strictly, real numbers are the {equivalence classes} of the
        {Cauchy sequences} of {rationals} under the {equivalence
        relation} "~", where a ~ b if and only if a-b is {Cauchy} with
        limit 0.

        The real numbers are the minimal {topologically closed}
        {field} containing the rational field.

        A sequence, r, of rationals (i.e. a function, r, from the
        {natural numbers} to the rationals) is said to be Cauchy
        precisely if, for any tolerance delta there is a size, N,
        beyond which: for any n, m exceeding N,

         | r[n] - r[m] | < delta

        A Cauchy sequence, r, has limit x precisely if, for any
        tolerance delta there is a size, N, beyond which: for any n
        exceeding N,

         | r[n] - x | < delta

        (i.e. r would remain Cauchy if any of its elements, no matter
        how late, were replaced by x).

        It is possible to perform addition on the reals, because the
        equivalence class of a sum of two sequences can be shown to be
        the equivalence class of the sum of any two sequences
        equivalent to the given originals: ie, a~b and c~d implies
        a+c~b+d; likewise a.c~b.d so we can perform multiplication.
        Indeed, there is a natural {embedding} of the rationals in the
        reals (via, for any rational, the sequence which takes no
        other value than that rational) which suffices, when extended
        via continuity, to import most of the algebraic properties of
        the rationals to the reals.

        (1997-03-12)

real operating system

        <operating system, abuse> The sort the speaker is used to.
        People from the {BSD}ophilic academic community are likely to
        issue comments like "{System V}?  Why don't you use a *real*
        operating system?", people from the commercial/industrial
        {Unix} sector are known to complain "BSD?  Why don't you use a
        *real* operating system?", and people from {IBM} object "Unix?
        Why don't you use a *real* operating system?"

        See {holy wars}, {religious issues}, {proprietary}, {Get a
        real computer!}.

        (1997-03-12)

Real Programmer

        [indirectly, from the book "Real Men Don't Eat Quiche"] A
        particular sub-variety of hacker: one possessed of a flippant
        attitude toward complexity that is arrogant even when
        justified by experience.  The archetypal "Real Programmer"
        likes to program on the {bare metal} and is very good at same,
        remembers the binary opcodes for every machine he has ever
        programmed, thinks that HLLs are sissy, and uses a debugger to
        edit his code because full-screen editors are for wimps.  Real
        Programmers aren't satisfied with code that hasn't been
        {bum}med into a state of {tense}ness just short of rupture.
        Real Programmers never use comments or write documentation:
        "If it was hard to write", says the Real Programmer, "it
        should be hard to understand."  Real Programmers can make
        machines do things that were never in their spec sheets; in
        fact, they are seldom really happy unless doing so.  A Real
        Programmer's code can awe with its fiendish brilliance, even
        as its crockishness appals.  Real Programmers live on junk
        food and coffee, hang line-printer art on their walls, and
        terrify the crap out of other programmers - because someday,
        somebody else might have to try to understand their code in
        order to change it.  Their successors generally consider it a
        {Good Thing} that there aren't many Real Programmers around
        any more.  For a famous (and somewhat more positive) portrait
        of a Real Programmer, see "{The Story of Mel}".  The term
        itself was popularised by a 1983 Datamation article "{Real
        Programmers Don't Use Pascal}" by Ed Post, still circulating
        on {Usenet} and Internet in on-line form.

        (1997-08-29)

Real Programmers Don't Use PASCAL

        <humour> Back in the good old days -- the "Golden Era" of
        computers, it was easy to separate the men from the boys
        (sometimes called "Real Men" and "Quiche Eaters" in the
        literature). During this period, the Real Men were the ones
        that understood computer programming, and the Quiche Eaters
        were the ones that didn't.  A real computer programmer said
        things like "DO 10 I=1,10" and "ABEND" (they actually talked
        in capital letters, you understand), and the rest of the world
        said things like "computers are too complicated for me" and "I
        can't relate to computers -- they're so impersonal". (A
        previous work [1] points out that Real Men don't "relate" to
        anything, and aren't afraid of being impersonal.)

        But, as usual, times change. We are faced today with a world
        in which little old ladies can get computers in their
        microwave ovens, 12-year-old kids can blow Real Men out of the
        water playing Asteroids and Pac-Man, and anyone can buy and
        even understand their very own Personal Computer.  The Real
        Programmer is in danger of becoming extinct, of being replaced
        by high-school students with TRASH-80's.

        There is a clear need to point out the differences between the
        typical high-school junior Pac-Man player and a Real
        Programmer. If this difference is made clear, it will give
        these kids something to aspire to -- a role model, a Father
        Figure. It will also help explain to the employers of Real
        Programmers why it would be a mistake to replace the Real
        Programmers on their staff with 12-year-old Pac-Man players
        (at a considerable salary savings).

        LANGUAGES

        The easiest way to tell a Real Programmer from the crowd is by
        the programming language he (or she) uses. Real Programmers
        use FORTRAN.  Quiche Eaters use PASCAL. Nicklaus Wirth, the
        designer of PASCAL, gave a talk once at which he was asked
        "How do you pronounce your name?". He replied, "You can either
        call me by name, pronouncing it 'Veert', or call me by value,
        'Worth'."  One can tell immediately from this comment that
        Nicklaus Wirth is a Quiche Eater. The only parameter passing
        mechanism endorsed by Real Programmers is
        call-by-value-return, as implemented in the IBM\370 FORTRAN-G
        and H compilers.  Real programmers don't need all these
        abstract concepts to get their jobs done -- they are perfectly
        happy with a keypunch, a FORTRAN IV compiler, and a beer.

        Real Programmers do List Processing in FORTRAN.

        Real Programmers do String Manipulation in FORTRAN.

        Real Programmers do Accounting (if they do it at all) in
        FORTRAN.

        Real Programmers do Artificial Intelligence programs in
        FORTRAN.

        If you can't do it in FORTRAN, do it in assembly language.  If
        you can't do it in assembly language, it isn't worth doing.

        STRUCTURED PROGRAMMING

        The academics in computer science have gotten into the
        "structured programming" rut over the past several years. They
        claim that programs are more easily understood if the
        programmer uses some special language constructs and
        techniques. They don't all agree on exactly which constructs,
        of course, and the examples they use to show their particular
        point of view invariably fit on a single page of some obscure
        journal or another -- clearly not enough of an example to
        convince anyone. When I got out of school, I thought I was the
        best programmer in the world. I could write an unbeatable
        tic-tac-toe program, use five different computer languages,
        and create 1000-line programs that WORKED.  (Really!) Then I
        got out into the Real World. My first task in the Real World
        was to read and understand a 200,000-line FORTRAN program,
        then speed it up by a factor of two. Any Real Programmer will
        tell you that all the Structured Coding in the world won't
        help you solve a problem like that -- it takes actual
        talent. Some quick observations on Real Programmers and
        Structured Programming:

        Real Programmers aren't afraid to use GOTO's.

        Real Programmers can write five-page-long DO loops without
        getting confused.

        Real Programmers like Arithmetic IF statements -- they make
        the code more interesting.

        Real Programmers write self-modifying code, especially if they
        can save 20 nanoseconds in the middle of a tight loop.

        Real Programmers don't need comments -- the code is obvious.

        Since FORTRAN doesn't have a structured IF, REPEAT ... UNTIL,
        or CASE statement, Real Programmers don't have to worry about
        not using them. Besides, they can be simulated when necessary
        using assigned GOTO's.

        Data Structures have also gotten a lot of press
        lately. Abstract Data Types, Structures, Pointers, Lists, and
        Strings have become popular in certain circles. Wirth (the
        above-mentioned Quiche Eater) actually wrote an entire book
        [2] contending that you could write a program based on data
        structures, instead of the other way around. As all Real
        Programmers know, the only useful data structure is the
        Array. Strings, lists, structures, sets -- these are all
        special cases of arrays and can be treated that way just as
        easily without messing up your programing language with all
        sorts of complications. The worst thing about fancy data types
        is that you have to declare them, and Real Programming
        Languages, as we all know, have implicit typing based on the
        first letter of the (six character) variable name.

        OPERATING SYSTEMS

        What kind of operating system is used by a Real Programmer?
        CP/M? God forbid -- CP/M, after all, is basically a toy
        operating system.  Even little old ladies and grade school
        students can understand and use CP/M.

        Unix is a lot more complicated of course -- the typical Unix
        hacker never can remember what the PRINT command is called
        this week -- but when it gets right down to it, Unix is a
        glorified video game.  People don't do Serious Work on Unix
        systems: they send jokes around the world on UUCP-net and
        write adventure games and research papers.

        No, your Real Programmer uses OS\370. A good programmer can
        find and understand the description of the IJK305I error he
        just got in his JCL manual.  A great programmer can write JCL
        without referring to the manual at all.  A truly outstanding
        programmer can find bugs buried in a 6 megabyte core dump
        without using a hex calculator.  (I have actually seen this
        done.)

        OS is a truly remarkable operating system. It's possible to
        destroy days of work with a single misplaced space, so
        alertness in the programming staff is encouraged. The best way
        to approach the system is through a keypunch.  Some people
        claim there is a Time Sharing system that runs on OS\370, but
        after careful study I have come to the conclusion that they
        were mistaken.

        PROGRAMMING TOOLS

        What kind of tools does a Real Programmer use? In theory, a
        Real Programmer could run his programs by keying them into the
        front panel of the computer.  Back in the days when computers
        had front panels, this was actually done occasionally.  Your
        typical Real Programmer knew the entire bootstrap loader by
        memory in hex, and toggled it in whenever it got destroyed by
        his program. (Back then, memory was memory -- it didn't go
        away when the power went off.  Today, memory either forgets
        things when you don't want it to, or remembers things long
        after they're better forgotten.) Legend has it that Seymore
        Cray, inventor of the Cray I supercomputer and most of Control
        Data's computers, actually toggled the first operating system
        for the CDC7600 in on the front panel from memory when it was
        first powered on.  Seymore, needless to say, is a Real
        Programmer.

        One of my favorite Real Programmers was a systems programmer
        for Texas Instruments.  One day he got a long distance call
        from a user whose system had crashed in the middle of saving
        some important work. Jim was able to repair the damage over
        the phone, getting the user to toggle in disk I/O instructions
        at the front panel, repairing system tables in hex, reading
        register contents back over the phone.  The moral of this
        story: while a Real Programmer usually includes a keypunch and
        lineprinter in his toolkit, he can get along with just a front
        panel and a telephone in emergencies.

        In some companies, text editing no longer consists of ten
        engineers standing in line to use an 029 keypunch. In fact,
        the building I work in doesn't contain a single keypunch. The
        Real Programmer in this situation has to do his work with a
        "text editor" program.  Most systems supply several text
        editors to select from, and the Real Programmer must be
        careful to pick one that reflects his personal style.  Many
        people believe that the best text editors in the world were
        written at Xerox Palo Alto Research Center for use on their
        Alto and Dorado computers [3].  Unfortunately, no Real
        Programmer would ever use a computer whose operating system is
        called SmallTalk, and would certainly not talk to the computer
        with a mouse.

        Some of the concepts in these Xerox editors have been
        incorporated into editors running on more reasonably named
        operating systems -- EMACS and VI being two.  The problem with
        these editors is that Real Programmers consider "what you see
        is what you get" to be just as bad a concept in Text Editors
        as it is in women.  No the Real Programmer wants a "you asked
        for it, you got it" text editor -- complicated, cryptic,
        powerful, unforgiving, dangerous. TECO, to be precise.

        It has been observed that a TECO command sequence more closely
        resembles transmission line noise than readable text [4].  One
        of the more entertaining games to play with TECO is to type
        your name in as a command line and try to guess what it does.
        Just about any possible typing error while talking with TECO
        will probably destroy your program, or even worse -- introduce
        subtle and mysterious bugs in a once working subroutine.

        For this reason, Real Programmers are reluctant to actually
        edit a program that is close to working.  They find it much
        easier to just patch the binary object code directly, using a
        wonderful program called SUPERZAP (or its equivalent on
        non-IBM machines).  This works so well that many working
        programs on IBM systems bear no relation to the original
        FORTRAN code.  In many cases, the original source code is no
        longer available.  When it comes time to fix a program like
        this, no manager would even think of sending anything less
        than a Real Programmer to do the job -- no Quiche Eating
        structured programmer would even know where to start.  This is
        called "job security".

        Some programming tools NOT used by Real Programmers:

        FORTRAN preprocessors like MORTRAN and RATFOR. The Cuisinarts
        of programming -- great for making Quiche. See comments above
        on structured programming.

        Source language debuggers. Real Programmers can read core
        dumps.

        Compilers with array bounds checking. They stifle creativity,
        destroy most of the interesting uses for EQUIVALENCE, and make
        it impossible to modify the operating system code with
        negative subscripts. Worst of all, bounds checking is
        inefficient.

        Source code maintenance systems. A Real Programmer keeps his code
        locked up in a card file, because it implies that its owner cannot
        leave his important programs unguarded [5].

        THE REAL PROGRAMMER AT WORK

        Where does the typical Real Programmer work? What kind of
        programs are worthy of the efforts of so talented an
        individual?  You can be sure that no Real Programmer would be
        caught dead writing accounts-receivable programs in COBOL, or
        sorting mailing lists for People magazine.  A Real Programmer
        wants tasks of earth-shaking importance (literally!).

        Real Programmers work for Los Alamos National Laboratory,
        writing atomic bomb simulations to run on Cray I
        supercomputers.

        Real Programmers work for the National Security Agency,
        decoding Russian transmissions.

        It was largely due to the efforts of thousands of Real
        Programmers working for NASA that our boys got to the moon and
        back before the Russkies.

        Real Programmers are at work for Boeing designing the
        operating systems for cruise missiles.

        Some of the most awesome Real Programmers of all work at the
        Jet Propulsion Laboratory in California. Many of them know the
        entire operating system of the Pioneer and Voyager spacecraft
        by heart.  With a combination of large ground-based FORTRAN
        programs and small spacecraft-based assembly language
        programs, they are able to do incredible feats of navigation
        and improvisation -- hitting ten-kilometer wide windows at
        Saturn after six years in space, repairing or bypassing
        damaged sensor platforms, radios, and batteries.  Allegedly,
        one Real Programmer managed to tuck a pattern-matching program
        into a few hundred bytes of unused memory in a Voyager
        spacecraft that searched for, located, and photographed a new
        moon of Jupiter.

        The current plan for the Galileo spacecraft is to use a
        gravity assist trajectory past Mars on the way to Jupiter.
        This trajectory passes within 80 +/-3 kilometers of the
        surface of Mars.  Nobody is going to trust a PASCAL program
        (or a PASCAL programmer) for navigation to these tolerances.

        As you can tell, many of the world's Real Programmers work for
        the U.S.  Government -- mainly the Defense Department.  This
        is as it should be.  Recently, however, a black cloud has
        formed on the Real Programmer horizon.  It seems that some
        highly placed Quiche Eaters at the Defense Department decided
        that all Defense programs should be written in some grand
        unified language called "ADA" ((C), DoD).  For a while, it
        seemed that ADA was destined to become a language that went
        against all the precepts of Real Programming -- a language
        with structure, a language with data types, {strong typing},
        and semicolons.  In short, a language designed to cripple the
        creativity of the typical Real Programmer.  Fortunately, the
        language adopted by DoD has enough interesting features to
        make it approachable -- it's incredibly complex, includes
        methods for messing with the operating system and rearranging
        memory, and Edsgar Dijkstra doesn't like it [6].  (Dijkstra,
        as I'm sure you know, was the author of "GoTos Considered
        Harmful" -- a landmark work in programming methodology,
        applauded by PASCAL programmers and Quiche Eaters alike.)
        Besides, the determined Real Programmer can write FORTRAN
        programs in any language.

        The Real Programmer might compromise his principles and work
        on something slightly more trivial than the destruction of
        life as we know it, providing there's enough money in
        it. There are several Real Programmers building video games at
        Atari, for example. (But not playing them -- a Real Programmer
        knows how to beat the machine every time: no challenge in
        that.)  Everyone working at LucasFilm is a Real Programmer.
        (It would be crazy to turn down the money of fifty million
        Star Trek fans.)  The proportion of Real Programmers in
        Computer Graphics is somewhat lower than the norm, mostly
        because nobody has found a use for computer graphics yet.  On
        the other hand, all computer graphics is done in FORTRAN, so
        there are a fair number of people doing graphics in order to
        avoid having to write COBOL programs.

        THE REAL PROGRAMMER AT PLAY

        Generally, the Real Programmer plays the same way he works --
        with computers. He is constantly amazed that his employer
        actually pays him to do what he would be doing for fun anyway
        (although he is careful not to express this opinion out loud).
        Occasionally, the Real Programmer does step out of the office
        for a breath of fresh air and a beer or two.  Some tips on
        recognizing Real Programmers away from the computer room:

        At a party, the Real Programmers are the ones in the corner
        talking about operating system security and how to get around
        it.

        At a football game, the Real Programmer is the one comparing
        the plays against his simulations printed on 11 by 14 fanfold
        paper.

        At the beach, the Real Programmer is the one drawing
        flowcharts in the sand.

        At a funeral, the Real Programmer is the one saying "Poor
        George. And he almost had the sort routine working before the
        coronary."

        In a grocery store, the Real Programmer is the one who insists
        on running the cans past the laser checkout scanner himself,
        because he never could trust keypunch operators to get it
        right the first time.

        THE REAL PROGRAMMER'S NATURAL HABITAT

        What sort of environment does the Real Programmer function
        best in?  This is an important question for the managers of
        Real Programmers. Considering the amount of money it costs to
        keep one on the staff, it's best to put him (or her) in an
        environment where he can get his work done.

        The typical Real Programmer lives in front of a computer
        terminal.  Surrounding this terminal are:

        Listings of all programs the Real Programmer has ever worked
        on, piled in roughly chronological order on every flat surface
        in the office.

        Some half-dozen or so partly filled cups of cold
        coffee. Occasionally, there will be cigarette butts floating
        in the coffee. In some cases, the cups will contain Orange
        Crush.

        Unless he is very good, there will be copies of the OS JCL
        manual and the Principles of Operation open to some
        particularly interesting pages.

        Taped to the wall is a line-printer Snoopy calendar for the
        year 1969.

        Strewn about the floor are several wrappers for peanut butter
        filled cheese bars -- the type that are made pre-stale at the
        bakery so they can't get any worse while waiting in the
        vending machine.

        Hiding in the top left-hand drawer of the desk is a stash of
        double-stuff Oreos for special occasions.

        Underneath the Oreos is a flowcharting template, left there by
        the previous occupant of the office.  (Real Programmers write
        programs, not documentation. Leave that to the maintenance
        people.)

        The Real Programmer is capable of working 30, 40, even 50
        hours at a stretch, under intense pressure. In fact, he
        prefers it that way.  Bad response time doesn't bother the
        Real Programmer -- it gives him a chance to catch a little
        sleep between compiles.  If there is not enough schedule
        pressure on the Real Programmer, he tends to make things more
        challenging by working on some small but interesting part of
        the problem for the first nine weeks, then finishing the rest
        in the last week, in two or three 50-hour marathons.  This not
        only impresses the hell out of his manager, who was despairing
        of ever getting the project done on time, but creates a
        convenient excuse for not doing the documentation.  In
        general:

        No Real Programmer works 9 to 5 (unless it's the ones at
        night).

        Real Programmers don't wear neckties.

        Real Programmers don't wear high-heeled shoes.

        Real Programmers arrive at work in time for lunch [9].

        A Real Programmer might or might not know his wife's name. He
        does, however, know the entire ASCII (or EBCDIC) code table.

        Real Programmers don't know how to cook.  Grocery stores
        aren't open at three in the morning.  Real Programmers survive
        on Twinkies and coffee.

        THE FUTURE

        What of the future?  It is a matter of some concern to Real
        Programmers that the latest generation of computer programmers
        are not being brought up with the same outlook on life as
        their elders.  Many of them have never seen a computer with a
        front panel.  Hardly anyone graduating from school these days
        can do hex arithmetic without a calculator.  College graduates
        these days are soft -- protected from the realities of
        programming by source level debuggers, text editors that count
        parentheses, and "user friendly" operating systems.  Worst of
        all, some of these alleged "computer scientists" manage to get
        degrees without ever learning FORTRAN!  Are we destined to
        become an industry of Unix hackers and PASCAL programmers?

        From my experience, I can only report that the future is
        bright for Real Programmers everywhere. Neither OS\370 nor
        FORTRAN show any signs of dying out, despite all the efforts
        of PASCAL programmers the world over.  Even more subtle
        tricks, like adding structured coding constructs to FORTRAN
        have failed.  Oh sure, some computer vendors have come out
        with FORTRAN 77 compilers, but every one of them has a way of
        converting itself back into a FORTRAN 66 compiler at the drop
        of an option card -- to compile DO loops like God meant them
        to be.

        Even Unix might not be as bad on Real Programmers as it once
        was.  The latest release of Unix has the potential of an
        operating system worthy of any Real Programmer -- two
        different and subtly incompatible user interfaces, an arcane
        and complicated teletype driver, virtual memory.  If you
        ignore the fact that it's "structured", even 'C' programming
        can be appreciated by the Real Programmer: after all, there's
        no type checking, variable names are seven (ten?  eight?)
        characters long, and the added bonus of the Pointer data type
        is thrown in -- like having the best parts of FORTRAN and
        assembly language in one place.  (Not to mention some of the
        more creative uses for #define.)

        No, the future isn't all that bad.  Why, in the past few
        years, the popular press has even commented on the bright new
        crop of computer nerds and hackers ([7] and [8]) leaving
        places like Stanford and M.I.T. for the Real World.  From all
        evidence, the spirit of Real Programming lives on in these
        young men and women.  As long as there are ill-defined goals,
        bizarre bugs, and unrealistic schedules, there will be Real
        Programmers willing to jump in and Solve The Problem, saving
        the documentation for later.  Long live FORTRAN!

        ACKNOWLEGEMENT

        I would like to thank Jan E., Dave S., Rich G., Rich E., for
        their help in characterizing the Real Programmer, Heather
        B. for the illustration, Kathy E. for putting up with it, and
        atd!avsdS:mark for the initial inspiration.

        REFERENCES

        [1] Feirstein, B., "Real Men don't Eat Quiche", New York,
        Pocket Books, 1982.

        [2] Wirth, N., "Algorithms + Data Structures Programs",
        Prentice Hall, 1976.

        [3] Ilson, R., "Recent Research in Text Processing", IEEE
        Trans.  Prof.  Commun., Vol.  PC-23, No.  4, Dec.  4, 1980.

        [4] Finseth, C., "Theory and Practice of Text Editors -- or --
        a Cookbook for an EMACS", B.S.  Thesis, MIT/LCS/TM-165,
        Massachusetts Institute of Technology, May 1980.

        [5] Weinberg, G., "The Psychology of Computer Programming",
        New York, Van Nostrand Reinhold, 1971, p.  110.

        [6] Dijkstra, E., "On the GREEN language submitted to the
        DoD", Sigplan notices, Vol. 3 No.  10, Oct 1978.

        [7] Rose, Frank, "Joy of Hacking", Science 82, Vol. 3 No.  9,
        Nov 82, pp.  58-66.

        [8] "The Hacker Papers", Psychology Today, August 1980.

        [9] sdcarl!lin, "Real Programmers", UUCP-net, Thu Oct 21
        16:55:16 1982.

        Ed Post, "Real Programmers Don't Use Pascal", DATAMATION, July
        1983, pp. 263-265 (Readers' Forum).

        (1997-08-29)

Real Soon Now

        (RSN) [Originally from SF's fanzine community, popularised by
        Jerry Pournelle's column in "BYTE"] 1. Supposed to be
        available (or fixed, or cheap, or whatever) real soon now
        according to somebody, but the speaker is quite skeptical.

        2. When one's gods, fates, or other time commitments permit
        one to get to it (in other words, don't hold your breath).

real-time

        1. Describes an application which requires a program to
        respond to stimuli within some small upper limit of response
        time (typically milli- or microseconds).  Process control at a
        chemical plant is the classic example.  Such applications
        often require special operating systems (because everything
        else must take a back seat to response time) and speed-tuned
        hardware.

        2. In jargon, refers to doing something while people are
        watching or waiting.  "I asked her how to find the calling
        procedure's program counter on the stack and she came up with
        an algorithm in real time."

        Used to describe a system that must guarantee a response to an
        external event within a given time.

        (1997-11-23)

Realtime Disk Operating System

        <operating system> A {Data General} {operating system}
        developed in the 1970s or 1980s.  When used in conjuction with
        a {BASIC} (e.g. {Business Basic}) it could support 16
        concurrent users at the {record locking} level and two
        printers all on 128K memory.

        Reputedly {IBM} wanted to license this for the first {IBM PC}
        but DG turned them down so they went to {Microsoft} instead.
        How different the world could have been.

        [Before or after IBM wanted {CP/M}?]

        (1997-11-23)

Real-Time Euclid

        Real-time language, restriction to time-bounded constructs.
        ["Real-Time Euclid: A Language for Reliable Real-Time
        Systems", E. Kligerman et al, IEEE Trans Software Eng
        SE-12(9):941-1986-09-949].

Real-Time Mentat

        An extension of C++.  "Real-Time Mentat: A Data-Driven
        Object-Oriented System", A.S. Grimshaw et al, Proc IEEE
        Globecom, Nov 1989 pp.232-241.

Real-Time Object-Oriented Modeling

        <programming> (ROOM Methodology)

        {Home (http://www.objectime.on.ca/ROOM.HTML)}.

        [Summary?]

        (1997-02-17)

Real-Time Operating System

        <operating system> (RTOS) Any {operating system} where
        interrupts are guaranteed to be handled within a certain
        specified maximum time, thereby making it suitable for control
        of hardware in {embedded systems} and other time-critical
        applications.  RTOS is not a specific product but a class of
        operating systems.

        [Other criteria?]

        (1998-02-27)

Real-Time Pascal

        <language> A later name for {Pascal-80} by {RC International},
        Denmark.

        (1995-05-09)

Real Time Streaming Protocol

        <multimedia, networking, protocol> (RTSP) An {application
        layer} {protocol} for controlling delivery of a {stream} of
        {real-time} {multimedia} content.  RTSP allows users to start
        playing from a certain position.  It does not actually deliver
        the data, but works alongside existing delivery channels such
        as {UDP}, {TCP}, or IP {multicast}.

        RTSP was developed by {RealNetworks}, {Netscape
        Communications}, and {Columbia University}, and is described
        in {RFC 2326}, April 1998.  RTSP is an {IETF} proposed
        {standard}.
        
        {FAQ
        (http://www.real.com/devzone/library/fireprot/rtsp/faq.html)}.

        (1999-08-26)

real-time structured analysis

        <programming> (RTSA) Any version of {structured analysis}
        capable of modelling {real-time} aspects of software.

        (1995-04-06)

real user

        1. A commercial user.  One who is paying *real* money for his
        computer usage.

        2. A non-hacker.  Someone using the system for an explicit
        purpose (a research project, a course, etc.)  other than pure
        exploration.  See {user}.  Hackers who are also students may
        also be real users.  "I need this fixed so I can do a problem
        set.  I'm not complaining out of randomness, but as a real
        user."  See also {luser}.

Real World

        1. Those institutions at which "programming" may be used in
        the same sentence as "FORTRAN", "{COBOL}", "RPG", "{IBM}",
        "DBASE", etc.  Places where programs do such commercially
        necessary but intellectually uninspiring things as generating
        payroll checks and invoices.

        2. The location of non-programmers and activities not related
        to programming.

        3. A bizarre dimension in which the standard dress is shirt
        and tie and in which a person's working hours are defined as 9
        to 5 (see {code grinder}).

        4. Anywhere outside a university.  "Poor fellow, he's left MIT
        and gone into the Real World."  Used pejoratively by those not
        in residence there.  In conversation, talking of someone who
        has entered the Real World is not unlike speaking of a
        deceased person.  It is also noteworthy that on the campus of
        Cambridge University in England, there is a gaily-painted
        lamp-post which bears the label "REALITY CHECKPOINT".  It
        marks the boundary between university and the Real World;
        check your notions of reality before passing.  This joke is
        funnier because the Cambridge "campus" is actually coextensive
        with the centre of Cambridge.

        See also {fear and loathing}, {mundane}, {uninteresting}.

reaper

        A {prowler} that {GFR}s files.  A file removed in this way is
        said to have been "reaped".

reassembly

        {segmentation}

reboot

        <operating system> (From {boot}) A {boot} with the implication
        that the computer has not been down for long, or that the
        {boot} is a {bounce} intended to clear some state of
        {wedgitude}.

        See {warm boot}.

        (1995-11-27)

REC

        Regular Expression Converter.  See {CONVERT}.

recipe

        {suspension}

Recital

        {dBASE}-like language and {DBMS} from Recital Corporation.
        Versions include {Vax} {VMS}.

RECOL

        REtrieval COmmand Language.  CACM 6(3):117-122 (Mar 1963).

Recommended Standard

        <standard> (RS) A series of {EIA} {standards} including
        {RS-232}.

        (1995-03-28)

record

        <data, database> An {ordered set} of {fields}.  The term is
        used in both files (where a record is also called a "line")
        and {databases} (where it is also called a "row").  In a
        {spreadsheet} it is always called a "row".  In all these cases
        the records represent different entities with different values
        for the attributes represented by the fields.

        Fields may be of a fixed width ({bit}s or {characters}) or
        they may be separated by a {delimiter} character, often
        {comma} ({CSV}) or {HT} ({TSV}).

        The collection of all values of a given field from all records
        is called a column.

        (1999-07-05)

Record Management Services

        (RMS) A set of {operating system} procedures that is called by
        programs to process files and records within files.  {VMS} RMS
        allows programs to issue GET and PUT requests at the record
        level (record I/O) as well as read and write blocks (block
        I/O).  VMS RMS is and integral part of the system software;
        its procedures run in {executive mode}.

Record Separator

        <character> (RS) {ASCII} character 30.

rectangle slinger

        See {polygon pusher}.

recurse

        To perform {recursion}.

recursion

        <mathematics, programming> When a {function} (or {procedure})
        calls itself.  Such a function is called "recursive".  If the
        call is via one or more other functions then this group of
        functions are called "mutually recursive".

        If a function will always call itself, however it is called,
        then it will never terminate.  Usually however, it first
        performs some test on its arguments to check for a "base case"
        - a condition under which it can return a value without
        calling itself.

        The {canonical} example of a recursive function is
        {factorial}:

                factorial 0 = 1
                factorial n = n * factorial (n-1)

        {Functional programming languages} rely heavily on recursion,
        using it where a {procedural language} would use {iteration}.

        See also {recursion}, {recursive definition}, {tail recursion}.

        (1996-05-11)

recursion theory

        <theory> The study of problems that, in principle, cannot be
        solved by either computers or humans.

        [Proper definition?]

        (1999-03-01)

recursive

        {recursion}

recursive acronym

        <convention> A hackish (and especially {MIT}) tradition is to
        choose acronyms and abbreviations that refer humorously to
        themselves or to other acronyms or abbreviations.  The classic
        examples were two MIT editors called {EINE} ("EINE Is Not
        {EMACS}") and {ZWEI} ("ZWEI Was EINE Initially").  More
        recently, there is a {Scheme} compiler called {LIAR} (Liar
        Imitates Apply Recursively), and {GNU} stands for "GNU's Not
        Unix!" - and a company with the name {CYGNUS}, which expands
        to "Cygnus, Your GNU Support".

        See also {mung}.

        (1995-04-28)

recursive definition

        See {recursive definition}.

recursive descent parser

        <grammar> A "top-down" {parser} built from a set of
        {mutually-recursive} procedures or a non-recursive equivalent
        where each such procedure usually implements one of the
        {production}s of the {grammar}.  Thus the structure of the
        resulting program closely mirrors that of the grammar it
        recognises.

        ["Recursive Programming Techniques", W.H. Burge, 1975, ISBN
        0-201-14450-6].

        (1995-04-28)

Recursive Functional Algorithmic Language

        <language> (REFAL) A language developed by V.F. Turchin (later
        at {CUNY}?) in Moscow in about 1972.

        See also {supercompilation}.

        [V.F. Turchin, "An algorithm of generalisation in the
        supercompiler", Workshop on partial evaluation and mixed
        computations, Oct 1987, Denmark, Eds. D. Bjorner, A.P. Ershov,
        N.D. Jones].

        [V. Turchin, "Supercompiler System Based on the Language
        Refal", V. Turchin, SIGPLAN Notices 14(2):46-54 (Feb 1979)].

        (1998-06-29)

Recursive Macro Actuated Generator

        <tool> (RMAG) Robert A. Magnuson, NIH ca 1970.

        A stand-alone macroprocessor for IBM 360/370 under VS or
        OS. Many built-in features and a library of several hundred
        macros.  Several large systems were written in RMAG to
        generate source code for languages such as IBM JCL, IBM
        assembly language, COBOL.

        There was also a system (SLANG: Structured LANGuage compiler)
        which would generate 370 assembly language from a
        pseudo-structured-programming language, based on Michael
        Kessler's structure programming macros developed at IBM.

        ["Project RMAG--RMAG22 User's Guide", R.A. Magnuson,
        NIH-DCRT-DMB-SSS-UG103, NIH, DHEW, Bethesda, MD 20205 (1977)].

        (1995-11-23)

recursive type

        A data type which contains itself.  The commonest example is
        the list type, in {Haskell}:

                data List a = Nil | Cons a (List a)

        which says a list of a's is either an empty list or a {cons
        cell} containing an 'a' (the "head" of the list) and another
        list (the "tail").

        Recursion is not allowed in {Miranda} or Haskell {synonym
        type}s, so the following {Haskell} types are illegal:

                type Bad = (Int, Bad)
                type Evil = Bool -> Evil

        whereas the seeminly equivalent {algebraic data type}s are
        acceptable:

                data Good = Pair Int Good
                data Fine = Fun (Bool->Fine)

Red

        (Or "REDL") A language proposed by {Intermetrics} to meet the
        {Ironman} requirements which led to {Ada}.

        ["On the RED Language Submitted to the DoD", E.W. Dijkstra,
        SIGPLAN Notices 13(10):27 (Oct 1978)].

        ["RED Language Reference Manual", J. Nestor and M. van Deusen,
        Intermetrics 1979].

        (1995-01-19)

Red Book

        1.  <publication> Informal name for one of the four standard
        references on {PostScript}.  The other three official guides
        are known as the {Blue Book}, the {Green Book}, and the {White
        Book}.

        ["PostScript Language Reference Manual", Adobe Systems,
        Addison-Wesley, 1985 (ISBN 0-201-10174-2); second edition
        1990 (ISBN 0-201-18127-4)].

        2. <publication> Informal name for one of the three standard
        references on Smalltalk.  This book also has blue and green
        siblings.

        ["Smalltalk-80: The Interactive Programming Environment",
        Adele Goldberg, Addison-Wesley, 1984; (ISBN 0-201-11372-4)].

        3.  <publication> Any of the 1984 standards issued by the
        {ITU-T} eighth plenary assembly.  These include, among other
        things, the {X.400} {electronic mail} specification, the Group
        1 through 4 fax standards, {ISDN}, the R2 signalling system
        (Q.400 series recommendations), data communication via the
        {PSTN} (the V series recommendations) and tariffs and metering
        principles (the D series).

        4.  <publication> The new version of the {Green Book} - IEEE
        1003.1-1990, also known as ISO 9945-1 - is (because of the
        colour and the fact that it is printed on A4 paper) known in
        the USA. as "the Ugly Red Book That Won't Fit On The Shelf"
        and in Europe as "the Ugly Red Book That's A Sensible Size".

        5.  <publication> The NSA "Trusted Network Interpretation"
        companion to the {Orange Book}.

        See also {book titles}.

Red Brick Intelligent SQL

        <database> (RISQL) A vendor-specific extension to {SQL}
        designed specifically for business managers.  It augments SQL
        with a variety of operations appropriate to data analysis and
        {decision support} applications such as ranking, moving
        averages, comparisons, market share, this year vs. last year,
        etc.  It was developed to simplify the creation of complex
        business queries.

        {Home
        (http://www.redbrick.com/products/white/papers/risql/risql.html)}.

        (1998-10-15)

Redcode

        <language> The {ICWS} standard language for {Core War} "battle
        programs".

        [Spec?]

        (1998-10-30)

redex

        Reducible Expression.  An expression matching the left hand
        side of a {reduction rule} or definition.

Red Hat

        <operating system> A distribution of {Linux}.

        {Home (http://www.redhat.com/)}.

        (1996-12-21)

RediLisp

        R.M. Keller, U Utah.  Dialect of Lisp used on the Rediflow
        machine, a derivative of FEL.

redirection

        1. <operating system> {input/output redirection}.

        2. <World-Wide Web> {URL redirection}.

        (1997-07-15)

redirector

        {network redirector}

RedNet Ltd.

        A systems integration company who also provide "onLine", an
        {Internet} service aimed at both hobbyists and corporate
        end-users.  The service offers {dial-in} {PoP}s in London,
        Birmingham, Bristol, Cambridge, Manchester and Edinburgh.  All
        {PoP}s are {V.32bis}, {V.42} and {V.42 bis} compatible with
        {MNP4} and {MNP5}.

        You can connect to the {PoP}s using {slip} or {PPP}, all
        required software is provided preconfigured.

        For GBP15 per month (ex VAT) you get a {POP3} {electronic
        mail} account, {dial-up} access to the {Internet} and all the
        the {Internet} goodies you want including {NSFnet}.

        {(http://www.rednet.co.uk)}

        E-mail: <info@rednet.co.uk> (with INFO in the body).

        {Snail mail}: RedNet Ltd., 6 Cliveden Office Village, Lancaser
        Road, High Wycombe, Bucks, HP12 3YZ, UK.  Telephone: +44
        (1494) 513 333.  Fax: +44 (494) 443 374.

        (1994-11-08)

redocumentation

        The creation or revision of a semantically equivalent
        representation within the same relative abstraction level.
        The resulting forms of representation are usually considered
        alternate views intended for a human audience.

REDUCE

        <language, mathematics> A {symbolic mathematics} language with
        {ALGOL}-like {syntax}, written in {Lisp} by Anthony Hearn in
        1963.

        Reduce 2 is a version based on {Portable Standard LISP}.

        {Home (http://www.rrz.uni-koeln.de/REDUCE/)}.

        E-mail: <reduce@rand.org>.

        Server: reduce-netlib@rand.org.

        ["REDUCE, Software for Algebraic Computation", G. Rayna,
        Springer 1987].

        (1994-10-31)

Reduced Instruction Set Computer

        <processor> (RISC) A {processor} whose design is based on the
        rapid execution of a sequence of simple instructions rather
        than on the provision of a large variety of complex
        instructions (as in a {Complex Instruction Set Computer}).

        Features which are generally found in RISC designs are uniform
        instruction encoding (e.g. the {op-code} is always in the same
        bit positions in each instruction which is always one word
        long), which allows faster decoding; a homogenous {register
        set}, allowing any register to be used in any context and
        simplifying {compiler} design; and simple {addressing mode}s
        with more complex modes replaced by sequences of simple
        arithmetic instructions.

        Examples of (more or less) RISC processors are the {Berkeley
        RISC}, {HP-PA}, {Clipper}, {i960}, {AMD 29000}, {MIPS R2000}
        and {DEC Alpha}.  {IBM}'s first RISC computer was the {RT/PC}
        ({IBM 801}), they now produce the RISC-based {RISC
        System/6000} and {SP/2} lines.

        Despite {Apple Computer}'s bogus claims for their
        {PowerPC}-based {Macintosh}es, the first RISC processor used
        in a {personal computer} was the {Advanced RISC Machine} (ARM)
        used in the {Acorn} {Archimedes}.

        (1997-06-03)

reduction

        (Or "contraction") The process of transforming an expression
        according to certain reduction rules.  The most important
        forms are {beta reduction} (application of a {lambda
        abstraction} to one or more argument expressions) and {delta
        reduction} (application of a mathematical function to the
        required number of arguments).

        An {evaluation strategy} (or {reduction strategy}), determines
        which part of an expression (which redex) to reduce first.
        There are many such strategies.

        See {graph reduction}, {string reduction}, {normal order
        reduction}, {applicative order reduction}, {parallel
        reduction}, {alpha conversion}, {beta conversion}, {delta
        conversion}, {eta conversion}.

        (1995-02-21)

reduction strategy

        <theory> An {algorithm} for deciding which {redex}(es) to
        reduce next.  Different strategies have different termination
        properties in the presence of {recursive} functions or values.

        See {string reduction}, {normal order reduction}, {applicative
        order reduction}, {parallel reduction}

        (1995-05-09)

redundancy

        1. <parallel> The provision of multiple interchangeable
        components to perform a single function in order to cope with
        failures and errors.  Redundancy normally applies primarily to
        hardware.  For example, one might install two or even three
        computers to do the same job.  There are several ways these
        could be used.  They could all be active all the time thus
        giving extra performance through {parallel processing} as well
        as extra availability; one could be active and the others
        simply monitoring its activity so as to be ready to take over
        if it failed ("warm standby"); the "spares" could be kept
        turned off and only switched on when needed ("cold standby").
        Another common form of hardware redundancy is {disk
        mirroring}.

        Redundancy can also be used to detect and recover from errors,
        either in hardware or software.  A well known example of this
        is the {cyclic redundancy check} which adds redundant data to
        a block in order to detect corruption during storage or
        transmission.  If the cost of errors is high enough, e.g. in a
        {safety-critical system}, redundancy may be used in both
        hardware AND software with three separate computers programmed
        by three separate teams and some system to check that they all
        produce the same answer, or some kind of majority voting
        system.

        2. <communications> The proportion of a message's gross
        information content that can be eliminated without losing
        essential information.

        Technically, redundancy is one minus the ratio of the actual
        uncertainty to the maximum uncertainty.  This is the fraction
        of the structure of the message which is determined not by the
        choice of the sender, but rather by the accepted statistical
        rules governing the choice of the symbols in question.

        [Shannon and Weaver, 1948, p. l3]

        [Better explanation?]

        (1995-05-09)

Redundant Array of Inexpensive Disks

        It's {Redundant Arrays of Independent Disks}.

Redundant Arrays of Independent Disks

        <storage, architecture> (RAID.  Originally "Redundant Arrays
        of Inexpensive Disks") A project at the computer science
        department of the {University of California at Berkeley},
        under the direction of Professor Katz, in conjunction with
        Professor {John Ousterhout} and Professor {David Patterson}.

        The project is reaching its culmination with the
        implementation of a prototype disk array file server with a
        capacity of 40 GBytes and a sustained bandwidth of 80
        MBytes/second.  The server is being interfaced to a 1 Gb/s
        {local area network}.  A new initiative, which is part of the
        {Sequoia 2000} Project, seeks to construct a geographically
        distributed storage system spanning disk arrays and automated
        libraries of {optical disk}s and tapes.  The project will
        extend the interleaved storage techniques so successfully
        applied to disks to tertiary storage devices.  A key element
        of the research will be to develop techniques for managing
        latency in the I/O and network paths.

        The original ("..Inexpensive..") term referred to the 3.5 and
        5.25 inch disks used for the first RAID system but no longer
        applies.

        The following standard RAID specifications exist:

         RAID 0 Non-redundant striped array
         RAID 1 Mirrored arrays
         RAID 2 Parallel array with ECC
         RAID 3 Parallel array with parity
         RAID 4 Striped array with parity
         RAID 5 Striped array with rotating parity

        {(ftp://wuarchive.wustl.edu/doc/techreports/berkeley.edu/raid/raidPaper
s)}.
        {(http://HTTP.CS.Berkeley.EDU/projects/parallel/research_summaries/14-C
omputer-Architecture/)}.

        ["A Case for Redundant Arrays of Inexpensive Disks (RAID)",
        "D. A. Patterson and G. Gibson and R. H. Katz", Proc ACM
        SIGMOD Conf, Chicago, IL, Jun 1988].

        ["Introduction to Redundant Arrays of Inexpensive Disks
        (RAID)", "D. A. Patterson and P. Chen and G. Gibson and
        R. H. Katz", IEEE COMPCON 89, San Francisco, Feb-Mar 1989].

        (1995-07-20)

Redundant Arrays of Inexpensive Disks

        Renamed {Redundant Arrays of Independent Disks}.

red wire

        (IBM) Patch wires installed by programmers who have no
        business mucking with the hardware.  It is said that the only
        thing more dangerous than a hardware guy with a code patch is
        a {softy} with a soldering iron.

        Compare {blue wire}, {yellow wire}, {purple wire}.

        (1994-12-23)

red zone

        <networking> An environment located between internal and
        external {firewalls} where software and hardware are deployed
        to enable access to {extranet} applications.

        Compare {De-Militarised Zone}.

        (1997-11-05)

re-engineering

        The examination and modification of a system to reconstitute
        it in a new form and the subsequent implementation of the new
        form.

        {(http://www.erg.abdn.ac.uk/users/brant/sre)}

        (1994-12-23)

re-entrant

        <programming> Used to describe code which can have multiple
        simultaneous, interleaved, or nested invocations which will
        not interfere with each other.  This is important for
        {parallel processing}, {recursive} functions or subroutines,
        and {interrupt handling}.

        It is usually easy to arrange for multiple invocations
        (e.g. calls to a subroutine) to share one copy of the code and
        any read-only data but, for the code to be re-entrant, each
        invocation must use its own copy of any modifiable data (or
        synchronised access to shared data).  This is most often
        achieved using a {stack} and allocating local variables in a
        new {stack frame} for each invocation.  Alternatively, the
        caller may pass in a pointer to a block of memory which that
        invocation can use (usually for outputting the result) or the
        code may allocate some memory on a {heap}, especially if the
        data must survive after the routine returns.

        Re-entrant code is often found in system software, such as
        {operating systems} and {teleprocessing monitors}.  It is also
        a crucial component of {multithreaded} programs where the term
        "thread-safe" is often used instead of "re-entrant".

        (1996-12-21)

REFAL

        {Recursive Functional Algorithmic Language}

REF-ARF

        ["REF-ARF: A System for Solving Problems Stated as
        Procedures", R.E. Fikes, Artif Intell J 1(1), Spring 1970].

        (1998-06-29)

reference

        {pointer}

reference counting

        <programming> A {garbage collection} technique where each
        {memory cell} contains a count of the number of other cells
        which point to it.  If this count reaches zero the cell is
        freed and its {pointers} to other cells are followed to
        decrement their counts, and so on {recursively}.

        This technique cannot cope with {circular data structures}.
        Cells in such structures refer (indirectly) to themselves and
        so will never have a zero reference count.  This means they
        would never be reclaimed, even when there are no references
        from outside the structure.

        (1995-02-22)

referential integrity

        <database> A collection of properties which should be
        possessed by data in a {relational database}.

        For example, in a database of family members, if we enter A as
        a spouse of B, we should also enter B as a spouse of A.
        Similarly, if we remove one end of the relationship we should
        also remove the other.

        (1998-02-18)

referentially transparent

        {referential transparency}

referential transparency

        <programming> An expression E is referentially transparent if
        any subexpression and its value (the result of evaluating it)
        can be interchanged without changing the value of E.  This is
        not the case if the value of an expression depends on global
        state which can change value.  The most common example of
        changing global state is assignment to a global variable.  For
        example, if y is a global variable in:

                f(x)
                { return x+y; }

                g(z)
                {
                  a = f(1);
                  y = y + z;
                  return a + f(1);
                }

        function g has the "{side-effect}" that it alters the value of
        y.  Since f's result depends on y, the two calls to f(1) will
        return different results even though the argument is the same.
        Thus f is not referentially transparent.  Changing the order
        of evaluation of the statements in g will change its result.

        {Pure functional languages} achieve referential transparency
        by forbidding {assignment} to global variables.  Each
        expression is a constant or a function application whose
        evaluation has no side-effect, it only returns a value and
        that value depends only on the definition of the function and
        the values of its arguments.

        We could make f above referentially transparent by passing in
        y as an argument:

                f(x, y) = x+y

        Similarly, g would need to take y as an argument and return
        its new value as part of the result:

                g(z, y)
                {
                  a = f(1, y);
                  y' = y+z;
                  return (a + f(1, y'), y');
                }

        Referentially transparent programs are more amenable to
        {formal methods} and easier to reason about because the
        meaning of an expression depends only on the meaning of its
        subexpressions and not on the order of evaluation or
        side-effects of other expressions.

        We can stretch the concept of referential transparency to
        include input and output if we consider the whole program to
        be a function from its input to its output.  The program as a
        whole is referentially transparent because it will always
        produce the same output when given the same input.  This is
        stretching the concept because the program's input may include
        what the user types, the content of certain files or even the
        time of day.  If we do not consider global state like the
        contents of files as input, then writing to a file and reading
        what was written behaves just like assignment to a global
        variable.  However, if we must consider the state of the
        universe as an input rather than global state then any
        {deterministic} system would be referentially transparent!

        See also {extensional equality}, {observational equivalence}.

        (1997-03-25)

referer

        <World-Wide Web> A misspelling of "referrer" which somehow
        made it into the {HTTP} standard.  A given {web page}'s
        referer (sic) is the {URL} of whatever web page contains the
        link that the user followed to the current page.  Most
        browsers pass this information as part of a request.

        (1998-10-19)

referrer

        {referer}

REFINE

        1. "Research on Knowledge-Based Software Environments at
        Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng,
        SE-11(11) (1985).  E-mail: <maria@kestrel.edu>.

        2. Cordell Green et al, Stanford U.  Uses logic to specify and
        evolve programs.  [same as 1?] Reasoning Systems, Inc.
        E-mail: <help@reasoning.com>.

Refined C

        (RC) An extension of C to directly specify data access rights
        so that flow analysis, and hence automatic parallelisation, is
        more effective.  Research implementations only.  "Refining A
        Conventional Language For Race-Free Specification Of Parallel
        Algorithms," H.G. Dietz et al, Proc 1984 Intl Conf Parallel
        Proc, pp.380-382.

Refined Fortran

        (RF) Similar to Refined C.  Research implementations only.
        "Refined FORTRAN: Another Sequential Language for Parallel
        Programming," H.G. Dietz et al, Proc 1986 Intl Conf Parallel
        Proc, pp.184-191.

reflexive

        <theory> A {relation} R is reflexive if, for all x, x R x.

        {Equivalence relations}, {pre-orders}, {partial orders} and
        {total orders} are all reflexive.

        (1999-01-28)

reflexive domain

        A domain satisfying a recursive domain equation.
        E.g. D = D -> D.

Reflexive transitive closure

        Two elements, x and y, are related by the reflexive transitive
        closure, R+, of a relation, R, if they are related by the
        transitive closure, R*, or they are the same element.

RefLisp

        A {Lisp} {interpreter} by Bill Birch <bbirch@hemel.bull.co.uk>
        with {shallow-binding} and {dynamic scope}.  Use of {reference
        counting} makes it suitable for experimenting with {real-time}
        and {graphical user interface}s.  {Common Lisp} compatibility
        {macro}s are provided, and most of the examples in "Lisp" by
        Winston & Horn have been run on RefLisp.  RefLisp makes no
        distinction between symbol-values and function-values, so a
        symbol can be either but not both.  There are Lisp {module}s
        for {lexical scope} and for running {indefinite extent}
        {Scheme} programs.

        Version 2.67 ("Last Update for a While", the author is
        emigrating to Australia) includes an interpreter,
        documentation, examples and a profiler.  It runs under
        {MS-DOS} ({CGA}/{EGA}/{VGA}) and {AIX}.

        {(ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/mkant/Public/Lisp/implementa
tions/reflisp/)}

        (1993-02-09)

refresh

        1. <storage> {DRAM refresh}.

        2. <hardware> {screen refresh}.

        (1998-10-19)

refreshable braille display

        {braille display}

refreshable display

        {braille display}

refresh rate

        <hardware> (Or "vertical refresh rate", "vertical scan rate")
        The maximum number of {frames} that can be displayed on a
        {monitor} in a second, expressed in {Hertz}.

        The scan rate is controlled by the vertical sync signal
        generated by the {video controller}, ordering the monitor to
        position the {electron gun} at the upper left corner of the
        {raster}, ready to paint another frame.  It is limited by the
        monitor's maximum {horizontal scan rate} and the {resolution},
        since higher resolution means more {scan lines}.  Increasing
        the refresh rate decreases flickering, reducing eye strain,
        but few people notice any change above 60-72 Hz.

        (1999-08-01)

refutable

        In lazy functional languages, a refutable pattern is one which
        may fail to match.  An expression being matched against a
        refutable pattern is first evaluated to head normal form
        (which may fail to terminate) and then the top-level
        constructor of the result is compared with that of the
        pattern.  If they are the same then any arguments are matched
        against the pattern's arguments otherwise the match fails.

        An irrefutable pattern is one which always matches.  An
        attempt to evaluate any variable in the pattern forces the
        pattern to be matched as though it were refutable which may
        fail to match (resulting in an error) or fail to terminate.

        Patterns in Haskell are normally refutable but may be made
        irrefutable by prefixing them with a tilde (~).  For example,

                (\ (x,y) -> 1) undefined        ==>     undefined
                (\ ~(x,y) -> 1) undefined       ==>     1

        Patterns in Miranda are refutable, except for tuples which are
        irrefutable.  Thus

                g [x] = 2
                g undefined                     ==>     undefined

                f (x,y) = 1
                f undefined                     ==>     1

        Pattern bindings in local definitions are irrefutable in both
        languages:

                h = 1 where [x] = undefined     ==>     1
        Irrefutable patterns can be used to simulate unlifted products
        because they effectively ignore the top-level constructor of
        the expression being matched and consider only its components.

regex

        The {GNU} {regular expression} matching library.  See also
        {Rx}.

regexp

        1. {regular expression}.

        2. Name of a well-known PD regexp-handling package in portable
        C, written by revered {Usenet}ter Henry Spencer
        <henry@zoo.toronto.edu>.

Regina

        A {Rexx} {interpreter} The VMS version has an almost complete
        set of DCL lexical functions in the interpreter.  Ports to
        {MS-DOS} and OS/2 exist by lack special support for these
        {platform}s.

        conformance: Almost completely to Rexx Language Level 4.00
        with some Rexx SAA API extensions.

        Version 0.05i

        interpreter, documentation, test programs

        Anders Christensen <anders@pvv.unit.no>

        {Norway (ftp://flipper.pvv.unit.no/pub/rexx/regina-0.05g.tar.Z)}.
        {USA (ftp://rexx.uwaterloo.ca/pub/freerexx/regina/regina-0.05d.tar.Z)}

        restriction:    GNU {General Public License}

        ports:          Unix, VMS, {MS-DOS}

        (partial), OS/2 (partial) Mailing list: comp.lang.rexx

        1993/10/15

regional network

        See {mid-level network}.

register

        1. One of a small number of high-speed memory locations in a
        computer's {CPU}.  Registers differ from ordinary
        {random access memory} in several respects:

        There are only a small number of registers (the "register
        set"), typically 32 in a modern processor though some,
        e.g. {SPARC}, have as many as 144.  A register may be directly
        addressed with a few bits.  In contrast, there are usually
        millions of words of main memory (RAM), requiring at least
        twenty bits to specify a memory location.  Main memory
        locations are often specified indirectly, using an {indirect
        addressing} mode where the actual memory address is held in a
        register.

        Registers are fast; typically, two registers can be read and a
        third written -- all in a single cycle.  Memory is slower; a
        single access can require several cycles.

        The limited size and high speed of the register set makes it
        one of the critical resources in most computer architectures.
        {Register allocation}, typically one phase of the {back-end},
        controls the use of registers by a compiled program.

        See also {accumulator}, {FUBAR}, {orthogonal}, {register
        dancing}, {register allocation}, {register spilling}.

        2. An addressable location in a {memory-mapped} peripheral
        device.  E.g. the transmit data register in a {UART}.

register allocation

        The phase of a {compiler} that determines which values will be
        placed in {register}s.  Often used to include {register
        assignment}.  This problem can be shown to be isomorphic to
        {graph colouring} by relating values to nodes in the graph and
        registers to colours.  Values (nodes) which must be valid
        simultaneously are linked by edges and cannot be stored in the
        same register (coloured the same).

        See also {register dancing} and {register spilling}.

        Preston Briggs, PhD thesis, Rice University, April 1992:
        {"Register Allocation via Graph Coloring"
        (ftp://cs.rice.edu/public/preston/thesis.ps)}

register assignment

        The phase of a {compiler} that determines which {register} to
        use for each program value selected during {register
        allocation}.

register dancing

        Many older processor architectures suffer from a serious
        shortage of general-purpose registers.  This is especially a
        problem for compiler-writers, because their generated code
        needs places to store temporaries for things like intermediate
        values in expression evaluation.  Some designs with this
        problem, like the Intel 80x86, do have a handful of
        special-purpose registers that can be pressed into service,
        providing suitable care is taken to avoid unpleasant side
        effects on the state of the processor: while the
        special-purpose register is being used to hold an intermediate
        value, a delicate minuet is required in which the previous
        value of the register is saved and then restored just before
        the official function (and value) of the special-purpose
        register is again needed.

register set

        All a processor's {register}s.  The size and arrangement of a
        processor's register set is one of the crucial factors in its
        performance.

register spilling

        <programming, compiler> (By analogy with spilling the contents
        of an overfull container) When a {compiler} is generating
        {machine code} and there are more {live variables} than the
        machine has {registers} and it has to transfer or "spill" some
        variables from registers to memory.

        (1997-06-24)

Register Transfer Language

        (RTL) 1. A kind of {hardware description language} (HDL) used
        in describing the {register}s of a computer or digital
        electronic system, and the way in which data is transferred
        between them.

        2.  An intermediate code for a machine with an infinite number
        of {register}s, used for machine-independent optimisation.
        RTL was developed by Chris Fraser <cwf@research.att.com> and
        J. Davidson <jwd@virginia.edu> at the {University of Arizona}
        in the early 1980s.  RTL is used by the {GNU} C compiler,
        {gcc} and by Davidson's {VPCC} (Very Portable C compiler).

        ["Quick Compilers Using Peephole Optimisation", Davidson et
        al, Soft. Prac. & Exp. 19(1):79-97 (Jan 1989)].

        (1994-11-16)

regression

        1. <mathematics> A mathematical method where an {empirical
        function} is derived from a set of experimental data.

        2. {regression testing}.

        (1995-03-14)

regression testing

        <programming> Part of the test phase of software development
        where, as new {modules} are integrated into the system and the
        added functionality is tested, previously tested functionality
        is re-tested to assure that no new module has corrupted the
        system.

        [Bennatan, E.M., "Software Project Management", 2nd edition,
        McGraw-Hill International, 1992].

        (1995-12-04)

REG-SYMBOLIC

        An early system on the {IBM 704}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-02)

REGTRAL

        Mentioned in Attribute Grammars, LNCS 323, p.108.

        Relational Language.  Clark & Gregory.  First parallel logic
        language to use the concept of committed choice.  Forerunner
        of PARLOG.  "A Relational Language for Parallel Programming",
        K.L. Clark et al, Proc ACM Conf on Functional Prog Langs and
        Comp Arch, pp.171-178, ACM 1981.

regular expression

        1. <text, operating system> (regexp, RE) One of the {wild
        card} patterns used by {Unix} utilities such as {grep}, {sed}
        and {awk} and editors such as {vi} and {Emacs}.  These use
        conventions similar to but more elaborate than those described
        under {glob}.  A regular expression is a sequence of
        characters with the following meanings:

        An ordinary character (not one of the special characters
        discussed below) matches that character.

        A backslash (\) followed by any special character matches the
        special character itself.  The special characters are:

        "." matches any character except NEWLINE; "RE*" (where
        the "*" is called the "{Kleene star}") matches zero
        or more occurrences of RE.  If there is any choice, the
        longest leftmost matching string is chosen, in most
        regexp {flavour}s.

        "^" at the beginning of an RE matches the start of a line and
        "$" at the end of an RE matches the end of a line.

        [string] matches any one character in that string.  If the
        first character of the string is a "^" it matches
        any character (except NEWLINE, in most regexp {flavour}s)
        and the remaining characters in the string.  "-" may be used
        to indicate a range of consecutive ASCII characters.

        \( RE \) matches whatever RE matches and \n, where n is a
        digit, matches whatever was matched by the RE between the nth
        \( and its corresponding \) earlier in the same RE.  In
        many flavours ( RE ) is used instead of \( RE \)

        The concatenation of REs is a RE that matches the
        concatenation of the strings matched by each RE.

        \< matches the beginning of a word and \> matches the end of a
        word.  In many flavours of regexp, \> and \< are are replaced
        by "\b", the special character for "word boundary".

        RE\{m\} matches m occurences of RE.  RE\{m,\} matches m or
        more occurences of RE.  RE\{m,n\} matches between m and n
        occurences.

        The exact details of how regexp will work in a given
        application vary greatly from flavour to flavour.  A comprehensive
        survey of regexp flavours is found in Friedl 1997 (see below).

        [Jeffrey E.F. Friedl, "{Mastering Regular
        Expressions(http://enterprise.ic.gc.ca/~jfriedl/regex/index.html)},
        O'Reilly, 1997.]

        2. Any description of a {pattern} composed from combinations
        of {symbols} and the three {operators}:

        Concatenation - pattern A concatenated with B matches a match
        for A followed by a match for B.

        Or - pattern A-or-B matches either a match for A or a match
        for B.

        Closure - zero or more matches for a pattern.

        The earliest form of regular expressions (and the term itself)
        were invented by mathematician {Stephen Cole Kleene} in the
        mid-1950s, as a notation to easily manipulate "regular sets",
        formal descriptions of the behaviour of {finite state
        machines}, in {regular algebra}.

        [S.C. Kleene, "Representation of events in nerve nets and
        finite automata", 1956, Automata Studies. Princeton].

        [J.H. Conway, "Regular algebra and finite machines", 1971, Eds
        Chapman & Hall].

        [Sedgewick, "Algorithms in C", page 294].

        (1997-08-03)

regular graph

        <mathematics> A {graph} in which all {node}s have the same
        {degree}.

        (1995-03-07)

rehi

        <chat> Hello again.

        (1995-02-28)

Reid, Brian

        {Brian Reid}

reify

        To regard (something abstract) as a material thing.

        (1995-03-07)

reincarnation, cycle of

        {cycle of reincarnation}

reinvent the wheel

        <jargon> To design or implement a tool equivalent to an
        existing one or part of one, with the implication that doing
        so is silly or a waste of time.  This is often a valid
        criticism.  On the other hand, automobiles don't use wooden
        rollers, and some kinds of wheel have to be reinvented many
        times before you get them right.  On the third hand, people
        reinventing the wheel do tend to come up with the moral
        equivalent of a trapezoid with an offset axle.

        (1997-04-12)

relation

        1. <mathematics> A subset of the {product} of two sets, R : A
        x B.  If (a, b) is an element of R then we write a R b,
        meaning a is related to b by R.  A relation may be:
        {reflexive} (a R a), {symmetric} (a R b => b R a),
        {transitive} (a R b & b R c => a R c), {antisymmetric} (a R b
        & b R a => a = b) or {total} (a R b or b R a).

        See {equivalence relation}, {partial ordering}, {pre-order},
        {total ordering}.

        2. <database> A {table} in a {relational database}.

        (1995-02-28)

relational algebra

        <database, theory> A family of {algebra} with a {well-founded}
        {semantics} used for modelling the data stored in {relational
        databases}, and defining queries on it.  The main operations
        of the relational algebra are the {set} operations (such as
        {union}, {intersection}, and {cartesian product}), selection
        (keeping only some lines of a {table}) and the {projection}
        (keeping only some columns).

        The {relational data model} describes how the data is
        structured.

        {Codd's reduction algorithm} can convert from {relational
        calculus} to {relational algebra}.

        (1997-02-17)

relational calculus

        <database> An operational methodolgy, founded on {predicate
        calculus}, dealing with descripitive expressions that are
        equivalent to the operations of {relational algebra}.  {Codd's
        reduction algorithm} can convert from {relational calculus} to
        {relational algebra}.

        Two forms of the relational calculus exist: the {tuple
        calculus} and the {domain calculus}.

        ["An Introduction To Database Systems" (6th ed), C. J. Date,
        Addison Wesley].

        (1998-10-05)

relational database

        <database> (RDBMS - relational database management system) A
        {database} based on the {relational model} developed by
        {E.F. Codd}.  A relational database allows the definition of
        data structures, storage and retrieval operations and
        {integrity constraints}.  In such a database the data and
        relations between them are organised in {tables}.  A table is
        a collection of {records} and each record in a table contains
        the same {fields}.  Certain fields may be designated as
        {key}s, which means that searches for specific values of that
        field will use indexing to speed them up.

        Where fields in two different tables take values from the same
        set, a {join} operation can be performed to select related
        records in the two tables by matching values in those fields.
        Often, but not always, the fields will have the same name in
        both tables.  For example, an "orders" table might contain
        (customer-ID, product-code) pairs and a "products" table might
        contain (product-code, price) pairs so to calculate a given
        customer's bill you would sum the prices of all products
        ordered by that customer by joining on the product-code fields
        of the two tables.  This can be extended to joining multiple
        tables on multiple fields.  Because these relationships are
        only specified at retreival time, relational databases are
        classed as {dynamic database management system}.

        The first commercial RDBMS was the {Multics Relational Data
        Store}, first sold in 1978.

        {INGRES}, {Oracle}, {Sybase, Inc.} and {Microsoft Access} are
        well-known database products and companies.  Others include
        {SQL/DS}, {SYQUEST}, {IDMS} and {RDB}.

        ["Managing Data Bases, Four Critical Factors" Michael
        M. Gorman, QED Information Sciences, Inc.].

        ["An Introduction To Database Systems" (6th ed) C. J. Date,
        Addison Wesley (an excellent source of detailed info)].

        ["An End-User's Guide to Data Base" James Martin, Prentice
        Hall (excellent place to begin learning about DBMS)].

        (1998-10-07)

relational database management system

        {relational database}

relational data model

        <database> (Or "relational model") A {data model} introduced
        by {E.F. Codd} in 1970, particularly well suited for business
        data management.  In this model, data are organised in
        {tables}.  The set of names of the columns is called the
        "schema" of the table.

        Here is an example table with the schema (account number,
        amount) and 3 lines.

         account number     amount
         --------------  ---------
         12343243546456  +30000.00
         23149875245824   +2345.33
         18479827492874    -123.25

        The data can be manipulated using a {relational algebra}.
        {SQL} is a standard language for talking to a database built
        on the relational model (a "{relational database}").

        ["A relational model for large shared data banks"
        Communications of ACM 13:6, pp 377-387].

        (1998-10-05)

relational DBMS

        {relational database}

relational language

        <language> Relational languages specify output in terms of
        some property and some arguments.  For example, if Tom has two
        brothers, Dick and Harry, a relational language will respond
        to the query "Who is Tom's brother?" with either Dick or
        Harry.  Notice that unlike {functional language}s, relational
        languages do not require a unique output for each
        {predicate}/argument pair.  {Prolog} is the best known
        relational language.

        (1995-03-31)

relational model

        {relational data model}

RELATIVE

        Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

relatively prime

        <mathematics> Having no common divisors (greater than 1).

        Two numbers are said to be relativey prime if there is no
        number greater than unity that divides both of them evenly.

        For example, 10 and 33 are relativly prime.  15 and 33 are not
        relatively prime, since 3 is a {divisor} of both.

        (1997-03-11)

relative pathname

        <file system> A {path} relative to the {working directory}.
        Its first character can be anything but the {pathname
        separator}.

        (1996-11-21)

Relative Record Data Set

        <database> (RRDS) One of the access methods used by {IBM}'s
        {VSAM}.

        [What is it?]

        (1999-01-12)

RELCODE

        Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
        1959).

release

        <programming> (Or "released version", "baseline") A version of
        a piece of software which has been made public (as opposed to
        a version that is in development, or otherwise unreleased).

        A release is either a {major release}, a {revision}, or a
        {bugfix}.

        Pre-release versions may be called {alpha test}, or {beta
        test} versions.

        See {change management}.

        (1996-08-04)

released version

        {release}

REL English

        {Rapidly Extensible Language, English}

relevance

        <information science> A measure of how closely a given object
        (file, {web page}, database {record}, etc.) matches a user's
        search for information.

        The relevance {algorithms} used in most large web {search
        engines} today are based on fairly simple word-occurence
        measurement: if the word "daffodil" occurs on a given page,
        then that page is considered relevant to a {query} on the word
        "daffodil"; and its relevance is quantised as a factor of the
        number of times the word occurs in the page, on whether
        "daffodil" occurs in title of the page or in its META
        keywords, in the first {N} words of the page, in a heading,
        and so on; and similarly for words that a {stemmer} says are
        based on "daffodil".

        More elaborate (and resource-expensive) relevance algorithms
        may involve thesaurus (or {synonym ring}) lookup; e.g. it
        might rank a document about narcissuses (but which may not
        mention the word "daffodil" anywhere) as relevant to a query
        on "daffodil", since narcissuses and daffodils are basically
        the same thing.  Ditto for queries on "jail" and "gaol", etc.

        More elaborate forms of thesaurus lookup may involve
        multilingual thesauri (e.g. knowing that documents in Japanese
        which mention the Japanese word for "narcissus" are relevant
        to your search on "narcissus"), or may involve thesauri (often
        auto-generated) based not on equivalence of meaning, but on
        word-proximity, such that "bulb" or "bloom" may be in the
        thesaurus entry for "daffodil".

        {Word spamming} essentially attempts to falsely increase a web
        page's relevance to certain common searches.

        See also {subject index}.

        (1997-04-09)

reliability

        1. {software reliability}.

        2. {reliable communication}.

reliable communication

        Communication where messages are guaranteed to reach their
        destination complete and uncorrupted and in the order they
        were sent.  This reliability can be built on top of an
        unreliable {protocol} by adding sequencing information and
        some kind of {checksum} or {cyclic redundancy check} to each
        message or {packet}.  If the communication fails, the sender
        will be notified.  {Transmission Control Protocol} is a
        reliable protocol used on {Ethernet}.

religion of CHI

        /ki:/ [Case Western Reserve University] Yet another hackish
        parody religion (see also {Church of the SubGenius},
        {Discordianism}).  In the mid-70s, the canonical "Introduction
        to Programming" courses at CWRU were taught in {ALGOL}, and
        student exercises were punched on cards and run on a Univac
        1108 system using a homebrew operating system named CHI.  The
        religion had no doctrines and but one ritual: whenever the
        worshipper noted that a digital clock read 11:08, he or she
        would recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN,
        ARCCOS, ARCTAN."  The last five words were the first five
        functions in the appropriate chapter of the ALGOL manual; note
        the special pronunciations /obz/ and /ark'sin/ rather than the
        more common /ahbz/ and /ark'si:n/.  Using an alarm clock to
        warn of 11:08's arrival was {considered harmful}.

religious issues

        Questions which seemingly cannot be raised without touching
        off {holy wars}, such as "What is the best operating system
        (or editor, language, architecture, shell, mail reader, news
        reader)?", "What about that Heinlein guy, eh?", "What should
        we add to the new Jargon File?"  See {holy wars}; see also
        {theology}, {bigot}.

        This term is a prime example of {ha ha only serious}.  People
        actually develop the most amazing and religiously intense
        attachments to their tools, even when the tools are
        intangible.  The most constructive thing one can do when one
        stumbles into the crossfire is mumble {Get a life!} and leave
        - unless, of course, one's *own* unassailably rational and
        obviously correct choices are being slammed.

        (1996-08-16)

REM

        <programming> (From "remark") The {keyword} used in {BASIC} to
        introduce a {comment} (which continues to the end of the
        line).  {MS-DOS} probably borrowed it from {BASIC}.  Might be
        used in the form "REM out" meaning to {comment out}.

        (1998-04-27)

remailer

        {anonymous remailer}

Remote Access Services

        <communications> (RAS) A service provided by {Windows NT}
        which allows most of the services which would be available on
        a {network} to be accessed over a {modem} link.  The service
        includes support for {dialup} and {logon}, and then presents
        the same network interface as the normal network drivers
        (albeit slightly slower!).  It is not necessary to run Windows
        NT on the {client} - there are client versions for other
        {Windows} {operating systems}.

        [What services?]

        (1996-08-14)

Remote Database Access

        <database, standard> (RDBA) A standard permitting the exchange
        of information between different {DBMS} systems.

        (1998-09-23)

Remote Job Entry

        <operating system> (RJE) A system, widely used in the mid/late
        1960s, for submitting {jobs} to {mainframes} like the {IBM
        360} under {OS/MFT}.  Communication with the {computer
        operator} was via the keyboard and later via {CRT}s.

        (1999-03-26)

remote login

        <networking> A {client-server} program and {protocol} that
        provides an interactivel {command line interface} to a remote
        computer, using a {protocol} over a computer network,
        simulating a locally attached {terminal}.

        {rlogin} is the {BSD Unix} program and protocol for this,
        {telnet} is an earlier, more widely implemented protocol.

        (1999-03-26)

Remote Method Invocation

        <programming> (RMI) Part of the {Java} {programming language}
        {library} which enables a Java program running on one computer
        to access the {objects} and {method}s of another Java program
        running on a different computer.

        {Home
        (http://java.sun.com/products/jdk/1.1/docs/guide/rmi/index.html)}

        (1997-09-04)

Remote Operations Service Element

        <networking> (ROSE) A sub-layer of {protocol layer} six
        ({presentation layer}) in the {OSI} seven layer model which
        provides {SASE} for remote operations.

        Documents: {ITU} Rec. X.229 ({ISO} 9072-2), ITU Rec. X.219
        (ISO 9072-1).

        (1997-12-07)

Remote Procedure Call

        <networking, programming> (RPC) A {protocol} which allows a
        program running on one {host} to cause code to be executed on
        another host without the programmer needing to explicitly code
        for this.  RPC is an easy and popular paradigm for
        implementing the {client-server} model of {distributed
        computing}.  An RPC is initiated by the caller (client)
        sending request message to a remote system (the server) to
        execute a certain procedure using arguments supplied.  A
        result message is returned to the caller.  There are many
        variations and subtleties in various implementations,
        resulting in a variety of different (incompatible) RPC
        {protocols}.

        [RFC?]

        (1997-11-28)

Remote Reference Layer

        <protocol> (RRL) Part of {Java}'s {Remote Method Invocation}
        protocol.  RRL exists in both the RMI {client} and {server}.
        It is used by the {stub} or {skeleton} {protocol layer} and
        uses the {transport layer}.  RRL is reponsible for
        transport-independent functioning of RMI, such as {connection
        management} or {unicast}/{multicast} {object invocation}.

        [Specification URL?]

        (1997-12-03)

Remote Spooling Communication Subsystem

        <communications> (RSCS) A {networking} {protocol} used
        primarily on {Bitnet}.

        [Details?]

        (1996-02-04)

Remote Write Protocol

        <chat, protocol> (RWP) A proposed {Internet} {protocol} for
        exchanging short messages between terminals.

        The RWP proposal is detailed in {RFC 1756}.

        (1996-09-08)

removable disk

        <storage> A type of {magnetic disk}, or possibly
        {magneto-optical disk} which is not permanently attached to
        the {disk drive} (not a {fixed disk}) but which can be taken
        out and replaced, allowing many disks to be used in the same
        drive.

        {Floppy disks} are removable disks but the term is not
        commonly used for them but mostly for {hard disks} in suitable
        cartridges such as those made by {Syquest}, {Iomega} and
        others.

        Removable disks have become popular on {microcomputers} in the
        1990s since they offer a cheap way of expanding disk space,
        transporting large amounts of data between computers and
        storing back-ups.  The concept is not new however, removable
        disk packs were common on {minicomputers} such as the {PDP-11}
        in use in the 1970s except that the drives were the size of
        {washing machines} and the disk packs as big as car wheels.

        (1997-06-06)

rendering

        Generation of a graphical image from a mathematical model of a
        three-dimensional object or scene.  A common method is
        {ray-tracing}.

RenderMan Shading Language

        ["The RenderMan Companion", S. Upstill, A-W 1989, chaps
        13-15].

rendezvous

        1. In {Ada}, the method of synchronising the activity of
        different tasks.

        2. Query language, close to natural English.

        ["Seven Steps to Rendezvous with the Casual User", E. Codd in
        Data Base Management, J.W.  Klimbie et al eds, N-H 1974,
        pp.179-199].

REP

        <programming> A directive used in {IBM} {object code} {card
        decks} (and later {PTF Tapes}) to REPlace fragments of already
        assembled or compiled object code prior to {link edit}.
        Recompiling or reassembling the {source code} to produce a
        whole new object module was only possible if the {source code}
        was available, which it rarely was (if you had the object you
        were lucky!)  It was also quicker to apply incremental changes
        with REP cards and they also circumvented the {checksums} and
        {card sequence numbers} present in the object code.

        (1998-07-16)

repeat

        {repeat loop}

repeater

        <networking, communications> A network or communications
        device which propagates electrical signals from one cable to
        another, amplifying them to restore them to full strength in
        the process.  Repeaters are used to counter the attenuation
        which occurs when signals travel long distances (e.g. across
        an ocean).

        A network repeater is less intelligent than a {bridge},
        {gateway} or {router} since it works at the {physical layer}.

        (1998-07-16)

repeat loop

        <programming> (Or "do loop") A {loop} construct found in many
        {imperative} programming languages which repeatedly executes
        some instructions while a condition is true.

        It is found in {Pascal}, {BASIC} and {C} ("do" form). The
        condition may be tested with a "while" or "until" {keyword}.

        In constrast to a {while} loop, the "loop body" is executed
        once before the condition is tested.  This is useful when the
        condition depends on the action of the loop body.  In the
        following BASIC loop "Hello" is printed once despite the fact
        that the condition is false;

         i = 2
         repeat
           print "Hello"
           i = i+1
         until i>0

        See also {while loop} and {for loop}.

        (1999-05-06)

repetitive strain disorder

        {overuse strain injury}

repetitive strain injury

        {overuse strain injury}

REPL

        Restricted EPL.  The efficient subset of {EPL} used to write
        the core of {Multics}.

replacement algorithm

        The method used to determine which entry in an associative
        {cache} to flush to main memory when it is desired to cache a
        new block of data.  The "least recently used" algorithm
        flushed the block which has not been accessed for the longest
        time.  A random replacement algorithm picks any block with
        equal probability.

Replay

        {Acorn Computers}' {full-motion video} system written by Roger
        Wilson.  Video and sound information are stored in compressed
        form.  Compression is relatively slow but decompression is
        done in {real-time} with quality and {frame-rate} varying with
        the processing power available, the size of the picture and
        whether it appears in a {window} or uses the whole screen.

        (1994-11-09)

replication

        <database, networking> Creating and maintaining a duplicate
        copy of a database or file system on a different computer,
        typically a {server}.  The term usually implies the
        intelligent copying of parts of the source database which have
        changed since the last replication with the destination.

        Replication may be one-way or two-way.  Two-way replication is
        much more complicated because of the possibility that a
        replicated object may have been updated differently in the two
        locations in which case some method is needed to reconcile the
        different versions.

        For example, {Lotus Notes} can automatically distribute
        document databases across telecommunications networks.  Notes
        supports a wide range of network {protocols} including {X25}
        and {Internet} {TCP/IP}.

        Compare {mirror}.  See also {rdist}.

        (1997-12-12)

replicator

        Any construct that acts to produce copies of itself; this
        could be a living organism, an idea (see {meme}), a program
        (see {quine}, {worm}, {wabbit}, {fork bomb}, and {virus}), a
        pattern in a {cellular automaton} (see {life}), or
        (speculatively) a robot or {nanobot}.  It is even claimed by
        some that {Unix} and {C} are the symbiotic halves of an
        extremely successful replicator; see {Unix conspiracy}.

reply

        See {followup}.

Repondez s'il vous plait

        {Rpondez s'il vous plait}

Report Program Generator

        <tool> (RPG) A system produced by {IBM} in 1965 for easy
        production of sophisticated large system reports.

        Versions: RPG II, RPG III, RPG/400 for the IBM {AS/400}.
        {MS-DOS} versions by {California Software} and {Lattice}.
        UNIX version by {Unibol}.  Cross-platform version by {J & C
        Migrations} runs on {MS-DOS}, {Windows}, {AIX}, {HP-UX}, and
        {OS/390}.

        See also {CL}, {OCL}.

        [Features?]

        (1998-12-10)

repository

        1. <database> See {data dictionary}.

        2. <programming> The core of a {CASE} tool, typically a {DBMS}
        where all development documents are stored.

        (1999-04-27)

Request For Comments

        <standard> (RFC) One of a series, begun in 1969, of numbered
        {Internet} informational documents and {standard}s widely
        followed by commercial software and {freeware} in the
        {Internet} and {Unix} communities.  Few RFCs are standards but
        all Internet standards are recorded in RFCs.  Perhaps the
        single most influential RFC has been {RFC 822}, the Internet
        {electronic mail} format standard.

        The RFCs are unusual in that they are floated by technical
        experts acting on their own initiative and reviewed by the
        Internet at large, rather than formally promulgated through an
        institution such as {ANSI}.  For this reason, they remain
        known as RFCs even once adopted as standards.

        The RFC tradition of pragmatic, experience-driven,
        after-the-fact standard writing done by individuals or small
        working groups has important advantages over the more formal,
        committee-driven process typical of {ANSI} or {ISO}.

        Emblematic of some of these advantages is the existence of a
        flourishing tradition of "joke" RFCs; usually at least one a
        year is published, usually on April 1st.  Well-known joke RFCs
        have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22 June
        1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin; 1
        April 1978), and 1149 ("A Standard for the Transmission of IP
        Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April
        1990).  The first was a Lewis Carroll pastiche; the second a
        parody of the {TCP/IP} documentation style, and the third a
        deadpan skewering of standards-document legalese, describing
        protocols for transmitting Internet data packets by carrier
        pigeon.

        The RFCs are most remarkable for how well they work - they
        manage to have neither the ambiguities that are usually rife
        in informal specifications, nor the committee-perpetrated
        {misfeature}s that often haunt formal standards, and they
        define a network that has grown to truly worldwide
        proportions.

        {InterNIC (http://ds.internic.net/rfc/)}.
        {W3
        (http://www.w3.org/hypertext/DataSources/Archives/RFC_sites.html)}
        {JANET UK FTP (ftp://nic.ja.net/pub/newsfiles/JIPS/rfc)}.
        {Imperial College, UK FTP (ftp://src.doc.ic.ac.uk/rfc/)}.
        {Nexor UK (http://www.nexor.com/public/rfc/index/rfc.html)}.
        {Ohio State U
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html)}.

        See also {For Your Information}, {STD}.

        (1997-11-10)

request for proposal

        <programming> (RFP) The publication by a prospective software
        purchaser of details of the required system in order to
        attract offers by software developers to supply it.  Software
        development under contract starts with the selection of the
        software developer by the customer.  A request for proposal
        (also called in Britain an "invitation to tender") is the
        beginning of the selection process.

        [Bennatan, E.M., "Software Project Management", 2nd edition,
        McGraw-Hill International, 1992].

        (1995-12-04)

Request For Technology

        (RFT) The process established by the {OSF} to get proposals
        for new standards.

        (1994-11-30)

Required-COBOL

        A minimal subset of {COBOL} developed in 1961.  It was later
        dropped entirely.

        [Sammet 1969, p. 339].

        (1994-11-30)

requirements

        <programming> The first stage of software development which
        defines what the potential users want the system to do.  In
        modern methods these requirements should be testable, and will
        usually be traceable in later development stages.  A common
        feature of nearly all software is that the requirements change
        during its lifetime.

        See {software life-cycle}.

        (1995-11-11)

Requirements Acquisition and Controlled Evolution

        <programming, project> (RACE) A "back to basics" approach to
        {requirements engineering}.  The method, is being pieced
        together through a series of intermediate research studies.
        In essence, the approach has been to establish requirements
        for RACE, identify individual techniques that meet those
        requirements, experiment with the combined use of the
        techniques, and finally assemble the method.  In practice,
        RACE has been influenced significantly by Checkland and
        Wilson's {Soft Systems Methodology} (SSM) and this forms the
        core of the method.

        (1995-11-21)

requirements analysis

        <project> The process of reviewing a business's processes to
        determine the business needs and {functional requirements}
        that a system must meet.

        (1996-08-01)

Requirements Engineering

        <programming> The task of capturing, structuring, and
        accurately representing the user's {requirements} so that they
        can be correctly embodied in systems which meet those
        requirements (i.e. are of good quality).

        {DOORS} is one product to help with this task.

        (1995-11-11)

Research Systems, Inc.

        (RSI) Distributors of {Interactive Data Language} (IDL).

        {(ftp://gateway.rs.inc.com/pub/)}.  E-mail: <info@rsinc.com>.

        (1994-10-07)

reserved memory

        <storage> The address range 640-1024 {kilobytes} on an {IBM
        PC}, reserved for {BIOS}, {video cards}, and add-on cards.
        Depending on the configuration some of the address space may
        be unused in which case it can be used by {EMS} or {UMB}.

        (1996-01-10)

resolution

        1. <hardware> the maximum number of {pixels} that can be
        displayed on a {monitor}, expressed as (number of horizontal
        pixels) x (number of vertical pixels), i.e., 1024x768.  The
        ratio of horizontal to vertical resolution is usually 4:3, the
        same as that of conventional television sets.

        2. <logic> A mechanical method for proving statements of
        {first order logic}, introduced by J. A. Robinson in 1965.
        Resolution is applied to two {clauses} in a {sentence}.  It
        eliminates, by {unification}, a {literal} that occurs
        "positive" in one and "negative" in the other to produce a new
        clause, the {resolvent}.

        For example, given the sentence:

                (man(X) => mortal(X))  AND  man(socrates).

        The literal "man(X)" is "negative".  The literal
        "man(socrates)" could be considered to be on the right hand
        side of the degenerate implication

                True => man(socrates)

        and is therefore "positive".  The two literals can be unified
        by the binding X = socrates.

        The {truth table} for the implication function is

                A | B | A => B
                --+---+-------
                F | F |   T
                F | T |   T
                T | F |   F
                T | T |   T

        (The implication only fails if its premise is true but its
        conclusion is false).  From this we can see that

                A => B   ==   (NOT A) OR B

        Which is why the left hand side of the implication is said to
        be negative and the right positive.  The sentence above could
        thus be written

                ((NOT man(socrates)) OR mortal(socrates))
                AND
                man(socrates)

        Distributing the AND over the OR gives

                ((NOT man(socrates)) AND man(socrates))
                OR
                mortal(socrates) AND man(socrates)

        And since (NOT A) AND A == False, and False OR A == A we can
        simplify to just

                mortal(socrates) AND man(socrates)

        So we have proved the new literal, mortal(socrates).

        Resolution with {backtracking} is the basic control mechanism
        of {Prolog}.

        See also {modus ponens}, {SLD Resolution}.

        3. <networking> {address resolution}.

        (1996-02-09)

resolver

        <networking> The {TCP/IP} {protocol} library software that
        formats requests to be sent to the {Domain Name Server} for
        {hostname} to {Internet address} conversion.

        (1995-03-28)

Resource Access Control Facility

        (RACF) {IBM}'s large system security product.  It originally
        ran only under {MVS} but has since been ported to run under
        {VM}.

        (1995-02-07)

resource fork

        <file system> See {Macintosh file system}.

        (1996-03-04)

restriction

        A {bug} or design error that limits a program's capabilities,
        and which is sufficiently egregious that nobody can quite work
        up enough nerve to describe it as a {feature}.  Often used
        (especially by {marketroid} types) to make it sound as though
        some crippling bogosity had been intended by the designers all
        along, or was forced upon them by arcane technical constraints
        of a nature no mere user could possibly comprehend (these
        claims are almost invariably false).

        Old-time hacker Joseph M. Newcomer advises that whenever
        choosing a quantifiable but arbitrary restriction, you should
        make it either a power of 2 or a power of 2 minus 1.  If you
        impose a limit of 17 items in a list, everyone will know it is
        a random number - on the other hand, a limit of 15 or 16
        suggests some deep reason (involving 0- or 1-based indexing in
        binary) and you will get less {flamage} for it.  Limits which
        are round numbers in base 10 are always especially suspect.

Restructured EXtended eXecutor

        <language> (REXX, or "System Product Interpreter", originally
        known as "REX") A {script}ing language for {IBM VM} and {MVS}
        systems, developed by M. Cowlishaw at {IBM} ca. 1979,
        replacing {EXEC2}.

        Versions: PC-Rexx for {MS-DOS}, {AREXX} for the {Amiga}, the
        {OS/2} implementation from IBM, WINREXX (Rexx for Windows,
        from {Quercus systems}) and Personal Rexx (Rexx for MS-DOS,
        from Quercus systems).

        See also {Regina}, {freerexx}, {imc}.

        {REXXWARE} is an implementation of {REXX} for {Novell
        NetWare}.

        {Usenet} newsgroup: {news:comp.lang.rexx}.

        ["The REXX Language: A Practical Approach to Programming",
        M.F. Cowlishaw, 1985].

        (1992-05-13)

restructuring

        The transformation from one representation form to another at
        the same relative abstraction level, while preserving the
        subject system's external behaviour (functionality and
        semantics).

retcon

        /ret'kon/ retroactive continuity.

        The common situation in fiction where a new story "reveals"
        things about events in previous stories, usually leaving the
        "facts" the same (thus preserving continuity) while completely
        changing their interpretation.  For example, revealing that a
        whole season of "Dallas" was a dream was a retcon.

        This term was once thought to have originated on the {Usenet}
        newsgroup {news:rec.arts.comics} but is now believed to have
        been used earlier in comic fandom.

        (1994-12-08)

RETI

        {RTI}

Retrieve

        <language> A {query language} inspired {JPLDIS} which led to
        {Vulcan} and then to {dBASE II}, developed by {Tymshare Corp}
        in the 1960s.

        (1998-04-29)

retrocomputing

        /ret'-roh-k*m-pyoo'ting/ Refers to emulations of
        way-behind-the-state-of-the-art hardware or software, or
        implementations of never-was-state-of-the-art; especially if
        such implementations are elaborate practical jokes and/or
        parodies, written mostly for {hack value}, of more "serious"
        designs.  Perhaps the most widely distributed retrocomputing
        utility was the "pnch(6)" or "bcd(6)" program on V7 and other
        early Unix versions, which would accept up to 80 characters of
        text argument and display the corresponding pattern in
        {punched card} code.  Other well-known retrocomputing hacks
        have included the programming language {INTERCAL}, a
        {JCL}-emulating shell for Unix, the card-punch-emulating
        editor named 029, and various elaborate {PDP-11} hardware
        emulators and RT-11 OS emulators written just to keep an old,
        sourceless {Zork} binary running.

retronym

        <jargon> A term invented to distinguish a subclass of things
        from new members of the superclass, where the distinction was
        previously not necessary, since the old subclass had been all
        there was of the superclass.

        For example, the retronyms "{snail mail}" and "{paper mail}"
        were coined by those for who "mail" was likely to mean
        {electronic mail}.

        While the English language in general has a few retronyms
        ("whole milk", "snow skiing", "acoustic guitar"), hacker
        jargon is necessarily (at points capriciously so) rich in
        retronyms, e.g. {plaintext}, {natural language}, {impact
        printer} and {eyeball search}.

        [More examples?]

        (1998-09-07)

return from interrupt

        <programming> (RTI) An instruction {mnemonic} on many
        computers including the {6502} and {6800}.  The variant "RETI"
        is found among former {Zilog Z80} hackers (almost nobody
        programs these things in {assembly code} anymore).  The {Intel
        80x86} equivalent is "IRET".

        (1994-10-31)

return from the dead

        <jargon> To regain access to the net after a long absence.

        Compare {person of no account}.

        (1999-01-14)

Return To Zero

        <communications> A class of encoding methods for physical
        circuits in which the carrier (current, voltage) returns to
        zero after each transmitted bit, i.e. the data is carried in
        pulse width or polarity, not in the level of the signal.

        Contrast {NRZ}.

        (1995-11-11)

reusability

        See {reuse}.

reuse

        Using code developed for one {application program} in another
        application.  Traditionally achieved using program libraries.
        {Object-oriented programming} offers reusability of code via
        its techniques of {inheritance} and {genericity}.  {Class}
        libraries with {intelligent browser}s and {application
        generator}s are under development to help in this process.
        {Polymorphic} {functional language}s also support reusability
        while retaining the benefits of {strong typing}.

        See also {DRAGOON}, {National Software Reuse Directory},
        {RLF}.

Reverse Address Resolution Protocol

        <networking, protocol> (RARP) A {protocol} defined in {RFC
        903} which provides the reverse function of {ARP}.  RARP maps
        a hardware address ({MAC address}) to an {Internet address}.
        It is used primarily by {diskless nodes}, when they first
        initialise, to find their {Internet address}.

        See also {BOOTP}.

        (1994-12-08)

Reverse ARP

        {Reverse Address Resolution Protocol}

reverse engineering

        The process of analysing an existing system to identify its
        components and their interrelationships and create
        representations of the system in another form or at a higher
        level of abstraction.  Reverse engineering is usually
        undertaken in order to redesign the system for better
        maintainability or to produce a copy of a system without
        access to the design from which it was originally produced.

        For example, one might take the {executable} code of a
        computer program, run it to study how it behaved with
        different input and then attempt to write a program oneself
        which behaved identially (or better).  An {integrated circuit}
        might also be reverse engineered by an unscrupulous company
        wishing to make unlicensed copies of a popular chip.

        (1995-10-06)

Reverse Polish Notation

        {postfix notation}

Revised ALGOL 60

        {ALGOL 60 Revised}

revision

        <programming> A {release} of a piece of software which is not
        a {major release} or a {bugfix}, but only introduces small
        changes or new features.

        (1996-08-04)

Revision Control System

        <software, tool> (RCS) A {version control} system that
        automates the storing, retrieval, logging, identification, and
        merging of revisions.  RCS is useful for text that is revised
        frequently, for example programs, documentation, graphics,
        papers, and form letters.

        {Unix manual page}: rcs(1).

        ["RCS -- A System for Version Control", Walter F. Tichy,
        Software--Practice & Experience 15, 7, July 1985, 637-654].

        [Features?  Availability?  URL?]

        (1994-12-23)

Revolutionary Surrealist Vandal Party

        <body> (RSVP)
        {(http://www.impropaganda.com/kultcha.html#bullet21)}.

        (1996-12-01)

REX

        The original name for {Restructured EXtended eXecutor}.

REXX

        {Restructured EXtended eXecutor}

REXXWARE

        An implementation of {REXX} for {Novell NetWare} produced by
        {Simware, Inc.} in January 1994.  It is used by {LAN} managers
        to automate LAN administration chores on a Novell NetWare
        {server}.

        As a scripting language, REXXWARE is an NLM ({NetWare Loadable
        Module}) that runs on {Novell NetWare} servers.  It includes
        more than 275 NetWare-specific functions, plus the standard
        {REXX} {keyword}s, instructions, built-in functions,
        {flow-control}, tracing, and error trapping and recovery
        features.

        REXXWARE is certified by Novell for use with NetWare.

        E-mail: <rexxware@simware.com>.

        (1995-01-11)

RFC

        {Request For Comments}

RFC 1014

        <programming, networking, standard> The {RFC} defining
        {eXternal Data Representation}.

        {(rfc:1014)}.

        (1994-12-13)

RFC 1034

        <networking, standard> One of the {RFC}s defining the {Domain
        Name System}.

        {(rfc:1034)}.

        (1997-12-15)

RFC 1035

        <networking, standard> One of the {RFC}s defining the {Domain
        Name System}.

        {(rfc:1035)}.

        (1997-12-15)

RFC 1058

        <networking, standard> The {RFC} defining {Routing Information
        Protocol}.  Updated by {RFC 1388}.

        {(rfc:1058)}.

        (1994-11-30)

RFC 1081

        <messaging, standard> The {RFC} defining {POP3}, {Post Office
        Protocol} version 3.

        {(rfc:1081)}.

        (1994-12-12)

RFC 1094

        <standard, networking, storage> The {RFC} defining {Sun
        Microsystems}'s {Network File System} (NFS).

        {(rfc:1094)}.

        (1994-12-12)

RFC 1112

        <networking, standard> The {RFC} describing {MBONE}.

        {(rfc:1112)}.

        (1994-11-11)

RFC 1119

        <networking, standard> The {RFC} defining {Network Time
        Protocol}.

        {(rfc:1119)}.

        (1994-11-30)

RFC 1123

        <networking, standard> The {RFC} "Requirements for Internet
        Hosts Application and Support" which clarifies or changes the
        specification of protocols given in earlier RFCs.

        RFC 1123 defines the terms "MUST", "SHOULD", "MAY",
        "unconditionally compliant", "conditionally compliant".
        Capitals are used to emphasise that the official definition of
        the word is being used.

        MUST or REQUIRED means an absolute requirement for
        conformance.

        SHOULD or RECOMMENDED means the item can be ignored under
        certain circumstances, although the full implications should
        be understood.

        MAY or OPTIONAL means the implementor can choose, usually
        depending on whether it is needed or not.

        Something "unconditionally compliant" meets all the MUST and
        SHOULD requirements, "conditionally compliant" meets all the
        MUST requirements and "not compliant" - does not meet some
        MUST requirement.

        For example, RFC 1123 amends RFC952 to say software MUST
        handle either a letter or a digit as the first character of a
        {hostname}.

        {(rfc:1123)}.

        (1996-01-13)

RFC 1156

        <standard> The {RFC} which established the MIB I {Management
        Information Base} standard.

        {(rfc:1156)}.

        (1994-11-14)

RFC 1157

        <networking, standard> The {RFC} defining {Simple Network
        Management Protocol}.

        {(rfc:1157)}.

        (1994-11-14)

RFC 1171

        <protocol, standard> The {RFC} defining the {Point-to-Point
        Protocol}.

        {(rfc:1171)}.

        (1994-12-13)

RFC 1208

        <networking, standard> The {RFC} defining many of the
        network-related terms in this dictionary.

        {(rfc:1208)}.

        ["A Glossary of Networking Terms", Jacobsen, O., and D. Lynch,
        RFC 1208, Interop, Inc., March 1991.]

        (1996-08-06)

RFC 1213

        <networking, standard> The {RFC} which definied the MIB II
        {Management Information Base}.

        {(rfc:1213)}.

        (1994-11-14)

RFC 1267

        <networking, standard> One of the {RFC}s describing {Border
        Gateway Protocol}.

        {(rfc:1267)}.

RFC 1268

        <networking, standard> One of the {RFC}s describing {Border
        Gateway Protocol}.

        {(rfc:1268)}.

RFC 1321

        <messaging, standard> The {RFC} defining the {Message Digest
        5} {algorithm}.

        {(rfc:1321)}.

        (1996-08-04)

RFC 1334

        <networking, security, standard, protocol> The {RFC} defining
        {Challenge-Handshake Authentication Protocol} and {Password
        Authentication Protocol}.

        {(rfc:1334)}.

        (1996-03-23)

RFC 1341

        <messaging, standard> The June 1992 {RFC} defining
        {Multipurpose Internet Mail Extensions} (MIME).  This {RFC}
        has been superceded by {RFC 1521}.

        {(rfc:1341)}.

        (1997-08-30)

RFC 1347

        <networking, protocol> One of the {RFC}s describing the {TUBA}
        {protocol}.

        {(rfc:1347)}.

        (1997-08-30)

RFC 1350

        <networking, protocol> The {RFC} defining {TFTP}.

        {(rfc:1350)}.

        (1997-08-30)

RFC 1388

        <networking, standard> An update to {RFC 1058}, the {RFC}
        defining {Routing Information Protocol}.

        {(rfc:1388)}.

        (1994-11-30)

RFC 1436

        <networking, standard> The {RFC} defining the {Internet}
        {Gopher} {protocol}.

        {(rfc:1436)}.

        (1995-11-16)

RFC 1441

        <networking, standard> The {RFC} introducing {SNMP v2}.

        {(rfc:1441)}.

        (1997-11-23)

RFC 1442

        <networking, standard> The {RFC} defining {SMI} for {SNMP v2}.

        {(rfc:1442)}.

        (1997-11-23)

RFC 1443

        <networking, standard> The {RFC} defining textual conventions
        for {SNMP v2}.

        {(rfc:1443)}.

        (1997-11-23)

RFC 1444

        <networking, standard> The {RFC} defining conformance
        statements for {SNMP v2}.

        {(rfc:1444)}.

        (1997-11-23)

RFC 1445

        <networking, standard> The {RFC} defining the administrative
        model for {SNMP v2}.

        {(rfc:1445)}.

        (1997-11-23)

RFC 1446

        <networking, standard> The {RFC} defining security protocols
        for {SNMP v2}.

        {(rfc:1446)}.

        (1997-11-23)

RFC 1447

        <networking, standard> The {RFC} defining {Party MIB} for
        {SNMP v2}.

        {(rfc:1447)}.

        (1997-11-23)

RFC 1448

        <networking, standard> The {RFC} defining protocol operations
        for {SNMP v2}.

        {(rfc:1448)}.

        (1997-11-23)

RFC 1449

        <networking, standard> The {RFC} defining {transport mappings}
        for {SNMP v2}.

        {(rfc:1449)}.

        (1997-11-23)

RFC 1450

        <networking, standard> The {RFC} defining {MIB} for {SNMP v2}.

        {(rfc:1450)}.

        (1997-11-23)

RFC 1451

        <networking, standard> The {RFC} defining {Manager to Manger
        MIB}.

        {(rfc:1451)}.

        (1997-11-23)

RFC 1452

        <networking, standard> The {RFC} describing coexistance
        between {SNMP} v1 and {SNMP v2}.

        {(rfc:1452)}.

        (1995-02-15)

RFC 1475

        <networking, protocol> The {RFC} describing the {TP/IX}
        {protocol}.

        {(rfc:1475)}.

        (1995-04-03)

RFC 1508

        <security, standard> One of the {RFC}s defining {GSS-API}.

        {(rfc:1508)}.

        (1996-05-19)

RFC 1509

        <security, standard> One of the {RFC}s defining {GSS-API}.

        {(rfc:1509)}.

        (1996-05-19)

RFC 1520

        <networking, standard> The {RFC} defining {Classless
        Inter-Domain Routing}.

        {(rfc:1520)}.

        (1996-10-01)

RFC 1521

        <messaging, standard> The {RFC} defining {Multipurpose
        Internet Mail Extensions} (MIME).  It replaced {RFC 1341}.

        {(rfc:1521)}.

        (1997-11-23)

RFC 1526

        <networking, protocol> One of the {RFC}s describing the {TUBA}
        {protocol}.

        {(rfc:1526)}.

        (1997-11-23)

RFC 1531

        <networking, protocol> The original {RFC} defining {DHCP},
        obsoleted by {RFC 2131}.

        {(rfc:1531)}.

        (1998-11-20)

RFC 1550

        <networking, protocol> An {RFC} {white paper} on {IPng}.

        {(rfc:1550)}.

        (1995-04-03)

RFC 1561

        <networking, protocol> One of the {RFC}s describing the {TUBA}
        {protocol}.

        {(rfc:1561)}.

        (1997-11-23)

RFC 1568

        <messaging, standard> An {RFC} defining the {Simple Network
        Paging Protocol} (SNPP) which is designed to support
        {Internet} access to {paging} services such as those based on
        the {Telocator Alphanumeric Protocol}.  See also {RFC 1861}.

        {(rfc:1568)}.

        (1996-06-24)

RFC 1630

        <networking, standard> The {RFC} defining the {Universal
        Resource Identifier}.

        {(rfc:1630)}.

        (1995-01-13)

RFC 1661

        <networking, standard> The {RFC} defining {Point-to-Point
        Protocol}.

        {(rfc:1661)}.

        (1997-02-05)

RFC 1701

        <networking, standard> The {RFC} defining {Generic Routing
        Encapsulation}.

        See also {RFC 1702}.

        {(rfc:1701)}.

        (1997-04-02)

RFC 1702

        <networking, standard> The {RFC} defining {Generic Routing
        Encapsulation} over {IP}.

        {(rfc:1702)}.

        (1997-04-02)

RFC 1707

        <networking, standard> The {RFC} defining {CATNIP}.

        {(rfc:1707)}.

        (1996-03-23)

RFC 1730

        <messaging, standard> An old {RFC} defining {IMAP}, obsoleted
        by {RFC 2060}, {RFC 2061} and others.

        {(rfc:1730)}.

        (1996-03-11)

RFC 1756

        <messaging> The {RFC} describing {Remote Write Protocol}.

        {(rfc:1756)}.

        (1996-09-08)

RFC 1777

        <networking, standard> The {RFC} defining {Lightweight
        Directory Access Protocol}.

        {(rfc:1777)}.

        (1996-08-23)

RFC 1823

        <networking, standard> The {RFC} defining the {C} language
        {application program interface} to the {Lightweight Directory
        Access Protocol}.

        {(rfc:1823)}.

        (1996-11-28)

RFC 1825

        <networking, standard> The {RFC} describing security
        mechanisms for {Internet Protocol} version 4 and {IP version
        6} and the services that they provide.

        {(rfc:1825)}.

        (1997-07-09)

RFC 1861

        <networking, standard> The {RFC} defining {Simple Network
        Paging Protocol}.  See also {RFC 1568}.

        {(rfc:1861)}.

        (1997-04-25)

RFC 1951

        <standard> The {RFC} describing {deflate} {compression}.

        {(rfc:1951)}.

        (1997-06-21)

RFC 1959

        <networking, standard> The {RFC} defining a {URL} format for
        the {Lightweight Directory Access Protocol}.

        {(rfc:1959)}.

        (1996-11-28)

RFC 1960

        <networking, standard> The {RFC} defining the format of search
        filters used with the {Lightweight Directory Access Protocol}.

        {(rfc:1960)}.

        (1996-11-28)

RFC 2048

        <file format, standard> The {RFC} explaining registration of
        {MIME types}.

        {(rfc:2048)}.

        (1998-02-11)

RFC 2060

        <messaging> One of the {RFC}s describing {IMAP}.

        {(rfc:2060)}.

        (1999-03-14)

RFC 2061

        <messaging> One of the {RFC}s describing {IMAP}.

        {(rfc:2061)}.

        (1999-03-14)

RFC 2068

        <networking, standard> The {RFC} defining {HTTP} version 1.1.

        {(rfc:2068)}.

        (1997-05-03)

RFC 2131

        <networking, protocol> The {RFC} defining {DHCP}.  Obsoletes
        {RFC 1531}.

        {(rfc:2131)}.

        (1998-11-22)

RFC 2234

        <standard> The {RFC} defining {Augumented Backus-Naur Form}.

        {(rfc:2234)}.

        (1997-11-23)

RFC 2279

        <standard> The {RFC} defining {UTF-8}.

        {(rfc:2279)}.

        (1998-07-29)

RFC 2326

        <standard> The {RFC} defining {RTSP}.

        {(rfc:2326)}.

        (1999-10-12)

RFC 792

        <networking, standard> The {RFC} defining {Internet Control
        Message Protocol}.

        {(rfc:792)}.

        (1996-08-23)

RFC 822

        <messaging, standard> The {RFC} defining the {Internet}
        standard format for {electronic mail} message headers.  Also
        {STD 11}, evolved from RFC 733.

        {(rfc:822)}.

        (1997-03-08)

RFC 826

        <networking, standard> The {RFC} defining the {Address
        Resolution Protocol}.

        {(rfc:826)}.

        (1997-11-21)

RFC 903

        <networking, standard> The {RFC} defining {Reverse Address
        Resolution Protocol}.

        {(rfc:903)}.

        (1994-12-08)

RFC 959

        <networking, standard> The {RFC} containing the official
        specification of {File Transfer Protocol} (FTP).

        {(rfc:959)}.

        (1995-01-12)

RFE

        1. {Request For Enhancement} (compare {RFC}).

        2. (From "Radio Free Europe", {Bellcore} and {Sun}) Radio Free
        Ethernet.

        A system originated by Peter Langston for broadcasting audio
        among Sun {SPARCstations} over the {Ethernet}.

        (1994-12-06)

RFI

        {Radio Frequency Interference}

RFT

        {Request For Technology}

RG58

        <electronics> A common, low-impedance (52 ohm), quarter-inch
        diameter {coaxial cable} used for {10base2} {Ethernet} wiring
        ("{cheapernet}").

        (1996-02-10)

RGB

        Red, Green, Blue.  The three colours of light which can be
        mixed to produce any other colour.  Coloured images are often
        stored as a sequence of RGB triplets or as separate red, green
        and blue overlays though this is not the only possible
        representation (see {CMYK} and {HSV}).  These colours
        correspond to the three "guns" in a colour {cathode ray tube}
        and to the colour receptors in the human eye.

        Often used as a synonym for colour, as in "RGB monitor" as
        opposed to {monochrome} (black and white).

Rhapsody

        <operating system> {Apple Computer, Inc.}'s next-generation
        {operating system} for {PowerPC} processor-based systems
        capable of running {Mac OS}.  Rhapsody includes four
        components: the Core OS, the {Blue Box} (the implementation of
        the Mac OS within Rhapsody), the {Yellow Box}, and the Advanced
        Mac Look and Feel.

        "Rhapsody for Intel" runs on {Intel} processors [which ones?].
        It includes the Core OS, the {Yellow Box}, and the Advanced
        Mac Look and Feel, but lacks the {Blue Box} and therefore is
        unable to run Mac OS software.

        "Rhapsody Developer Release" is a developer-only release of
        {Rhapsody}, scheduled for release in late 1997.  It will go to
        all members of the Macintosh Developer Program and the Apple
        Media Program worldwide who have signed nondisclosure
        agreements.

        "Rhapsody Premier Release" will be the second release of
        {Rhapsody}, scheduled for early 1998.  It is meant for early
        adopters and will include a partially finished human interface
        and a partial implementation of the {Blue Box}.

        "Rhapsody Unified Release" will be the third release,
        scheduled for mid-1998.  It will be the first public release,
        and it will include the first full implementation of the
        {Rhapsody} human interface and the {Blue Box}.

        {FAQ (http://devworld.euro.apple.com/rhapsody/faqsec1.html)}.

        (1997-10-15)

rib site

        <networking> (By analogy with {backbone site}) A {host} with
        an on-demand high-speed link to a {backbone site} that serves
        as a regional distribution point for lots of third-party
        traffic in {electronic mail} and {Usenet} news.

        Compare {leaf site}.

        (1994-11-30)

rice box

        (Ham radio slang) Any Asian-made commodity computer,
        especially an {80x86}-based machine built to {IBM
        PC}-compatible {ISA} or {EISA}-bus standards.

        (1994-11-30)

Richard Gabriel

        <person> (Dick, RPG) Dr. Richard P. Gabriel.  A noted {SAIL}
        {LISP} {hacker} and volleyball fanatic.

        Consulting Professor of Computer Science at {Stanford
        University}.  Richard Gabriel is a leader in the {Lisp} and
        {OOP} community, with years of contributions to
        {standardisation}.  He founded the successful company, {Lucid
        Technologies, Inc.}.

        In 1996 he was Distinguished Computer Scientist at
        ParcPlace-Digitalk, Inc. (later renamed {ObjectShare, Inc.}).

        See also {gabriel}, {Qlambda}, {QLISP}, {saga}.

        (1999-10-12)

Richard P. Gabriel

        {Richard Gabriel}

Richard Stallman

        <person> Richard M. Stallman.  Founder of the {GNU} project.
        He resigned from the {AI lab} at {MIT} so he would be free to
        produce {free software} which he could then distribute on his
        own terms.  He went on to establish the {Free Software
        Foundation} to support the production of free software and
        ensure its free distribution.

        E-mail: <rms@gnu.ai.mit.edu>.

        (1994-10-28)

rich object

        In {artificial intelligence}, an object which cannot be
        completely described or represented but about which assertions
        can be made.

        (1994-12-14)

Rich Text Format

        (RTF) An interchange format from {Microsoft} for exchange of
        documents between {Word} and other document preparation
        systems.

        (1994-12-08)

RIFF

        <file format> {Microsoft}'s equivalent to the {Amiga}'s {IFF}
        files format.  RIFF is used for {WAV} and {AVI} files.

        (1995-04-21)

RIGAL

        A language for compiler writing.  Data strucures are atoms,
        lists/trees.  Control is based on {pattern matching}.

        ["Programming Language RIGAL as a Compiler Writing Tool",
        M.I. Augustson, Inst of Math and CS of Latvia U, 1987].

        (1994-10-28)

Rigel

        A {database} language?  Based on {Pascal}.  Listed by
        M.P. Atkinson & J.W. Schmidt in a tutorial presented in
        Zurich, 1989.

        (1994-10-28)

right brace

        <character> "}".  {ASCII} character 125.

        Common names: close brace; right brace; right squiggly; right
        squiggly bracket/brace; right curly bracket/brace; {ITU-T}:
        closing brace.  Rare: unbrace; uncurly; rytit ("{" = leftit);
        right squirrelly; {INTERCAL}: bracelet ("{" = embrace).

        Paired with {left brace}

        (1995-03-30)

right bracket

        <character> "]".  {ASCII} character 93.

        Common names: right square bracket; {ITU-T}: closing bracket;
        unbracket.  Rare: unsquare; {INTERCAL}: U turn back.

        Paired with {left bracket}.

        (1997-11-23)

right outer join

        {outer join}

right parenthesis

        <character> ")".  {ASCII} character 41.

        Common names: right paren; right parenthesis; right; close;
        thesis ("(" = paren); close paren; close parenthesis; right
        parenthesis; right banana.  Rare: already ("(" = so); rparen;
        {ITU-T}: closing parenthesis; close round bracket, right round
        bracket, {INTERCAL}: wane ("(" = wax); unparenthisey ("(" =
        parenthisey); right ear.

        Paired with {left parenthesis}.

        (1995-03-06)

Right Thing

        That which is *compellingly* the correct or appropriate thing
        to use, do, say, etc.  Always capitalised, always emphasised
        in speech as though capitalised.  Use of this term often
        implies that in fact reasonable people may disagree.  "What's
        the Right Thing for {Lisp} to do when it sees "(mod a 0)"?
        Should it return "a", or give a divide-by-0 error?"

        Opposite: {Wrong Thing}.

        (1994-10-28)

Riordan's Internet Privacy Enhanced Mail

        <messaging> (RIPEM) A (not yet complete, but useful)
        implementation of {Privacy Enhanced Mail} (PEM).  RIPEM allows
        your {electronic mail} to have the four security facilities
        provided by PEM: {disclosure protection} (optional),
        originator authenticity, message {integrity} measures and
        {non-repudiation} of origin (always).

        RIPEM was written primarily by Mark Riordan
        <mrr@scss3.cl.msu.edu>.  Most of the code is in the {public
        domain}, except for the {RSA} routines, which are a library
        called RSAREF licensed from {RSA Data Security, Inc}.

        The current (November 1993) version of RIPEM is 1.1a; the
        current version of the {Macintosh} {port} of RIPEM is 0.8b1.

        (1998-07-03)

RIP

        {Routing Information Protocol}

RIPE

        {Rseaux IP Europens}

RIPEM

        {Riordan's Internet Privacy Enhanced Mail}

RISC

        {Reduced Instruction Set Computer}

RISC OS

        (Reduced Instruction Set Computer Operating System) {Acorn
        Computers}' {operating system} for their {Archimedes} family
        of {personal computer}s.  RISC OS replaced the {Arthur}
        operating system used on the first Archimedeses.  It is
        written in {ARM} {assembly code} and distributed on {ROM} so
        it takes up no disk space and takes no time to load.  It
        supports {cooperative multitasking} with memory management and
        includes a {graphical user interface} or "WIMP".  It is
        written in a highly modular style and makes extensive use of
        {vector}s so it is easy to modify and extend by loading new
        modules in {RAM}.  A large number of {system call}s (called
        "SWIs" - software interrupts) are available to the
        applications programmer and some of these are available as
        user comands via a built-in {command line interpreter}.  RISC
        OS also supported {outline font}s when only {bitmap font}s
        were available on most other {platform}s.

Risc PC

        <computer> The latest addition to {Acorn}'s {Archimedes}
        family of {personal computer}s.  The Risc PC, released in
        April 1994, allows a second processor, e.g. an {Intel 486} or
        a second {ARM}, to share the {bus}, memory and {peripherals}
        with the main processor.  It also offers significantly
        increased speed with an {ARM610} {RISC} processor and full
        24-bit colour graphics support.

        {(http://www.cs.nott.ac.uk/~pjg/RiscPC/)}

        (1996-02-05)

RISC System/6000

        <computer> (Or "RS/6000") {IBM}'s current {RISC}-based {Unix}
        computer.  The RS/6000, announced in 1990, replaced the
        {RT-PC}.  It runs {AIX} 3.x and 4.x.  Most models have an
        {MCA} bus.  A wide range of models are available.

        (1995-04-06)

RISQL

        {Red Brick Intelligent SQL}

RJ-11

        <hardware, communications> An American-style telephone jack
        with six possible connections.  A telephone normally uses two
        pairs of wires.  Often found on the back of US-manufactured
        {modems} or for connection to a {leased line}.

        (1998-06-30)

RJ-45

        <hardware> A {serial} connector which looks very much like a
        standard telephone connector, except it houses eight wires
        instead of four.  RJ-45s are not typically found on
        {computers} or normal serial equipment, but because they are
        so small they are often used on devices such as {terminal
        servers} that have many {ports}.

        {Ethernet} ({10baseT}) and {Token Ring} sometimes use four
        wires of an RJ-45 plug, {100baseVG} uses all eight.
        {100BaseTX} uses the same four wires of the RJ-45 connector as
        10baseT but the wire must be {category 5} instead of {category
        3}.

        (1998-06-30)

RJE

        {Remote Job Entry}

RKM

        {Rom Kernel Manual}

RL

        (MUD community) Real Life.

        "Firiss laughs in RL" means that Firiss's player is laughing.

        Opposite: {VR}.

        (1995-05-09)

rl

        Kent Wittenburg <kentw@bellcore.com>.

        The RL files contain code for defining {relational grammar}s
        and using them in a bottom-up parser to recognise and/or parse
        expressions in Relational Languages.

        The approach is a simplification of that described in
        Wittenburg, Weitzman, and Talley (1991), Unification-Based
        Grammars and Tabular Parsing for Graphical Languages, Journal
        of Visual Languages and Computing 2:347-370.  This code is
        designed to support the definition and parsing of Relational
        Languages, which are characterised as sets of objects standing
        in user-defined relations.

        Correctness and completeness is independent of the order in
        which the input is given to the parser.  Data to be parsed can
        be in many forms as long as an interface is supported for
        queries and predicates for the relations used in grammar
        productions.

        To date, this software has been used to parse recursive
        pen-based input such as math expressions and {flow chart}s; to
        check for data integrity and design conformance in databases;
        to automatically generate constraints in drag-and-drop style
        graphical interfaces; and to generate graphical displays by
        parsing relational data and generating output code.

        requires:       Common Lisp

        ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0

        {(ftp://flash.bellcore.com/rl/)}

        (1992/10/31)

RLaB

        A {MATLAB}-like matrix-oriented programming language/toolbox.
        RLaB focusses on creating a good experimental environment (or
        laboratory) in which to do matrix mathematics.  Currently RLaB
        has numeric scalars and matrices (real and complex), and
        string scalars, and matrices.  RLaB also contains a list
        variable type, which is a heterogeneous associative array.

        Version 0.95 includes an interpreter, libraries and
        documentation.  E-mail: Ian Searle <ians@eskimo.com>.
        {(ftp://evans.ee.adfa.oz.au)}.  Requires {GNUPLOT},
        lib[IF]77.a (from f2c).  Ported to many {platform}s including
        {Unix}, {OS/2}, {Amiga}.

        (1993-10-27).

RLE

        {run-length encoding}

RLF

        {Reuse Library Framework} of the {DoD}.

RLL

        Representation Language Language.  A {frame language}.  "A
        Representation Language Language", R. Greiner and D.B. Lenat,
        Proc AAAI-80, 1980.

rlogin

        <networking, tool> (Remote login) The {4.2BSD} {Unix} utility
        to allow a user to log in on another {host} via a network.
        Rlogin communicates with a {daemon} on the remote host.

        {Unix manual page}: rlogin(1).

        See also {telnet}.

        (1997-01-12)

RMAG

        {Recursive Macro Actuated Generator}

RMAIL

        <messaging> A {MUA} written in {Emacs Lisp} to run within
        {Emacs}.

        (1996-03-21)

RMI

        {Remote Method Invocation}

RM-ODP

        <programming> The {ISO Reference Model} for {Open
        Distributed Environments}.

        {(http://pepper.open.ac.uk/~armsarms/sa.html)}

        (1995-11-23)

RMON

        {Remote Monitor}, Remote Monitoring.

RMS

        1. {Record Management Services}.

        2. {Richard Stallman}.

RNF

        {root normal form}

ro

        <networking> The {country code} for Romania.

        (1999-01-27)

roach

        <jargon> A {Bell Labs} term meaning destroy, especially of a
        data structure.  Hardware gets {toast}ed or {fried}, software
        gets roached.

        [Why?]

        (1999-02-08)

ROADS

        Subsystem of ICES.  Sammet 1969, p.616.

Robert T. Morris

        The creator of the "{Internet Worm}" that wreaked havoc on
        many {Internet} systems for a day or two.

        Morris, the son of an NSA spook, did some jail time for
        releasing the worm.

        (1995-01-12)

ROBEX

        ROBot EXapt.  Aachen Tech College.  Based on EXAPT.  Version:
        ROBEX-M for micros.

RoboHELP

        <tool> A {Microsoft} {Windows} Help authoring tool from {Blue
        Sky Software}.  Used with {Microsoft Word} to create Help
        files for inclusion in a Windows application or for stand
        alone use.

        (1997-01-19)

robot

        1. <robotics> A mechanical device for performing a task which
        might otherwise be done by a human, e.g. spraying paint on
        cars.

        See also {cybernetics}.

        2. <chat> An {IRC} or {MUD} user who is actually a program.
        On IRC, typically the robot provides some useful service.
        Examples are {NickServ}, which tries to prevent random users
        from adopting {nick}s already claimed by others, and MsgServ,
        which allows one to send {asynchronous} messages to be
        delivered when the recipient signs on.  Also common are
        "annoybots", such as KissServ, which perform no useful
        function except to send cute messages to other people.
        Service robots are less common on {MUD}s; but some others,
        such as the "Julia" robot active in 1990--91, have been
        remarkably impressive {Turing test} experiments, able to pass
        as human for as long as ten or fifteen minutes of
        conversation.

        3. <World-Wide Web> {spider}.

        (1996-03-23)

robust

        Said of a system that has demonstrated an ability to recover
        gracefully from the whole range of exceptional inputs and
        situations in a given environment.  One step below
        {bulletproof}.  Carries the additional connotation of elegance
        in addition to just careful attention to detail.  Compare
        {smart}, opposite: {brittle}.

Rockwell Protocol Interface

        (RPI) A cost-cutting feature of some {modem}s allowing data
        {compression} and {error correction} (e.g. {ITU-T} {V.42bis},
        {V.42}) to be provided in software instead of hardware.

        Usually an RPI modem comes with RPI-aware software (e.g. the
        low-end RPI models of Supra come with the {COMit} which
        supports RPI, providing {MNP} 2,4,5,7, V.42 and V.42bis).  RPI
        is not supported by many commercial packages nor by current
        releases of popular {shareware} communication programs
        ({Telix} v3.22 and {Telemate} v4.12).  {ProComm Plus} for
        {Windows 2.0} will support RPI.

        Currently {Rockwell} produce two classes of RPI chip set.  The
        original is capable of 2400 bit/s data, 9600 bit/s class
        1-only fax.  The newer one is capable of 14400 bit/s data/fax.
        Currently there are no RPI chipset from Rockwell supporting
        speeds higher than 14400 bit/s.

        (1994-07-01)

Rocky Mountain Basic

        <language> The {BASIC} language used by {Hewlett Packard} on
        their {680x0}-based computers.  Rocky Mountain Basic is good
        for interfaces to {IEEE 488} controls and contains many
        mathematical and matrix functions.  It has about 600 commands.
        Typical applications include automatic test stations.

        (1996-04-28)

rococo

        <jargon, abuse> {Baroque} in the extreme.  Used to imply that
        a program has become so encrusted with the software equivalent
        of gold leaf and curlicues that they have completely swamped
        the underlying design.  Called after the later and more
        extreme forms of Baroque architecture and decoration prevalent
        during the mid-1700s in Europe.  Alan Perlis said: "Every
        program eventually becomes rococo, and then rubble."

        Compare {critical mass}.

        (1996-04-06)

roff

        <text, tool> A text formatting language associated with
        {Unix}.  See {groff}, {nroff}, {troff}.

        [Was roff the original?  Platform(s)?]

        (1998-11-14)

ROFLMAO

        {ROTFLMAO}

rogue

        <games> [Unix] A Dungeons-and-Dragons-like game using
        character graphics, written under BSD Unix and subsequently
        ported to other Unix systems.  The original BSD "curses(3)"
        screen-handling package was hacked together by Ken Arnold to
        support "rogue(6)" and has since become one of Unix's most
        important and heavily used application libraries.  Nethack,
        Omega, Larn, and an entire subgenre of computer dungeon games
        all took off from the inspiration provided by "rogue(6)".  See
        also {nethack}.

ROM

        {Read Only Memory}

ROM BIOS

        {Basic Input/Output System}

ROME

        An experimental {object-oriented} language.

        ["The Point of View Notion for {Multiple Inheritance}",
        B. Carre et al, SIGPLAN Notices 25(10):312-321 (OOPSLA/ECOOP
        '90) (Oct 1990)].

        (1994-11-30)

Rom Kernel Manual

        <publication> (RKM) A series of books or files for developers
        for the {Amiga} computer, containing information about the
        {operating system} {kernel} stored in {ROM}.

        (1996-04-06)

room

        {channel}

ROOM Methodology

        {Real-Time Object-Oriented Modeling}

room-temperature IQ

        <abuse> (IBM) 80 or below.  Used in describing the expected
        intelligence range of the {luser}.  "Well, but how's this
        interface going to play with the room-temperature IQ crowd?"
        This is a much more insulting phrase in countries that use
        Celsius thermometers.

        See {drool-proof paper}.

        (1996-04-06)

root

        1. <operating system> The {Unix} {superuser} account (with
        user name "root" and user ID 0) that overrides file
        permissions.  The term {avatar} is also used.  By extension,
        the privileged system-maintenance login on any {operating
        system}.

        See {root mode}, {go root}, {wheel}.

        (1994-10-27)

        2. <operating system> {root directory}.

        (1996-11-21)

        3. <data> {root node}.

        (1998-11-14)

root directory

        <file system> The topmost node of a {hierarchical file
        system}.

        (1996-11-21)

root mode

        Synonym with {wizard mode} or "wheel mode".  Like these, it is
        often generalised to describe privileged states in systems
        other than {operating system}s.

root node

        <mathematics, data> In a {tree}, a node with no {parents}, but
        which typically has {daughters}.

        (1998-11-14)

Root Normal Form

        (RNF) {Head Normal Form} in {graph rewriting}.

root version

        The initial value of an object in a {change management}
        system.

ROSE

        {Remote Operations Service Element}

Rosette

        <language> A {concurrent} {object-oriented language} from
        {MCC}.

        [Details?]

        (1997-11-26)

Roskind grammars

        <tool> {Yacc}-based {parsers} for {C} and {C++} by Jim Roskind
        <jar@netscape.com>.  It does not use the %prec and %assoc YACC
        features so conflicts are never hidden.  The C {grammar} has
        only one {shift-reduce conflict}, the C++ grammar has a few
        more.  With {byacc} it can produce graphical {parse trees}
        automatically.  The C grammar conforms to {ANSI C} and the C++
        grammar supports {cfront} 2.0 constructs.  The current version
        is cpp5 (cf2.0).

        {(ftp://ftp.infoseek.com/pub/c++grammar/)}

        (1996-01-04)

rot13

        /rot ther'teen/ [{Usenet}: from "rotate alphabet 13 places"],
        v. The simple Caesar-cypher encryption that replaces each
        English letter with the one 13 places forward or back along
        the alphabet, so that "The butler did it!" becomes "Gur ohgyre
        qvq vg!"  Most {Usenet} news reading and posting programs
        include a rot13 feature.  It is used to enclose the text in a
        sealed wrapper that the reader must choose to open - e.g. for
        posting things that might offend some readers, or {spoiler}s.
        A major advantage of rot13 over rot(N) for other N is that it
        is self-inverse, so the same code can be used for encoding and
        decoding.

rotary debugger

        (Commodore) Essential equipment for those late-night or
        early-morning debugging sessions.  Mainly used as sustenance
        for the hacker.  Comes in many decorator colours, such as
        Sausage, Pepperoni, and Garbage.

        (1995-01-11)

rotational latency

        The time for the start of the required {sector} on a disk to
        appear underneath the read/write head.  The worst case is
        where it has just passed the head when the request is
        received.  For a {disk drive} with N heads per surface,
        rotating at R revolutions per minute, the average rotational
        latency will be

                L = 30/NR seconds.

        Rotational latency is one component of {access time}.

rotation per minute

        <unit> (rpm) A unit of {angular velocity}.

        (1998-03-27)

ROTFL

        <chat> Rolls on the floor laughing (or rolling...).

        Used in a {MUD}, {news}.

        See also {ROTFLMAO}, {ROTFLOL}.

        (1996-02-22)

ROTFLMAO

        <chat> Rolling on the floor laughing my ass off.  An extreme
        form of {ROTFL}.

        (1997-03-01)

ROTFLOL

        <chat> Rolling on the floor laughing out loud.  See {ROTFL}.

        (1997-03-06)

round-robin

        <algorithm> A {scheduling} {algorithm} in which processes are
        activated in a fixed cyclic order.  Those which cannot proceed
        because they are waiting for some event (e.g. termination of a
        {child process} or an input/output operation) simply return
        control to the scheduler.  The virtue of round-robin
        scheduling is its simplicity - only the processes themselves
        need to know what they are waiting for or how to tell if it
        has happened.  However, if a process goes back to sleep just
        before the event for which it is waiting occurs then the event
        will not get handled until all the other processes have been
        activated.

        Compare {priority scheduling}.

        (1996-02-10)

round tape

        <storage, jargon> Industry-standard 1/2-inch {magnetic tape}
        (7- or 9-track) on traditional circular reels.

        See {macrotape}, opposite: {square tape}.

        (1996-02-03)

round-trip time

        (RTT) A measure of the current delay on a network, found by
        timing a packet bounced off some remote host.  This can be
        done with {ping} -s.

        (1994-11-30)

route

        <networking> /root/ The sequence of {host}s, {router}s,
        {bridge}s, {gateway}s and other devices that network traffic
        takes from its source to its destination.  Also, a possible
        path from a given host to another host or destination.  You
        can find the route from your computer to another using the
        program {traceroute} on {Unix}.

routed

        /root dee/ Route Daemon.  A program which runs under {4.2BSD}
        {Unix} systems and derivatives to propagate routes among
        machines on a {local area network}, using the {Routing
        Information Protocol}.  See also {gated}.

route flapping

        {flapping router}

router

        <networking> /roo't*/ A device which forwards {packets}
        between {networks}.  The forwarding decision is based on
        {network layer} information and routing tables, often
        constructed by routing {protocols}.

        {Unix manual page}: route(8).

        See also {bridge}, {gateway}, {Exterior Gateway Protocol},
        {Interior Gateway Protocol}, {flapping router}.

        (1999-08-24)

routine

        {subroutine}

routing

        <networking> The process, performed by a {router}, of
        selecting the correct interface and next {hop} for a {packet}
        being forwarded.

        See also {Exterior Gateway Protocol}, {Interior Gateway
        Protocol}.

        (1994-12-14)

routing domain

        <networking> A set of {routers} that exchange routing
        information within an {administrative domain}.

        (1994-12-14)

Routing Information Protocol

        1. <networking> (RIP) A {distance vector}, as opposed to {link
        state}, {routing} {protocol}.  RIP is an {Internet} {standard}
        {Interior Gateway Protocol} defined in {STD} 34, {RFC 1058}
        and updated by {RFC 1388}.

        See also {Open Shortest Path First}.

        2. <networking> (RIP) A companion {protocol} to {IPX} for
        exchange of {routing} information in a {Novell} {network}.
        RIP has been partly superseded by {NLSP}.  It is not related
        to the {Internet} protocol of the same name.

        (1997-03-04)

Routing Table Maintenance Protocol

        <protocol> (RTMP) A {protocol} used by {AppleTalk} to ensure
        that all {routers} on the network have consistent routing
        information.

        (1997-05-11)

row

        {record}

row-level locking

        <database> A technique used in {database management systems},
        where a {row} is locked for writing to prevent other users
        from accessing data being while it is being updated.

        Other techniques are {table locking} and {MVCC}.

        (1999-06-18)

Royal Veterinary and Agricultural University

        Address: Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark.

        (1994-12-12)

RPC

        {Remote Procedure Call}

RPG

        1. <games> {Role-Playing Game}.

        2. <tool> {Report Program Generator}.

        3. <person> {Richard Gabriel}.

        (1999-10-12)

RPI

        {Rockwell Protocol Interface}

RPL

        Reverse Polish LISP.  Language used by HP-28 and HP-48
        calculators.

RPL-1

        Data reduction language.  Proc SJCC 30:571-575, AFIPS (Spring
        1967).

RPM

        <operating system, tool> A {Unix} {package}-management system
        that helps installation of software packages; similar to an
        install program.

        [More details?  Reference?  Expansion?]

        (1996-03-07)

rpm

        {rotation per minute}

RPN

        {Reverse Polish Notation}

Rpondez s'il vous plait

        <chat> (RSVP) French for "please reply", commonly found
        (abbreviated) on invitations.

        (1996-12-02)

RPT

        Unify.  Report Writer Language.

RRL

        {Remote Reference Layer}

RRS

        An early definition of {Scheme}.  Revised in {R2RS}.

        ["The Revised Report on Scheme", G.L. Steele et al, AI Memo
        452, MIT, Jan 1978].

        (1994-10-28)

        [Was the original "Report on Scheme" published?]

RS

        1. <character> {Record Separator}

        2. <standard> Recommended Standard, a series of {EIA}
        {standards} including {RS-232}.

RS-232

        <communications, standard> The most common {asynchronous}
        {serial line} {standard}.  RS-232 is the {EIA} equivalent of
        {ITU-T} {V.24} and {V.28}.

        RS-232 specifies the gender and pin use of connectors, but not
        their physical type.  {RS-423} specifies the electrical
        signals.  25-way {D-type} connectors are common but often only
        three wires are connected - one ground (pin seven) and one for
        data in each direction.  The other pins are mostly related to
        {hardware handshaking} between sender and receiver and to
        {carrier detection} on {modem}s, inoperative circuits, busy
        conditions etc.

        The standard classifies equipment as either {Data
        Communications Equipment} (DCE) or {Data Terminal Equipment}
        (DTE).  A DCE RS-232 interface should have a female connector
        and should transmit on pin two and receive on pin three.  DTE
        should have a male connector and should should transmit on pin
        three (TD) and receive on pin two (RD).  Originally DCE was a
        {modem} and DTE was either a computer or a {terminal}.  The
        terminal and computer were connected (via RS-232) to two
        modems, which were connected via a telephone line.

        The above arrangement allows a computer or terminal to be
        connected to a modem with a straight-through (2-2, 3-3) cable.
        It is not uncommon though to find equipment with the wrong sex
        connector and/or with pins two and three the wrong way round,
        requiring the insertion of a cable or adaptor wired as a
        {gender mender} or {null modem}.  Such a cable is also
        required when connecting a computer directly to a terminal or
        to another computer when not using modems.

        (1995-12-24)

RS-232C

        <communications, standard> The {EIA} equivalent of {ITU-T}
        {standard} {V.24}.

        The {EIA} RS-232C electrical signal is unbalanced +/- 5 to +/-
        12V, {polar} {non return to zero} and handles data speeds up
        to 19.2 kilobits per second.

        [Difference from RS-232?]

        (1995-03-02)

RS-232D

        <communications, standard> The {EIA} equivalent of {ITU-T}
        {standard} {V.28}.

        [Difference from RS-232/RS-232C?]

        (1995-03-02)

RS-422

        <communications, standard> An {EIA} {serial line} {standard}
        which specifies {differential driver}s and recievers.

        [Details?]

        (1995-03-14)

RS-423

        A common electrical specification for the signals on a {serial
        line}.  When no data is being transmitted, the serial line is
        at a logical zero (+3 to +15 Volts).  A logical one is
        represented as a signal level of -15 to -3 Volts.  In
        practise, one often finds signals which switch between
        nominally +4.5 and +0.5 Volts.  Such signals are large by
        modern standards, and because the impedance of the circuits is
        relatively high, the allowable {bit rate} is modest.

        The data is preceded by a {start bit} which is always a
        logical one.  There may be seven or eight bits of data,
        possibly followed by an even or odd {parity} bit and one or
        two {stop bit}s.

        A "break" condition is a continuous logical one on the line
        which is what would be observed if nothing was connected.

        {RS-232} specifies the physical connector normally used for
        RS-423 lines.

        (1995-02-02)

RS-449

        <communications, standard> (Recommended Standard 449) An {EIA}
        recommendation for an interface between 37-pin to 9-pin.

        [Where is it used?]

        (1996-06-07)

RS-485

        <communications, standard> An {EIA} standard for serial
        communications over wires.  It allows multiple devices to
        share a line.  It is also used in {Differential SCSI}.

        (1995-03-28)

RS6000

        {RISC System/6000}

RS/6000

        {RISC System/6000}

RS6K

        {RISC System/6000}

RSA

        <cryptography, company> (The initials of the authors)

        1. {RSA Data Security, Inc.}

        2. Their {cryptography} systems, especially {RSA encryption}.

        The RSA {algorithm} was first described in the paper:

        [R. Rivest, A. Shamir, L. Adleman, "A Method for Obtaining
        Digital Signatures and Public-key Cryptosystems". CACM 21,2;
        1978]

        (1995-03-21)

RSA Data Security, Inc.

        <cryptography, company> (After Rivest, Shamir, Adleman - see
        {RSA}) A recognised world leader in {cryptography}, with
        millions of copies of its software encryption and
        authentication installed and in use worldwide.  RSA's
        technologies are the global {de facto standard} for {public
        key cryptography} and {digital signature}s, and are part of
        existing and proposed {standard}s for the {Internet}, {ITU-T},
        {ISO}, {ANSI}, {PKCS}, {IEEE} and business and financial
        networks around the world.

        {(http://www.rsa.com/)}

        (1994-12-08)

RSA encryption

        <cryptography, algorithm> A {public-key cryptosystem} for both
        {encryption} and {authentication}, invented in 1977 by Ron
        Rivest, Adi Shamir, and Leonard Adleman.  Its name comes from
        their initials.

        The RSA {algorithm} works as follows: take two large {prime
        numbers}, p and q, and find their product n = pq; n is called
        the modulus.  Choose a number, e, less than n and {relatively
        prime} to (p-1)(q-1), and find its inverse, d, mod (p-1)(q-1),
        which means that ed = 1 mod (p-1)(q-1); e and d are called the
        public and private exponents, respectively.  The public key is
        the pair (n,e); the private key is d.  The factors p and q
        must be kept secret, or destroyed.  It is difficult
        (presumably) to obtain the private key d from the public key
        (n,e).  If one could factor n into p and q, however, then one
        could obtain the private key d.  Thus the entire security of
        RSA depends on the difficulty of factoring; an easy method for
        factoring large prime numbers would break RSA.

        {RSA FAQ (http://www.rsa.com/rsalabs/faq/faq_home.html)}.

        (1999-07-02)

RSCS

        <communications> {Remote Spooling Communication
        Subsystem}.

        (1996-02-04)

Rseaux Associs pour la Recherche Europenne

        (RARE) An association of national and international European
        networks and users.

        See also {CCIRN}.

        (1994-11-30)

Rseaux IP Europens

        (RIPE) A collaboration between European networks which use the
        {TCP/IP} {protocol} suite to provide {Internet} services.

        (1994-11-30)

RS flip-flop

        {SR flip-flop}

rsh

        Remote shell.

        A {Berkeley Unix} networking command to execute a given
        command on a remote {host}, passing it input and receiving its
        output.  Rsh communicates with a {daemon} on the remote host.
        It is sometimes called remsh to avoid confusion with the
        {restricted shell}, also called "rsh".

        {Unix manual page}: rsh(1).

        (1994-12-08)

RSI

        1. <medical> {overuse strain injury}.

        2. <company> {Research Systems, Inc.}.

        (1999-01-08)

RSL

        RAISE Specification Language.  (RAISE = Rigorous Approach to
        Industrial Software Engineering).  A wide-spectrum
        specification and design language developed by {ESPRIT}
        Project 315 at {CRI} A/S, Denmark.  Systems may be modular,
        {concurrent}, {nondeterministic}.  Specifications may be
        {applicative} or {imperative}, explicit or implicit, abstract
        or concrete.

        ["The RAISE Specification Language", RAISE Language Group, P-H
        1992, ISBN 0-13-752833-7].

RSN

        {Real Soon Now}

rstat

        {netstat}

RSTS/E

        <operating system> A {multi-user}, general purpose
        {timesharing} {operating system} produced by {Mentec, Inc.}
        and licensed bu {Digital Equipment Corporation}.

        RSTS/E can be used for interactive timesharing, {batch
        processing}, indirect command file processing, program
        development using a variety of languages and tools, and a wide
        variety of special purpose applications.  Up to 127 concurrent
        {terminal} users in both local and remote locations through
        multi-terminal services can interact with application tasks.
        Without multi-terminal services, 63 users are the maximum.
        Tasks can share computational, storage, and input/output
        services provided by the RSTS/E system.

        {Full description
        (http://pyrfect.ico.olivetti.com/SPD/13-01-37.txt)}

        (1996-06-04)

RSVP

        1. <chat> {Rpondez s'il vous plait}.

        2. <body> {Revolutionary Surrealist Vandal Party}.

        (1996-12-02)

RTBM

        ({Unix}) Read The Bloody Manual.

        {Commonwealth Hackish} variant of {RTFM}.  RTBM is often the
        entire text of the first reply to a question from a {newbie};
        the *second* would escalate to "RTFM".

        (1994-12-08)

RTC++

        A {real-time} extension of {C++}.

        ["Object-Oriented Real-Time Language Design: Constructs for
        Timing Constraints", Y. Ishikawa et al, SIGPLAN Notices
        25(10):289-298 (OOPSLA/ECOOP '90) (Oct 1990)].

        (1994-12-08)

RT-CDL

        Real-Time Common Design Language.  Real-time language for the
        design of reliable reactive systems.  "RT-CDL: A Real-Time
        Description Language and Its Semantics", L.Y. Lin et al, 11th
        World Computer Congress IFIP '89 pp.19-26 (Sep 1989).

RTEE

        Real Time Engineering Environment: a set of CASE tools
        produced by Westmount Technology B.V.

RTF

        {Rich Text Format}

RTFAQ

        ({Usenet}, primarily written, by analogy with {RTFM}) Read the
        FAQ!

        An exhortation that the person addressed ought to read the
        newsgroup's {FAQ list} before posting questions.

        (1994-12-08)

RTFB

        <jargon> (By analogy with {RTFM}) Read The Fucking
        Binary.

        Used when neither documentation nor source for the problem at
        hand exists, and the only thing to do is use some debugger or
        monitor and directly analyse the assembler or even the
        {machine code}.

        "RTFB" is the least pejorative of the RTF? forms, the anger is
        directed at the absence of both source *and* adequate
        documentation rather than at the person asking a question.

        (1995-08-20)

RTFM

        <jargon> Read The Fucking Manual.

        1. (Sometimes bowdlerised to "- Fine -") Used by {guru}s to
        brush off questions they consider trivial or annoying.

        Compare {Don't do that, then!}.

        2. Used when reporting a problem to indicate that you aren't
        just asking out of {randomness}.  "No, I can't figure out how
        to interface Unix to my toaster, and yes, I have RTFM."
        Unlike sense 1, this use is considered polite.

        See also {FM}, {RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which
        mutated from RTFM, and compare {UTSL}.

        [Earliest use?]

        (1995-07-29)

RTFS

        1. Read The Fucking Source.  Variant form of {RTFM}, used when
        the problem at hand is not necessarily obvious and not
        answerable from the manuals - or the manuals are not yet
        written and maybe never will be.  For even trickier
        situations, see {RTFB}.  Unlike RTFM, the anger inherent in
        RTFS is not usually directed at the person asking the
        question, but rather at the people who failed to provide
        adequate documentation.

        2. Read The Fucking Standard; this oath can only be used when
        the problem area (e.g. a language or operating system
        interface) has actually been codified in a ratified standards
        document.  The existence of these standards documents (and the
        technically inappropriate but politically mandated compromises
        that they inevitably contain, and the impenetrable {legalese}
        in which they are invariably written, and the unbelievably
        tedious bureaucratic process by which they are produced) can
        be unnerving to hackers, who are used to a certain amount of
        ambiguity in the specifications of the systems they use.
        (Hackers feel that such ambiguities are acceptable as long as
        the {Right Thing} to do is obvious to any thinking observer;
        sadly, this casual attitude towards specifications becomes
        unworkable when a system becomes popular in the {Real World}.)
        Since a hacker is likely to feel that a standards document is
        both unnecessary and technically deficient, the deprecation
        inherent in this term may be directed as much against the
        standard as against the person who ought to read it.

RTI

        {Return from interrupt}

RTL

        1. <hardware> {Resistor-Transistor Logic}.

        2. <language> {Register Transfer Language}.

RTL/1

        <language> Real Time Language.

        A {real-time} language written by by J.G.P. Barnes of {ICI} in
        1971.  It was the predecessor of {RTL/2}.

        ["Real Time Languages for Process Control", J.G.P. Barnes,
        Computer J 15(1):15-17, Feb 1972].

        (1994-11-09)

RTL/2

        Real Time Language.

        A small {real-time} language based on {ALGOL 68}, with
        {separate compilation} designed by J.G.P. Barnes of ICI in
        1972 as a successor to {RTL/1}.

        A program is composed of separately compilable modules called
        "bricks" which may be datablocks, procedures or stack.  A
        stack is a storage area for use as a workspace by a task.  The
        language is {block-structured} and {weakly typed}.  Simple
        types are byte, int, frac and real.  There are no {Boolean}s.
        Compound types may be formed from {array}s, {record}s and
        {ref}s (pointers).  There are no user-defined types.  Control
        statements are if-then-elseif-else-end, for-to-by-do-rep,
        block-endblock, switch, goto, and label variables.

        ["RTL/2: Design and Philosophy", J.G.P. Barnes, Hayden & Son,
        1976].

RTM

        1. [{Usenet}] Read The Manual.  Politer variant of {RTFM}.

        2. Robert T. Morris Jr.

        The perpetrator of the great Internet worm of 1988 (see {Great
        Worm}); villain to many, naive hacker gone wrong to a few.
        Morris claimed that the worm that brought the Internet to its
        knees was a benign experiment that got out of control as the
        result of a coding error.  After the storm of negative
        publicity that followed this blunder, Morris's user name on ITS
        was hacked from RTM to {RTFM}.

        (1995-03-31)

RTMP

        {Routing Table Maintenance Protocol}

RTOS

        {Real-Time Operating System}

RT-PC

        <computer> RISC Technology Personal Computer.

        (Commonly, but incorrectly, known as the "PC-RT", later
        changed to just "RT") {IBM}'s first {RISC}-based {Unix}
        computer.  The RT-PC was the predecessor to IBM's {RS/6000}.
        It ran {AIX} 1.x and 2.x and had a {PC-AT} bus and IBM's
        {ROMP} {microprocessor}.  It was withdrawn from the marketing
        around 1989 or 1990.

        (1995-04-06)

RTS

        1. <operating system> {run-time system}.

        2. <programming> {return from subroutine}.

        (1999-07-26)

RTSA

        {real-time structured analysis}

RTSP

        {Real Time Streaming Protocol}

RTT

        {Round-Trip Time}

RTTI

        {Run Time Type Information}

ru

        <networking> The {country code} for the Russian Federation.

        (1999-01-27)

Ruby

        1. A {relational language} designed by Jones and M. Sheeran in
        1986 for describing and designing circuits (a {hardware
        description language}).  Ruby programs denote {binary
        relation}s and programs are built-up inductively from
        primitive relations using a pre-defined set of {relational
        operator}s.  Ruby programs also have a geometric
        interpretation as networks of primitive relations connected by
        wires, which is important when layout is considered in circuit
        design.

        Ruby has been continually developed since 1986, and has been
        used to design many different kinds of circuits, including
        {systolic array}s, {butterfly network}s and arithmetic
        circuits.

        {(ftp://ftp.cs.chalmers.se/pub/misc/ruby/)} (129.16.225.66).
        E-mail: <graham@cs.chalmers.se>.

        ["Ruby - A Language of Relations and Higher-Order Functions",
        M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification,
        Springer 1990].

        (1994-10-27)

        2. One of five pedagogical languages based on {Markov
        algorithm}s, used in Higman's report (below).  The other
        languages are {Brilliant}, {Diamond}, {Nonpareil} and {Pearl}.

        ["Nonpareil, a Machine Level Machine Independent Language for
        the Study of Semantics", B. Higman, ULICS Intl Report No ICSI
        170, U London (1968)].

        (1994-10-27)

rude

        [WPI] 1. Badly written or functionally poor, e.g. a program
        that is very difficult to use because of gratuitously poor
        design decisions.  Opposite: {cuspy}.

        2. Anything that manipulates a shared resource without regard
        for its other users in such a way as to cause a (non-fatal)
        problem.  Examples: programs that change tty modes without
        resetting them on exit, or windowing programs that keep
        forcing themselves to the top of the window stack.  Compare
        {all-elbows}.

        (1994-10-27)

RUFL

        Rhodes University Functional Language.  A {Miranda}-like
        functional language from Rhodes University, Grahamstown, South
        Africa with a {SPARC} {code generator}.

        (1994-10-27)

run

        {execution}

RUNCIBLE

        Early system for mathematics on {IBM 650}.

        See also {FORTRUNCIBLE}, {IT}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-10-27)

runes

        1. Anything that requires {heavy wizardry} or {black art} to
        {parse}: core dumps, {JCL} commands, {APL} or code in a
        language you haven't a clue how to read.  Not quite as bad as
        {line noise}, but close.

        Compare {casting the runes}, {Great Runes}.

        2. Special display characters (for example, the high-half
        graphics on an {IBM PC}).

runic

        <jargon> Obscure, consisting of {runes}.

        {VMS} fans sometimes refer to {Unix} as "RUnix".  Unix fans
        return the compliment by expanding VMS to "Very Messy Syntax"
        or "Vachement Mauvais Systeme" (French; literally "Cowlike Bad
        System", idiomatically "Bitchy Bad System").

        (1996-09-17)

run-length encoding

        A kind of {compression} {algorithm} which replaces sequences
        ("runs") of consecutive repeated characters (or other units of
        data) with a single character and the length of the run.  This
        can either be applied to all input characters, including runs
        of length one, or a special character can be used to introduce
        a run-length encoded group.  The longer and more frequent the
        runs are, the greater the compression that will be achieved.
        This technique is particularly useful for encoding black and
        white {image}s where the data units would be single bit
        {pixel}s.

        (1994-10-27)

run time

        1. The elapsed time to perform a computation on a particular
        computer.

        2. The amount of time a its processor actually spent on one
        process and not on other processes or overhead (see
        {time-sharing}).

run-time

        (Or "runtime", occassionally "{run time}").

        1. The period of time during which a program is being
        executed, as opposed to compile time or load time.

        2. {run-time support}.

run-time environment

        <operating system> A collection of subroutines and
        {environment variable}s that provide commonly used functions
        and data for a program while it is running.

        Compare {run-time support}.

        (1995-03-22)

run-time error

        <programming> An {error} in the execution of a program which
        occurs at {run-time}, as opposed to a {compile-time error}.

        A good programming language should, among other things, aim to
        replace run-time errors by compile-time errors.  Language
        features such as {strong typing} help.

        A good program should attempt to avoid run-time errors by, for
        example, checking that their input data is sensible.  Where
        this is not possible, the program should attempt to detect the
        error and handle it gracefully rather than just exiting via
        the language or operating system's default handler.  Here
        again, a good language will make this easy to do (or at least
        possible).

        See also {abort}, {core dump}, {GPF}.

        (1997-01-13)

run-time library

        <operating system, programming, library> A file containing
        routines which are linked with a program at {run-time} rather
        than at {compile-time}.  The advantage of such {dynamic
        linking} is that only one copy of the library needs to be
        stored, rather than a copy being included with each
        {executable} that refers to it.  This can greatly reduce the
        disk space occupied by programs.  Furthermore, it means that
        all programs immediately benefit from changes (e.g. {bug}
        fixes) to the single copy of the library without requiring
        recompilation.  Since the library code is normally classified
        as read-only to the {memory management} system, it is possible
        for a single copy of the library to be loaded into memory and
        shared by all active programs, thus reducing {RAM} and
        {virtual memory} requirements and program load time.

        (1997-07-16)

run-time support

        {run-time system}

run-time system

        <programming> (RTS, run-time support, run-time) Library code
        and processes which support software written in a particular
        language running on a particular {platform}.  The RTS
        typically deals with details of the interface between the
        program and the {operating system} such as {system calls},
        program start-up and termination, and {memory management}.

        (1999-07-26)

Run-Time Type Information

        <compiler> (RTTI) Facilities included in {C++} {compilers} to
        allow the {type} of an object to be determined at {run time}.

        This facility, found in good C++ compilers and some other
        {high level languages}, adds type information to memory
        resident objects (i.e. type name or unique type-id).  This
        allows the {runtime system} to determine if an object is of a
        specific type, for example, to ensure that a {cast} of an
        object is valid.

        (1996-04-15)

ruptime

        {Unix} {Berkeley networking} command to report the status of
        all hosts on the net.  See also rwho.  See ruptime(1N).

RUSH

        1. <language> An interactive dialect of {PL/I}, related to
        {CPS}, dated about 1966.  The name is the abbreviation of
        "Remote Use of Shared Hardware".

        ["Introduction to RUSH", Allen-Babcock Computing 1969.  Sammet
        1969, p.309.]

        2. <language> A {high-level language} that closely resembles
        {Tcl} but aimed to provide substantially faster execution.
        See {An Introduction to the Rush Language
        (ftp://ginsberg.cs.berkeley.edu/pub/papers/asah/rush-tcl94.ps.gz)}
        by Adam Sah, Jon Blow, and Brian Dennis (1994).

        (1996-12-17)

Russell

        (After {Bertrand Russell}) A compact, {polymorphical}ly typed
        {functional language} by A. Demers & J. Donahue with {bignum}s
        and {continuation}s.  Types are themselves {first-class}
        values and may be passed as arguments.

        {(ftp://parcftp.xerox.com/pub/russell/russell.tar.Z)}

        ["An Informal Description of Russell", H. Boehm et al, Cornell
        CS TR 80-430, 1980].

        ["Understanding Russell: A First Attempt", J.G. Hook in LNCS
        173, Springer].

        (1995-03-27)

Russell, Bertrand

        {Bertrand Russell}

Russell's Attic

        <mathematics> An imaginary room containing {countably many}
        pairs of shoes (i.e. a pair for each {natural number}), and
        countably many pairs of socks.  How many shoes are there?
        Answer: countably many (map the left shoes to even numbers and
        the right shoes to odd numbers, say).  How many socks are
        there?  Also countably many, we want to say, but we can't
        prove it without the {Axiom of Choice}, because in each pair,
        the socks are indistinguishable (there's no such thing as a
        left sock).  Although for any single pair it is easy to select
        one, we cannot specify a general method for doing this.

        (1995-03-29)

Russell's Paradox

        <mathematics> A logical contradiction in {set theory}
        discovered by the British mathematician {Bertrand Russell}
        (1872-1970).  If R is the set of all sets which don't contain
        themselves, does R contain itself?  If it does then it doesn't
        and vice versa.

        The paradox stems from the acceptance of the following
        {axiom}: If P(x) is a property then

                {x : P}

        is a set.  This is the {Axiom of Comprehension} (actually an
        {axiom schema}).  By applying it in the case where P is the
        property "x is not an element of x", we generate the paradox,
        i.e. something clearly false.  Thus any theory built on this
        axiom must be inconsistent.

        In {lambda-calculus} Russell's Paradox can be formulated by
        representing each set by its {characteristic function} - the
        property which is true for members and false for non-members.
        The set R becomes a function r which is the negation of its
        argument applied to itself:

                r = \ x . not (x x)

        If we now apply r to itself,

                r r = (\ x . not (x x)) (\ x . not (x x))
                    = not ((\ x . not (x x))(\ x . not (x x)))
                    = not (r r)

        So if (r r) is true then it is false and vice versa.

        An alternative formulation is: "if there is a (clean-shaven)
        barber of Seville who shaves all men in Seville who don't
        shave themselves, and only those men, who shaves the barber?"
        This can be taken simply as a proof that no such barber can
        exist whereas seemingly obvious axioms of {set theory} suggest
        the existence of the paradoxical set R.

        {Zermelo Frnkel set theory} is one "solution" to this
        paradox.  Another, {type theory}, restricts sets to contain
        only elements of a single type, (e.g. integers or sets of
        integers) and no type is allowed to refer to itself so no set
        can contain itself.

        A message from Russell induced {Frege} to put a note in his
        life's work, just before it went to press, to the effect that
        he now knew it was inconsistent but he hoped it would be
        useful anyway.

        (1995-03-25)

rusty iron

        <jargon, hardware> Synonym {tired iron}.  It has been claimed
        that this is the inevitable fate of {water MIPS}.

        (1995-03-25)

rusty memory

        <storage, humour> {Mass-storage} that uses iron-oxide-based
        magnetic media (especially {magnetic tape} and the
        pre-{Winchester} {removable disk packs} used in {washing
        machines}).

        Compare {donuts}.

        (1997-07-20)

RUTH

        D.A. Harrison at Newcastle University.  Real-time language
        based on LispKit.  Uses timestamps and real-time clocks.

        ["RUTH: A Functional Language for Real-Time Programming",
        D. Harrison in PARLE: Parallel Architectures and Languages
        Europe, LNCS 259, Springer 1987, pp.297-314].

rw

        <networking> The {country code} for Rwanda.

        (1999-01-27)

rwho

        <networking> The {Berkeley Unix} networking command to report
        who is logged in on all {hosts} on the local {network
        segment}.

        {Unix manual page}: rwho(1).

        (1996-09-08)

RWP

        {Remote Write Protocol}

Rx

        A pattern matcher compatible with {GNU} {regex}, but generally
        faster.

        Version 0.05, released 1994-05-18, contained substantial
        changes from the version last distributed with GNU {sed}.
        These changes provide low-level support for searching across
        arbitrarily fragmented strings and suspendable searches.

S

        <language> A statistical analysis language from {AT&T}.

        ["S: An Interactive Environment for Data Analysis and
        Graphics", Richard A. Becker, Wadsworth 1984].

        (1997-01-21)

s///

        <chat> s/{foo}/{bar}/ is an idiom which means "I didn't mean
        to type 'foo', I meant to type 'bar'".

        Its use in {talk} systems, especially {irc}, comes from the
        use of s/// as a substitution operator in {Perl}, {sed} and
        {ed}.  In these languages and tools, s/foo/bar/ would replace
        any substring matching the {regular expression} "foo" with the
        string "bar".

        (1997-03-16)

S3

        1. <language> An {ALGOL}-like system language for the {ICL
        2900} computer.

        2. <graphics, hardware> A video chipset.

        3. <graphics> An {X Window System} {screen server}.

        (1998-04-28)

SA

        {Structured Analysis}

sa

        <networking> The {country code} for Saudi Arabia.

        (1999-01-27)

SA-110

        <processor> The first member of the {StrongARM} family
        resulting from the architecture license agreement between
        {Digital Equipment Corporation} and {Advanced RISC Machines}
        Ltd. (ARM), developer of the {ARM} 32-bit {RISC} architecture.

        The SA-110 combines ARM's low-power architecture with
        Digital's processor design and {CMOS} process expertise, and
        is targetted at {embedded} consumer electronics products.

        (1996-02-06)

SAA

        {Systems Application Architecture}

Saber-C

        Renamed to {CodeCenter}.

Saber-C++

        Renamed to {ObjectCenter}.

SAC

        An early system on the {Datatron 200} series.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-04-12)

SAC-1

        <mathematics, tool> An early {symbolic mathematics} system,
        written in {FORTRAN} by G.E. Collins.

        [Proc 2nd Symp Symb Alg Manip pp.144-152 (1971)].

        (1995-04-12)

SAC2

        <mathematics, tool> A {symbolic mathematics} system which
        compiles to {FORTRAN} or {Common Lisp}.

        E-mail: <jma@poly.polytechnique.fr>.

        (1995-04-12)

sacadm

        <operating system> A {Unix} (Solaris?) command for
        administering both {ttymon} and {listen}.  It can be used to
        add and remove, start and stop, and enable and disable {port
        monitors}.

        [What does "sac" stand for?]

        (1997-12-21)

sacred

        Reserved for the exclusive use of something (an extension of
        the standard meaning).  Often means that anyone may look at
        the sacred object, but clobbering it will screw whatever it is
        sacred to.  The comment "Register 7 is sacred to the interrupt
        handler" appearing in a program would be interpreted by a
        hacker to mean that if any *other* part of the program changes
        the contents of register 7, dire consequences are likely to
        ensue.

SAD

        {Systems Analysis Definition}

SAD SAM

        Query language by Lindsay.  Sammet 1969, p.669.

SADT

        Structured Analysis and Design Technique.

SAFARI

        ON-line text editing system by MITRE.  Sammet 1969, p.685.

safe

        A safe program analysis is one which will not reach invalid
        conclusions about the behaviour of the program.  This may
        involve making safe approximations to properties of parts of
        the program.  A safe approximation is one which gives less
        information.

        For example, strictness analysis aims to answer the question
        "will this function evaluate its argument"?.  The two possible
        results are "definitely" and "don't know".  A safe
        approximation for "definitely" is "don't know".  The two
        possible results correspond to the two sets: "the set of all
        functions which evaluate their argument" and "all functions".
        A set can be safely approximated by another which contains it.

safety

        See {safe}, {safety-critical system}.

safety-critical system

        A computer, electronic or electromechanical system whose
        failure may cause injury or death to human beings.  E.g. an
        aircraft or nuclear power station control system.  Common
        tools used in the design of safety-critical systems are
        {redundancy} and {formal methods}.

        See also {aeroplane rule}.

saga

        <jargon> (WPI) A {cuspy} but {bogus} raving story about N
        {random} broken people.

        Here is a classic example of the saga form, as told by {Guy
        Steele} (GLS):

        Jon L. White (login name JONL) and I (GLS) were office mates
        at {MIT} for many years.  One April, we both flew from Boston
        to California for a week on research business, to consult
        face-to-face with some people at {Stanford}, particularly our
        mutual friend {Richard Gabriel} (RPG).

        RPG picked us up at the San Francisco airport and drove us
        back to {Palo Alto} (going {logical} south on route 101,
        parallel to {El Camino Bignum}).  Palo Alto is adjacent to
        Stanford University and about 40 miles south of San Francisco.
        We ate at The Good Earth, a "health food" restaurant, very
        popular, the sort whose milkshakes all contain honey and
        protein powder.  JONL ordered such a shake - the waitress
        claimed the flavour of the day was "lalaberry".  I still have
        no idea what that might be, but it became a running joke.  It
        was the colour of raspberry, and JONL said it tasted rather
        bitter.  I ate a better tostada there than I have ever had in
        a Mexican restaurant.

        After this we went to the local Uncle Gaylord's Old Fashioned
        Ice Cream Parlor.  They make ice cream fresh daily, in a
        variety of intriguing flavours.  It's a chain, and they have a
        slogan: "If you don't live near an Uncle Gaylord's - MOVE!"
        Also, Uncle Gaylord (a real person) wages a constant battle to
        force big-name ice cream makers to print their ingredients on
        the package (like air and plastic and other non-natural
        garbage).  JONL and I had first discovered Uncle Gaylord's the
        previous August, when we had flown to a computer-science
        conference in {Berkeley}, California, the first time either of
        us had been on the West Coast.  When not in the conference
        sessions, we had spent our time wandering the length of
        Telegraph Avenue, which (like Harvard Square in Cambridge) was
        lined with picturesque street vendors and interesting little
        shops.  On that street we discovered Uncle Gaylord's Berkeley
        store.  The ice cream there was very good.  During that August
        visit JONL went absolutely bananas (so to speak) over one
        particular flavour, ginger honey.

        Therefore, after eating at The Good Earth - indeed, after
        every lunch and dinner and before bed during our April visit
        --- a trip to Uncle Gaylord's (the one in Palo Alto) was
        mandatory.  We had arrived on a Wednesday, and by Thursday
        evening we had been there at least four times.  Each time,
        JONL would get ginger honey ice cream, and proclaim to all
        bystanders that "Ginger was the spice that drove the Europeans
        mad!  That's why they sought a route to the East!  They used
        it to preserve their otherwise off-taste meat."  After the
        third or fourth repetition RPG and I were getting a little
        tired of this spiel, and began to paraphrase him: "Wow!
        Ginger!  The spice that makes rotten meat taste good!"  "Say!
        Why don't we find some dog that's been run over and sat in the
        sun for a week and put some *ginger* on it for dinner?!"
        "Right!  With a lalaberry shake!"  And so on.  This failed to
        faze JONL; he took it in good humour, as long as we kept
        returning to Uncle Gaylord's.  He loves ginger honey ice
        cream.

        Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
        (putting up with us?) in their home for our visit, so to thank
        them JONL and I took them out to a nice French restaurant of
        their choosing.  I unadventurously chose the filet mignon, and
        KBT had je ne sais quoi du jour, but RPG and JONL had lapin
        (rabbit).  (Waitress: "Oui, we have fresh rabbit, fresh
        today."  RPG: "Well, JONL, I guess we won't need any
        *ginger*!")

        We finished the meal late, about 11 P.M., which is 2 A.M
        Boston time, so JONL and I were rather droopy.  But it wasn't
        yet midnight.  Off to Uncle Gaylord's!

        Now the French restaurant was in Redwood City, north of Palo
        Alto.  In leaving Redwood City, we somehow got onto route 101
        going north instead of south.  JONL and I wouldn't have known
        the difference had RPG not mentioned it.  We still knew very
        little of the local geography.  I did figure out, however,
        that we were headed in the direction of Berkeley, and
        half-jokingly suggested that we continue north and go to Uncle
        Gaylord's in Berkeley.

        RPG said "Fine!" and we drove on for a while and talked.  I
        was drowsy, and JONL actually dropped off to sleep for 5
        minutes.  When he awoke, RPG said, "Gee, JONL, you must have
        slept all the way over the bridge!", referring to the one
        spanning San Francisco Bay.  Just then we came to a sign that
        said "University Avenue".  I mumbled something about working
        our way over to Telegraph Avenue; RPG said "Right!" and
        maneuvered some more.  Eventually we pulled up in front of an
        Uncle Gaylord's.

        Now, I hadn't really been paying attention because I was so
        sleepy, and I didn't really understand what was happening
        until RPG let me in on it a few moments later, but I was just
        alert enough to notice that we had somehow come to the Palo
        Alto Uncle Gaylord's after all.

        JONL noticed the resemblance to the Palo Alto store, but
        hadn't caught on.  (The place is lit with red and yellow
        lights at night, and looks much different from the way it does
        in daylight.)  He said, "This isn't the Uncle Gaylord's I went
        to in Berkeley!  It looked like a barn!  But this place looks
        *just like* the one back in Palo Alto!"

        RPG deadpanned, "Well, this is the one *I* always come to when
        I'm in Berkeley.  They've got two in San Francisco, too.
        Remember, they're a chain."

        JONL accepted this bit of wisdom.  And he was not totally
        ignorant - he knew perfectly well that University Avenue was
        in Berkeley, not far from Telegraph Avenue.  What he didn't
        know was that there is a completely different University
        Avenue in Palo Alto.

        JONL went up to the counter and asked for ginger honey.  The
        guy at the counter asked whether JONL would like to taste it
        first, evidently their standard procedure with that flavour,
        as not too many people like it.

        JONL said, "I'm sure I like it.  Just give me a cone."  The
        guy behind the counter insisted that JONL try just a taste
        first.  "Some people think it tastes like soap."  JONL
        insisted, "Look, I *love* ginger.  I eat Chinese food.  I eat
        raw ginger roots.  I already went through this hassle with the
        guy back in Palo Alto.  I *know* I like that flavour!"

        At the words "back in Palo Alto" the guy behind the counter
        got a very strange look on his face, but said nothing.  KBT
        caught his eye and winked.  Through my stupor I still hadn't
        quite grasped what was going on, and thought RPG was rolling
        on the floor laughing and clutching his stomach just because
        JONL had launched into his spiel ("makes rotten meat a dish
        for princes") for the forty-third time.  At this point, RPG
        clued me in fully.

        RPG, KBT, and I retreated to a table, trying to stifle our
        chuckles.  JONL remained at the counter, talking about ice
        cream with the guy b.t.c., comparing Uncle Gaylord's to other
        ice cream shops and generally having a good old time.

        At length the g.b.t.c. said, "How's the ginger honey?"  JONL
        said, "Fine!  I wonder what exactly is in it?"  Now Uncle
        Gaylord publishes all his recipes and even teaches classes on
        how to make his ice cream at home.  So the g.b.t.c. got out
        the recipe, and he and JONL pored over it for a while.  But
        the g.b.t.c. could contain his curiosity no longer, and asked
        again, "You really like that stuff, huh?"  JONL said, "Yeah,
        I've been eating it constantly back in Palo Alto for the past
        two days.  In fact, I think this batch is about as good as the
        cones I got back in Palo Alto!"

        G.b.t.c. looked him straight in the eye and said, "You're *in*
        Palo Alto!"

        JONL turned slowly around, and saw the three of us collapse in
        a fit of giggles.  He clapped a hand to his forehead and
        exclaimed, "I've been hacked!"

        [My spies on the West Coast inform me that there is a close
        relative of the raspberry found out there called an
        "ollalieberry" - ESR]

        [Ironic footnote: it appears that the {meme} about ginger vs.
        rotting meat may be an urban legend.  It's not borne out by an
        examination of mediaeval recipes or period purchase records
        for spices, and appears full-blown in the works of Samuel
        Pegge, a gourmand and notorious flake case who originated
        numerous food myths. - ESR]

        (1994-12-08)

sagan

        <jargon> /say'gn/ (From Carl Sagan's TV series "Cosmos")
        Billions and billions.  A large quantity of anything.

        "There's a sagan different ways to tweak EMACS."  "The US
        Government spends sagans on bombs and welfare - hard to say
        which is more destructive."

        (1999-10-12)

SAGE

        1. {Systems Administrators Guild}.

        2. {Strategic Air Ground Environment}.

        (1995-11-28)

SAIC

        {Home (http://www.saic.com)}.

        (1996-03-21)

SAID

        {Security Association ID}

SAIL

        /sayl/, not /S-A-I-L/ 1. The Stanford Artificial Intelligence
        Laboratory.  An important site in the early development of
        LISP; with the MIT AI Lab, BBN, CMU, XEROX PARC, and the Unix
        community, one of the major wellsprings of technical
        innovation and hacker-culture traditions (see the {WAITS}
        entry for details).  The SAIL machines were shut down in late
        May 1990, scant weeks after the MIT AI Lab's ITS cluster was
        officially decommissioned.

        2. Stanford Artificial Intelligence Language.  Dan Swinehart &
        Bob Sproull, Stanford AI Project, 1970.  A large ALGOL 60-like
        language for the DEC-10 and DEC-20.  Its main feature is a
        symbolic data system based upon an associative store
        (originally called LEAP).  Items may be stored as unordered
        sets or as associations (triples).  Processes, events and
        interrupts, contexts, backtracking and record garbage
        collection.  Block- structured macros.  "Recent Developments
        in SAIL - An ALGOL-based Language for Artificial
        Intelligence", J. Feldman et al, Proc FJCC 41(2), AFIPS (Fall
        1972).  (See MAINSAIL).

        The Stanford Artificial Intelligence Language used at SAIL
        (sense 1).  It was an ALGOL 60 derivative with a coroutining
        facility and some new data types intended for building search
        trees and association lists.

        3. Early system on Larc computer.  Listed in CACM 2(5):16 (May
        1959).

SAINT

        Symbolic Automatic INTegrator.

        A {symbolic mathematics} program written in {Lisp} by
        J. Slagle at {MIT} in 1961.

        [Sammet 1969, p. 410].

        (1994-12-08)

SAL

        1. {Single Assignment Language}.

        2. Simple Actor Language.

        A minimal {actor} language, used for pedagogical purposes in:

        ["Actors, A Model of Concurrent Computation in Distributed
        Systems", G. Agha, MIT Press 1986].

        (1994-12-08)

        3. SPARK Annotation Language.

        {ICL}, Ltd.  Used in the verification of {SPARK} programs
        against {Z} specifications.

        (1994-12-08)

SALEM

        ["SALEM - A Programming System for the Simulation of Systems
        Described by Partial Differential Equations", S.M. Morris et
        al, Proc SJCC 33(1), 1968].

        (1994-12-08)

Sales Automation

        {Sales Force Automation}

salescritter

        /sayls'kri"tr/ Pejorative hackerism for a computer
        salesperson.  Hackers tell the following joke:

        Q. What's the difference between a used-car dealer and a
        computer salesman?

        A. The used-car dealer knows he's lying.  [Some versions add:
        ...and probably knows how to drive.]

        This reflects the widespread hacker belief that salescritters
        are self-selected for stupidity (after all, if they had brains
        and the inclination to use them, they'd be in programming).
        The terms "salesthing" and "salesdroid" are also common.

        Compare {marketroid}, {suit}, {droid}.

        (1994-12-08)

Sales Force Automation

        <business> (Sales Automation, SFA, SFFA, Sales & Field Force
        Automation) Software to support sales reps.  The software
        gives sales representitives access to contacts, appointments
        and e-mail.  It is likely to be integrated with {Customer
        Relationship Management} systems and {Opportunity Management
        Systems}.

        (1999-08-20)

S-ALGOL

        Orthogonal data structures on ALGOL 60.  "S-Algol Language
        Reference Manual", R. Morrison, TR CS/79/1 U St Andrews, 1979.
        "An Introduction to Programming with S-Algol", A.J. Cole &
        R. Morrison, Cambridge U Press 1982.

SALT

        1. Symbolic Assembly Language Trainer.  Assembly-like language
        implemented in BASIC by Kevin Stock, now at Encore in France.

        2. Sam And Lincoln Threaded language.  A threaded extensible
        variant of BASIC.  "SALT", S.D. Fenster et al, BYTE (Jun 1985)
        p.147.

salt

        A tiny bit of near-random data inserted where too much
        regularity would be undesirable; a data {frob} (sense 1).  For
        example, the Unix crypt(3) manual page mentions that "the salt
        string is used to perturb the DES algorithm in one of 4096
        different ways."

salt mines

        Dense quarters housing large numbers of programmers working
        long hours on grungy projects, with some hope of seeing the
        end of the tunnel in N years.  Noted for their absence of
        sunshine.  Compare {playpen}, {sandbox}.

salt substrate

        [MIT] Collective noun used to refer to potato chips, pretzels,
        saltines, or any other form of snack food designed primarily
        as a carrier for sodium chloride.  From the technical term
        "chip substrate", used to refer to the silicon on the top of
        which the active parts of integrated circuits are deposited.

sam

        A multi-file {screen editor} with structural {regular
        expression}s.  Sam runs under the {X Window System}.

SAM76

        A {macro} language by Claude Kagan descended from {TRAC}.
        There is a version for {CP/M}.

        [Dr Dobbs J ca 1977].

Samba

        <networking> A free suite of programs which implement the
        {Server Message Block} (SMB) protocol.

        Originally developed for {Unix} by Andrew Tridgell at the
        {Australian National University}, the Samba {server} allows
        files and printers on the {host} {operating system} to be
        shared with {clients} such as {Windows for Workgroups}, {DOS},
        {OS/2}, {Windows NT} and others.

        For example, instead of using {telnet} to log in to a Unix
        machine to edit a file there, a {Windows 95} user might
        connect a drive in the Windows {Explorer} to a Samba server on
        the Unix machine and edit the file in a Windows editor.

        A Unix client called smbclient, built from the same {source
        code}, allows {ftp}-like access to SMB resources.

        Samba is available for many Unix variants, OS/2, and {VMS}.
        Porting to {Novell Netware} is in progress (August 1996).

        smblib is a {portable} generic library for making SMB calls
        for implementing {client/server} functions from within any
        program.  {Linux} implements a complete file system (based on
        smbclient) so by default Linux users have full access to
        resources on {LAN Server}, Windows NT and {LAN Manager}
        networks.

        {Home (http://www.samba.org/samba/samba.html)}.

        (1998-11-22)

SAME

        {Standard ANSI Module language with Extensions}

same-day service

        <humour, operating system> An ironic term used to describe
        long response time, particularly with respect to {MS-DOS}
        {system calls} (which ought to require only a tiny fraction of
        a second to execute).  Such response time is a major incentive
        for programmers to write programs that are not {well-behaved}.

        See also {PC-ism}.

        (1996-12-17)

SAMeDL

        {SQL} {Ada} Module Description Language.  Used to interface
        {Ada} {application program}s to {SQL}-based {DBMS}s.

        E-mail: Marc Graham <marc@sei.cmu.edu>.
        {(ftp://ajpo.sei.cmu.edu/public/atip/samedl/)}.

        ["Rationale for SQL Ada Module Description Language SAMeDL",
        SEI-92-TR-016].

samizdat

        (Russian, literally "self publishing") The process of
        disseminating documentation via underground channels.
        Originally referred to photocopy duplication and distribution
        of banned books in the former Soviet Union; now refers by
        obvious extension to any less-than-official promulgation of
        textual material, especially rare, obsolete, or
        never-formally-published computer documentation.  Samizdat is
        obviously much easier when one has access to high-bandwidth
        networks and high-quality laser printers.  Note that samizdat
        is properly used only with respect to documents which contain
        needed information (see also {hacker ethic}) but which are for
        some reason otherwise unavailable, but *not* in the context of
        documents which are available through normal channels, for
        which unauthorised duplication would be unethical copyright
        violation.

        See {Lions Book} for a historical example.

        (1995-03-23)

Sammet, Jean E.

        {Jean E. Sammet}

samurai

        A hacker who hires out for legal cracking jobs, snooping for
        factions in corporate political fights, lawyers pursuing
        privacy-rights and First Amendment cases, and other parties
        with legitimate reasons to need an electronic locksmith.  In
        1991, mainstream media reported the existence of a loose-knit
        culture of samurai that meets electronically on BBS systems,
        mostly bright teenagers with personal micros; they have
        modelled themselves explicitly on the historical samurai of
        Japan and on the "net cowboys" of William Gibson's {cyberpunk}
        novels.  Those interviewed claim to adhere to a rigid ethic of
        loyalty to their employers and to disdain the vandalism and
        theft practiced by criminal crackers as beneath them and
        contrary to the hacker ethic; some quote Miyamoto Musashi's
        "Book of Five Rings", a classic of historical samurai
        doctrine, in support of these principles.

        See also {Stupids}, {social engineering}, {cracker}, {hacker
        ethic}, and {dark-side hacker}.

sandbender

        [IBM] A person involved with silicon lithography and the
        physical design of {integrated circuit}s.  Compare
        {ironmonger}, {polygon pusher}.

sandbox

        1. Common term for the R&D department at many software and
        computer companies (where hackers in commercial environments
        are likely to be found).  Half-derisive, but reflects the
        truth that research is a form of creative play.  Compare
        {playpen}.  (In the UK this would be "sandpit").

        2. Synonym {link farm}.

Sandman

        The {DoD} requirements that led to {APSE}.

San Francisco

        <project, library> {IBM}'s {Java} component {framework}
        application template.

        The San Francisco Project, started in 1998(?), aims to create
        a generic set of {java} building blocks to provide the core
        functions of general business processes such as sales order
        processing, general ledger, inventory management and product
        distribution.

        The project aims to use component based design allowing easy
        vendor customisation and Java code generation allowing
        applications to be built and run across multiple platforms.
        It also aims to be compatible with third party development
        tools.

        {Home (http://www.ibm.com/Java/Sanfrancisco/)}.

        (1998-08-16)

sanity check

        <programming> 1. Checking {code} (or anything else, e.g. a
        {Usenet} posting) for completely stupid mistakes.  Implies
        that the check is to make sure the author was sane when it was
        written; e.g. if a piece of scientific software relied on a
        particular formula and was giving unexpected results, one
        might first look at the nesting of parentheses or the coding
        of the formula, as a "sanity check", before looking at the
        more complex I/O or data structure manipulation routines, much
        less the {algorithm} itself.

        Compare {reality check}.

        2. A run-time test, either validating input or ensuring that
        the program hasn't screwed up internally (producing an
        inconsistent value or state).

        (1998-08-29)

Santa Cruz Operation

        (SCO) A supplier of {Unix} systems for {Intel}
        {microprocessor}s.  They supply {Xenix} and {Open Desktop}.

        Founded in 1979, SCO became a public company in May, 1993 and
        trades on the Nasdaq National Market System under the symbol
        SCOC.  SCO maintains its world headquarters in Santa Cruz,
        California, USA; a European headquarters in Watford, England;
        a Government Systems Group in Reston, Virginia; and offices in
        Asia, Australia, Canada, Latin America, and throughout Europe
        and the United States.  In February 1993, SCO acquired {IXI}
        Limited of Cambridge, England, the leading supplier of {Unix}
        System windowing software.

        {(http://websco.sco.com/)}

        (1994-10-28)

        [Addresses?]

SAP

        1. <company> {SAP AG} (Systems, Applications and Products in
        Data Processing).

        2. <protocol> {Service Advertising Protocol}.

        3. <networking> {Service Access Point}.

        4. <language> {Symbolic Assembler Program}.

        (1999-05-26)

SAP AG

        <company> (Systeme, Anwendungen, Produkte in der
        Datenverarbeitung - German for "Systems, Applications and
        Products in Data Processing") A company from Germany that
        sells the leading suite of {client-server} business software.
        The US branch is called SAP America.

        {Home (http://www.sap.com/)}.

        [Details?]

        (1998-07-28)

SAPI

        1. <programming> {Speech Application Programming Interface}.

        2. <programming> {Scheduling Application Programming
        Interface}.

        3. <networking> {Service Access Point Identifier}.

        (1996-10-03)

SAR

        {segmentation and reassembly}

SAS

        1. <language> {Statistical Analysis System}.

        2. <tool> {SAS System}.

        (1998-11-06)

SASD

        {Structured Analysis, Structured Design}

SASE

        {Specific Application Service Element}.  Opposite: {CASE}.

SASI

        {Small Computer System Interface}

SASL

        Single ASsignment Language or Saint Andrews Static Language.

        (Not to be confused with {SISAL}).  A {functional programming}
        language designed by Professor {David Turner} in 1976.

        SASL is a derivative of {ISWIM} with infinite data
        structures. It is fully {lazy} but weakly typed.  It was
        designed for teaching functional programming, with very simple
        syntax.  A version of the {expert system} {EMYCIN} has been
        written in SASL.

        Example syntax:

                def fac n =
                   n = 0 -> 1 ; n x fac(n-1)

        {(ftp://a.cs.uiuc.edu/uiuc/kamin.distr/distr/sasl.p)}.
        See also {Kamin's interpreters}.

        ["A New Implementation Technique for Applicative Languages",
        D.A. Turner, Soft Prac & Exp 8:31-49 (1979)].

SASL+LV

        Unifies logic and functional programming.  A more complete
        version of FGL+LV, in SASL syntax.  "Combinator Evaluations of
        Functional Programs with Logical Variables", G. Bage et al, TR
        UUCS-87-027, U Utah, Oct 1987.

SASL-YACC

        A version of {Yacc} written in {SASL} by Simon Peyton-Jones.

SAS System

        <tool> (SAS) Integrated software to access, manage, analyze,
        and present data.  The SAS System can be used to perform data
        entry, retrieval and management; report writing and graphics
        design; statistical and mathematical analysis; business
        forecasting and decision support; operations research; project
        management and applications development.

        (1998-11-06)

SATAN

        <networking, security, tool> Security Administrator Tool for
        Analyzing Networks.

        A tool written by Dan Farmer and Wietse Venema which remotely
        probes systems via the network and stores its findings in a
        database.  The results can be viewed with an {HTML} {browser}
        such as {Mosaic} or {Netscape}.  SATAN requires {Perl} 5.000
        or better.

        In its simplest mode, SATAN gathers as much information about
        remote hosts and networks as possible by examining such
        network services as {finger}, {NFS}, {NIS}, {FTP} and {TFTP},
        {rexd}, and other services.  The information gathered includes
        the presence of various network information services as well
        as potential security flaws - usually in the form of
        incorrectly setup or configured network services, well-known
        bugs in system or network utilities, or poor or ignorant
        policy decisions.  It can then either report on this data or
        use a simple rule-based system to investigate any potential
        security problems.  Users can then examine, query, and analyze
        the output with an {HTML} {browser}, such as {Mosaic},
        {Netscape}, or {Lynx}.  While the program is primarily geared
        towards analysing the security implications of the results, a
        great deal of general network information can be gained when
        using the tool - network topology, network services running,
        and types of hardware and software being used on the network.

        SATAN can also be used in exploratory mode.  Based on the
        initial data collection and a user configurable ruleset, it
        will examine the avenues of trust and dependency and iterate
        further data collection runs over secondary hosts.  This not
        only allows the user to analyse his own network, but also to
        examine the real implications inherent in network trust and
        services and help them make reasonably educated decisions
        about the security level of the systems involved.

        {Home (http://www.fish.com/dan/satan.html)}.

        {(http://web.indstate.edu/~cckeg/security/satan/satan_documentation.htm
l)}.

        E-mail: <satan@fish.com>.

        (1995-04-10)

Sather

        <language> /Say-ther/ (Named after the Sather Tower at {UCB},
        as opposed to the Eiffel Tower).

        An interactive {object-oriented} language designed by Steve
        M. Omohundro at {ICSI} in 1991.  Sather has simple {syntax},
        similar to {Eiffel}, but it is non-proprietary and faster.

        Sather 0.2 was nearly a subset of Eiffel 2.0, but Sather 1.0
        adds many distinctive features: parameterised {class}es,
        {multiple inheritance}, statically-checked {strong typing},
        {garbage collection}.  The compiler generates {C} as an
        {intermediate language}.  There are versions for most
        {workstation}s.

        Sather attempts to retain much of {Eiffel}'s theoretical
        cleanliness and simplicity while achieving the efficiency of
        {C++}.  The compiler generates efficient and portable C code
        which is easily integrated with existing code.

        A variety of development tools including a debugger and
        {browser} based on {gdb} and a {GNU Emacs} development
        environment have also been written.  There is also a {class
        library} with several hundred classes that implement a variety
        of basic data structures and numerical, geometric,
        connectionist, statistical, and graphical abstractions.  The
        authors would like to encourage contributions to the library
        and hope to build a large collection of efficient,
        well-written, well-tested classes in a variety of areas of
        computer science.

        Sather runs on {Sun-4}, {HP9000}/300, {Decstation} 5000,
        {MIPS}, {Sony News} 3000, {Sequent}/{Dynix}, {SCO} {SysV}R3.2,
        {NeXT}, {Linux}.

        See also {dpSather}, {pSather}, {Sather-K}.

        {(ftp://ftp.icsi.berkeley.edu/pub/sather)}

        E-mail: <sather-admin@icsi.berkeley.edu>.

        Mailing list: sather-request@icsi.berkeley.edu.

        (1995-04-26)

Sather-K

        <language> Karlsruhe Sather.

        A sublanguage of {Sather} used for introductory courses in
        {object-oriented design} and {typesafe programming}.

        E-mail: <trapp@karlsruhe.gmd.de>.

        (1994-11-11)

satisfiability problem

        A problem used as an example in {complexity theory}.  It can
        be stated thus:

         Given a Boolean expression E, decide if there is some
         assignment to the variables in E such that E is true.

        A {Boolean} expression is composed of Boolean variables,
        (logical) negation (NOT), (logical) {conjunction} (AND) and
        parentheses for grouping.  The satisfiability problem was the
        first problem to be proved to be {NP-complete} (by Cook).

        ["Introduction to Automata Theory, Languages, and Computation"
        by Hopcroft and Ullman, pub. Addison-Wesley].

        (1994-11-11)

Saturday-night special

        (From police slang for a cheap handgun) A {quick-and-dirty}
        program or feature {kluge}d together during off hours, under a
        deadline, and in response to pressure from a {salescritter}.
        Such hacks are dangerously unreliable, but all too often sneak
        into a production release after insufficient review.

        (1994-11-11)

SAVE

        An {assembler} for the {Burroughs 220} by Melvin Conway (see
        {Conway's Law}).  The name "SAVE" didn't stand for anything,
        it was just that you lost fewer card decks and listings
        because they all had SAVE written on them.

        (1995-01-16)

say

        A human may "say" things to a computer by typing them on a
        terminal.  "To list a directory verbosely, say "ls -l"."
        Tends to imply a {newline}-terminated command (a "sentence").

        A computer may "say" things to you, even if it doesn't have a
        speech synthesiser, by displaying them on a terminal in
        response to your commands.  This usage often confuses
        {mundane}s.

sb

        <networking> The {country code} for the Solomon Islands.

        (1999-01-27)

SB AWE32

        <multimedia, music, hardware> A standard {SB16 MultiCD} {sound
        card} with the {EMU8000} "Advanced WavEffect" music
        synthesizer {integrated circuit}.  The card includes all the
        standard SB16 features as well as the {Advanced Signal
        Processor} and multiple interfaces supporting {Creative},
        {Mitsumi} and {Sony} {CD-ROM} drives.

        The EMU8000 comes integrated with 1MB of {General MIDI}
        samples and 512kB of {DRAM} for additional sample downloading.
        It can address up to 28 MB of external DRAM.  The SB AWE32
        supports General MIDI, Roland GS, and Sound Canvas MT-32
        {emulation}.

        (1996-12-16)

SBCS

        <character> (IBM) single-byte character set.

        A {character set} that uses 8 bits to represent a character.

        (1995-03-21)

SBD

        {Smart Battery Data}

SBM

        {Solution Based Modelling}

SB-Prolog

        Stony Brook Prolog.  A {public domain} {Prolog} {interpreter}
        for {Unix}.  Version 3.1.  Distributed under the {GNU}
        {General Public License}.

        {(ftp://sbcs.sunysb.edu/pub/sbprolog/)}

        {Amiga version 2.3.2
        (ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff140)} and
        {(ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff141)}.

        E-mail: <warren@sbcs.sunysb.edu>.

        (1995-01-16)

Sbus

        <hardware> The hardware interface for add-in boards in later
        {Sun-3} (and {Sun-4}?) {workstation}s.

        (1995-03-28)

SC

        <body> Subcommittee (of {ISO}, {JTC}?).

sc

        <networking> The {country code} for the Seychelles.

        (1999-01-27)

SCA

        {Single Connection Attach}

SCADA

        {Supervisory Control and Data Acquisition}

scag

        To destroy the data on a disk, either by corrupting the
        file system or by causing media damage.

        Compare {scrog}, {roach}.

        (1995-01-16)

scalability

        How well a solution to some problem will work when the size of
        the problem increases.

        For example, a central {server} of some kind with ten
        {client}s may perform adequately but with a thousand clients
        it might fail to meet response time requirements.  In this
        case, the average response time probably scales linearly with
        the number of clients, we say it has a {complexity} of O(N)
        ("order N") but there are problems with other complexities.
        E.g. if we want N nodes in a network to be able to communicate
        with each other, we could connect each one to a central
        exchange, requiring O(N) wires or we could provide a direct
        connection between each pair, requiring O(N^2) wires (the
        exact number or formula is not usually so important as the
        highest power of N involved).

        (1995-03-29)

Scalable Coherent Interface

        <hardware, protocol> (SCI) The {ANSI}/{IEEE} 1596-1992
        {standard} that defines a point-to-point {interface} and a set
        of {packet} {protocols}.  The SCI protocols use packets with a
        16-byte {header} and 16, 64, or 256 data bytes.  Each packet
        is protected by a 16-bit {CRC} code.

        The standard defines 1 Gbit/second {serial} {fiber-optic}
        links and 1 Gbyte/second {parallel} copper links.  SCI has two
        unidirectional links that operate concurrently.

        The SCI protocols support {shared memory} by encapsulating
        {bus} requests and responses into SCI request and response
        packets.  Packet-based {handshake} protocols guarantee
        reliable data delivery.  A set of {cache coherence} protocols
        are defined to maintain cache coherence in a {shared memory
        system}.

        {Message passing} is supported by a compatible subset of the
        SCI protocols.  This protocol subset does not invoke SCI cache
        coherency protocols.

        SCI uses 64-bit {addressing} and the most significant 16 bits
        are used for addressing up to 64K {nodes}.

        {http://www.uni-paderborn.de/pc2/systems/sci/}.

        [Applications?]

        (1999-03-22)

Scalable Processor ARChitecture

        <computer> (SPARC) An {instruction set architecture} designed
        by {Sun Microsystems} for their own use in 1985.  Sun was a
        maker of {680x0}-based {Unix} {workstations}.  Research
        versions of {RISC} processors had promised a major step
        forward in speed but existing manufacturers were slow to
        introduce a RISC type processor, so Sun went ahead and
        developed its own, based on the {University of California at
        Berkley}'s {RISC I} and {RISC II} 1980-2.  In keeping with
        their open philosophy, they licenced it to other companies,
        rather than manufacture it themselves.  The evolution and
        standardisation of SPARC is now directed by the non-profit
        consortium {SPARC International, Inc.}

        SPARC was not the first {RISC} processor.  The {AMD 29000}
        came before it, as did the {MIPS R2000} (based on {Stanford}'s
        design) and {Hewlett-Packard} {Precision Architecture} {CPU},
        among others.  The SPARC design was radical at the time, even
        omitting multiple cycle multiply and divide instructions (like
        a few others), while most RISC CPUs are more conventional.

        SPARC implementations usually contain 128 or 144 {registers},
        ({CISC} designs typically had 16 or less).  At each time 32
        registers are available - 8 are global, the rest are allocated
        in a "window" from a stack of registers.  The window is moved
        16 registers down the stack during a function call, so that
        the upper and lower 8 registers are shared between functions,
        to pass and return values, and 8 are local.  The window is
        moved up on return, so registers are loaded or saved only at
        the top or bottom of the register stack.  This allows
        functions to be called in as little as 1 cycle.  Like some
        other RISC processors, reading global register zero always
        returns zero and writing it has no effect.  SPARC is
        {pipelined} for performance, and like previous processors, a
        dedicated {condition code register} holds comparison results.

        SPARC is "scalable" mainly because the register stack can be
        expanded (up to 512, or 32 windows), to reduce loads and saves
        between functions, or scaled down to reduce {interrupt} or
        {context switch} time, when the entire register set has to be
        saved.  Function calls are usually much more frequent, so the
        large register set is usually a plus.

        SPARC is not a chip, but a specification, and so there are
        various implementations of it.  It has undergone revisions,
        and now has multiply and divide instructions.  Most versions
        are 32 bits, but there are designs for 64-bit and
        {superscalar} versions.  SPARC was submitted to the {IEEE}
        society to be considered for the {P1754} microprocessor
        standard.

        SPARC(R) is a registered trademark of SPARC International,
        Inc. in the United States and other countries.

        [The SPARC Architecture Manual, v8, ISBN 0-13-825001-4].

        (1994-11-01)

scalar

        1. <mathematics> A single number, as opposed to a {vector} or
        {matrix} of numbers.  Thus, for example, "scalar
        multiplication" refers to the operation of multiplying one
        number (one scalar) by another and is used to contrast this
        with "matrix multiplication" etc.

        2. <architecture> In a {parallel processor} or {vector
        processor}, the "scalar processor" handles all the sequential
        operations - those which cannot be parallelised or vectorised.

        See also {superscalar}.

        3. <programming> A data type in {Perl} combining what in many
        other languages is either a {string} or a {number}.

        (1998-12-18)

SCALLOP

        A medium-level language for {CDC} computers, used to
        {bootstrap} the first {Pascal} compiler.

        (1994-11-01)

SCAN

        1. ["A Parallel Implementation of the SCAN Language",
        N.G. Bourbakis, Comp Langs 14(4):239-254 (1989)].

        2. A {real-time} language from {DEC}.

        [Are these the same language?]

        (1994-11-01)

scan

        1. (computer peripheral) See {scanner}.

        2. (circuit design) See {scan design}.

        3. ({functional programming}) See {scanl}, {scanr}.

        4. <storage, algorithm> An algorithm for scheduling multiple
        accesses to a disk.  A number of requests are ordered
        according to the data's position on the storage device.  This
        reduces the disk arm movement to one "scan" or sweep across
        the whole disk in the worst case.  The serivce time can be
        estimated from the disk's track-to-track {seek} time, maximum
        seek time (one scan), and maximum {rotational latency}.

        {Scan-EDF} is a variation on this.

        (1995-11-15)

scan design

        <electronics> (Or "Scan-In, Scan-Out") A electronic circuit
        design design technique which aims to increase the
        controllability and observability of a digital {logic circuit}
        by incorporating special "{scan register}s" into the circuit
        so that they form a {scan path}.

        Some of the more common types of scan design include the
        {multiplexed register} designs and {level-sensitive scan
        design} (LSSD) used extensively by {IBM}.  {Boundary scan} can
        be used alone or in combination with either of the above
        techniques.

        ["Digital Systems Testing and Testable Design" by Abramovici,
        Breuer, and Friedman, ISBN 0-7167-8179-4].

        ["Design of Testable Logic Circuits" by R.G. Bennetts,
        (Brunel/Southhampton Universities), ISBN 0-201-14403-4].

        (1995-02-23)

SCANDISK

        <operating system, storage> An {MS-DOS} command to check for
        faults on a disk and provide a graphical representation the
        results.  Scandisk was introduced with MS-DOS version 6 to
        replace CHKDSK.

        [What kinds of disk?  What faults?]

        (1997-07-16)

Scan-EDF

        <storage, algorithm> A variation of the {Scan} disk aceess
        algorithm for use in a {real-time} environment where, in
        general, requests are served according to {Earliest Deadline
        First}.  If two requests share the same deadline, they may be
        reorganised according to Scan.

        A typical example is a video server that retrieves video data
        from a hard disk.  The playback of a video impose tight
        real-time constraints but if the server retrieves data once
        every second for each video channel, Scan-EDF can be applied,
        reducing the {seek} {overhead}.

        (1995-11-15)

scanf

        The {C} library routine that reads data from the {standard
        input} {stream} {stdin} into the locations given by each entry
        in its argument list.  The first argument is a format string
        which controls interpretation of the input and each subsequent
        argument points to a variable with a type that corresponds to
        a type specifier in the format-string.

        {Unix manual page}: scanf(3).

        (1995-02-23)

Scan-In, Scan-Out

        {scan design}

scan line

        <hardware> A horizontal line of {pixels} generated by a single
        horizontal sweep of the beam from a {monitor}'s {electron
        gun}.  The number of scanlines that make up a {frame} is the
        vertical {resolution}.

        (1996-02-09)

scanner

        1. An input device that takes in an optical image and
        digitises it into an electronic image represented as binary
        data.  This can be used to create a computerised version of a
        photo or illustration.

        A scanner may be linked to {optical character recognition}
        software allowing printed documents to be converted to
        electronic text without having to type them in at a keyboard.

        2. {lexical analyser}.

        (1995-02-14)

scanno

        /skan'oh/ An error in a document caused by a {scanner} glitch,
        analogous to a typo or {thinko}.

        (1995-02-14)

scan path

        (circuit design) A technique used to increase the
        controllability and observability of a {logic circuit} by
        incorporating "{scan register}s" into the circuit.  Normally
        these act like {flip-flop}s but they can be switched into a
        "test" mode where they all become one long {shift register}.
        This allows data to be clocked serially through all the scan
        registers and out of an output pin at the same time as new
        data is clocked in from an input pin.

        Using this technique, the state of certain points in the
        circuit can be examined and modified at any time by suspending
        normal operation and switching to test mode.  If the scan path
        is placed adjacent to the circuit's input and output pins then
        this is known as "{boundary scan}".

        (1995-02-14)

scan register

        (circuit design) A digital {logic circuit} which can act
        either as a {flip-flop} or as a serial {shift register} and
        which is used to form a {scan path}.

        The most common design is a multiplexed {flip-flop}:

                      ___         ____
         normal in --|   \       |    |
                     |    |------|D  Q|---- normal/scan output
         scan in ----|___/ mux   |    |
                       |         |    |
         test mode ----+    +----|>   | flip-flop
                            |    |____|
         clk ---------------+

        The addition of a {multiplexor} (mux) to each {flip-flop}'s
        input allows operation in either normal or test mode.  The
        output of each flip-flop goes to the normal functional logic
        as well as to the scan input of the next multiplexor in the
        scan path.

        The other common design is {level-sensitive scan design}
        (LSSD).

        (1995-02-14)

SCC

        {strongly connected component}

SCCS

        Source Code Control System: a popular {code management} system
        for Unix systems.

SCEPTRE

        Designing and analysing circuits.

        ["SCEPTRE: A Computer Program for Circuit and Systems
        Analysis", J.C. Bowers et al, P-H 1971].

scheduler

        {scheduling}

scheduling

        <algorithm> The arrangement of a number of related operations
        in time.

        There are several kinds of scheduling related to computers:

        {instruction scheduling} - sequencing the instructions
        executed by the {CPU}

        {multitasking} ("process scheduling") - sharing a CPU between
        several processes

        {application} {software} to help organise your daily meetings
        etc.

        {task scheduling} - {algorithms} to solve the general problem
        of satisfying time and resource {constraints} between a number
        of tasks.

        Compare {planning}.

        (1998-04-25)

Scheduling API

        {Scheduling Application Programming Interface}

Scheduling Application Programming Interface

        (SAPI, Scheduling API) An {API} aimed at {software} which aids
        humans in arranging their (business) activities.

        {Microsoft} has defined a SAPI for its {Schedule+}
        application.

        (1995-01-11)

Schema Representation language

        (SRL)

        ["SRL/2 Users Manual", J.M. Wright et al, Robotics Inst, CMU,
        1984].

schematic capture

        The process of entering the logical design of an electronic
        circuit into a CAE system by creating a schematic
        representation of components and interconnections.

schematic type variable

        See {generic type variable}.

Schematik

        A {NeXT} front-end to {MIT Scheme} for the NeXT by Chris Kane
        and Max Hailperin <max@nic.gac.edu>.  Schematik provides
        syntax-knowledgeable text editing, graphics windows and a
        user-interface to an underlying MIT Scheme process.  It comes
        with MIT Scheme 7.1.3 ready to install on the NeXT and
        requires {NEXTSTEP}.

        Version: 1.1.5.2.

        {USA FTP (ftp://ftp.gac.edu/pub/next/scheme/)}.  {Germany
        (ftp://ftp.informatik.uni-muenchen.de/pub/next/ProgLang)}.

         E-mail: <schematik@gac.edu>.

         (1993-03-11)

Scheme

        (Originally "Schemer", by analogy with {Planner} and
        {Conniver}).  A small, uniform {Lisp} dialect with clean
        {semantics}, developed initially by {Guy Steele} and {Gerald
        Sussman} in 1975.  Scheme uses {applicative order reduction}
        and is {lexically scoped}.  It treats both functions and
        {continuation}s as {first-class} objects.

        Implementations include {Bigloo}, {Elk}, {Liar}, {Orbit},
        {Scheme86} (Indiana U), {SCM}, {MacScheme} (Semantic
        Microsystems), {PC Scheme} (TI), {MIT Scheme}, {T}.

        See also {Kamin's interpreters}, {PSD}, {PseudoScheme},
        {Schematik}, {Scheme Repository}, {STk}, {syntax-case}, {Tiny
        Clos}, {Paradigms of AI Programming}.

        There have been a series of revisions of the report defining
        Scheme, known as {RRS} (Revised Report on Scheme), {R2RS}
        (Revised Revised Report ..), {R3RS}, {R3.899RS}, {R4RS}.

        acorn.cs.brandeis.edu/dist/gambit1.51-tar.Z (compiler for
        68000's)

        ux1.cso.uiuc.edu/amiga/fish/f7/ff764 (Gambit compiler for
        Amiga)

        Mailing list: scheme@mc.lcs.mit.edu.

        IEEE P1178-1990, "IEEE Standard for the Scheme Programming
        Language", ISBN 1-55937-125-0.

Scheme84

        {Scheme} from {Indiana University}.  It requires {Franz Lisp}
        on a {VAX} under {VMS} or {BSD}.

        E-mail: Nancy Garrett <nlg@indiana.edu>.

        Send a tape with return postage to Scheme84 Distribution,
        Nancy Garrett, c/o Dan Friedman, Department of Computer
        Science, Indiana University, Bloomington, Indiana.  Telephone:
        +1 (812) 335 9770.

Scheme88

        {(ftp://nexus.yorku.ca/pub/scheme/)}

        [Description?]

Scheme->C

        {Scheme-to-C}

Scheme Library

        <library> (SLIB) A portable {Scheme} library providing
        compatibiliy and utility functions for all standard Scheme
        implementations.

        Version 2c5 supports {Bigloo}, {Chez}, {ELK}, {GAMBIT},
        {MacScheme}, {MITScheme}, {PocketScheme}, {RScheme},
        {Scheme->C}, {Scheme48}, {SCM}, {SCSH}, {T3.1}, {UMB-Scheme},
        and {VSCM}.

        {Home (http://swissnet.ai.mit.edu/~jaffer/SLIB.html)}.

        (1999-06-07)

Scheme-Linda

        A {Scheme} interface to {Linda} written by Ulf Dahlen of
        {University of Edinburgh} in 1990.  It runs on the {Computing
        Surface} and the {Symmetry}.

        ["Scheme-Linda", U. Dahlen et al, EPCC-TN-90-01 Edinburgh
        1990].

        (1994-12-15)

Scheme Object System

        (SOS) Chris Hanson?

        {(ftp://altdorf.ai.mit.edu/archive/cph/sos.tar.gz)}

        [Description?]

Scheme Repository

        A collection of free {Scheme} programs.

        {(ftp://nexus.yorku.ca/pub/scheme/)}

Scheme-to-C

        A {Scheme} compiler that emits {C} by Joel Bartlett fo
        {Digital Western Research Laboratory}.  Version 15mar93
        translates a superset of Revised**4 Scheme to C that is then
        compiled by the {native} {C} compiler for the {target
        machine}.  This design results in a portable system that
        allows either stand-alone Scheme programs or programs written
        in both compiled and interpreted Scheme and other languages.
        It supports "{expansion passing style}" {macro}s, {foreign
        function} calls, {record}s and interfaces to {Xlib} ({Ezd} and
        {Scix}).

        It will run on {VAX}, {ULTRIX}, {DECstation}, {Alpha AXP}
        {OSF}/1, {Windows 3.1}, {Apple Macintosh} 7.1, {HP 9000/300},
        {HP 9000/700}, {Sony News}, {SGI} {Iris} and {Harris}
        {Nighthawk} and other {Unix}-like {88000} systems.  The
        earlier 01nov91 version also runs on {Amiga}, {SunOS}, {NeXT},
        and {Apollo} systems.

        {(ftp://gatekeeper.dec.com/pub/DEC/Scheme-to-C/)}

        (1993-03-15)

Schlaer-Mellor

        An {object-oriented analysis} (OOA), design and modeling
        method that addresses the the integration of structural and
        behavioural properties.  It also allows an animation of the
        design.

        {I-OOA} is a tool that supports the Schlaer Mellor Design
        Method.

        (1995-01-31)

Schoonschip

        <mathematics, tool> (Dutch for "beautiful ship" or "clean
        ship") A program for {symbolic mathematics}, especially High
        Energy Physics, written by M. Veltman of CERN in 1964.
        Schoonschip only does algebra, no derivatives.  It was
        implemented originally in {CDC-6600} and {CDC-7600} {assembly
        language} and currently in {680x0} {assembly language}.
        Latest versions run on {Amiga}, {Atari ST}, {Sun 3} and
        {NeXT}.

        {(ftp://archive.umich.edu/physics/schip)}.

        E-mail: David Williams <dnw@williams.physics.lsa.umich.edu>.

        (1998-04-28)

schroedinbug

        <jargon, programming> /shroh'din-buhg/ ({MIT}, from the
        Schroedinger's Cat thought-experiment in quantum physics) A
        design or implementation {bug} in a program that doesn't
        manifest until someone reading source or using the program in
        an unusual way notices that it never should have worked, at
        which point the program promptly stops working for everybody
        until fixed.  Though (like {bit rot}) this sounds impossible,
        it happens; some programs have harboured latent schroedinbugs
        for years.

        Compare {heisenbug}, {Bohr bug}, {mandelbug}.

        (1995-02-28)

SCI

        1. {Scalable Coherent Interface}.

        2. {serial communications interface}.

        (1998-02-14)

Science and Engineering Research Council

        (SERC) Formerly the largest of the five research councils
        funded by the British Government through the Office of Science
        and Technology.  SERC funded higher education research in
        science and engineering, including computing and was
        responsible for the Rutherford Appleton Laboratory, near
        Oxford; the Daresbury Laboratory, near Warrington; the Royal
        Greenwich Observatory at Cambridge and the Royal Observatory,
        Edinburgh.

        In April 1994 SERC was split into the Engineering and Physical
        Sciences Research Council and the Particle Physics and
        Astronomy Research Council.  SERC's remote sensing efforts
        have been transferred to the Natural Environment RC and its
        biotechnology efforts merged with the Agriculture and Food RC
        to make the new Biotechnology and Biological Sciences RC.  The
        two major SERC laboratories - {Rutherford Appleton Laboratory}
        and Daresbury Laboratory are now independent.

        {(http://unixfe.rl.ac.uk/serc/serc.html)}

        (1994-12-15)

science-fiction fandom

        Another voluntary subculture having a very heavy overlap with
        hackerdom; most hackers read SF and/or fantasy fiction avidly,
        and many go to "cons" (SF conventions) or are involved in
        fandom-connected activities such as the Society for Creative
        Anachronism.  Some hacker jargon originated in SF fandom such
        as {defenestration}, great-wall, {cyberpunk}, {h}, {ha ha only
        serious}, {IMHO}, {mundane}, {neep-neep}, {Real Soon Now}.
        Additionally, the jargon terms {cowboy}, {cyberspace},
        {de-rezz}, {go flatline}, {ice}, {phage}, {virus}, {wetware},
        {wirehead}, and {worm} originated in SF stories.

        (1994-12-02)

SCL

        1. System Control Language.  Command language for the VME/B
        operating system on the ICL2900.  Block structured, strings,
        superstrings (lists of strings), int, bool, array types.  Can
        trigger a block whenever a condition on a variable value
        occurs.  Macros supported.  Commands are treated like
        procedure calls.  Default arguments.

        ["VME/B SCL Syntax", Intl Computers Ltd. 1980].

        2. Symbolic Communication Language.  Designed primarily for
        the manipulation of symbolic formulas.  Featured pattern
        matching (which was partly the inspiration for SNOBOL), string
        operations in buffers, and automatic storage management.  "A
        Language for Symbolic Communication", C.Y. Lee et al, Tech Mem
        62-3344-4, Bell Labs, Sept 1962.

SCM

        <language> A {Sceme} {interpreter} in {C} by Aubrey Jaffer and
        others.  SCM conforms to {R4RS} and {IEEE} {P1178} and
        includes a {conformance test}.  It is distributed under {GPL}.
        Version 5d0 runs under {Amiga}, {Atari-ST}, {MacOS}, {MS-DOS},
        {OS/2}, {NOS/VE}, {Unicos}, {VMS}, {Unix}, and similar
        systems.

        {x-scm} provides an {X Window System} interface for SCM
        programs.

        {Home (http://swissnet.ai.mit.edu/~jaffer/SCM.html)}.

        (1999-06-07)

SC/MP

        (Nicknamed "Scamp") A typical 8-bit {microprocessor} from
        {National Semiconductor} released in April 1976.  It was
        intended for control applications (a simple {BASIC} in a 2.5K
        {ROM} was added to one version).  It featured 16 bit
        addressing, with 12 address lines and 4 lines borrowed from
        the data bus (it was common to borrow lines from the data bus
        for addressing).  Internally, it included three {index
        register}s (P1 to P3) and two 8-bit general-purpose
        {register}s.  It had a {PC}, but no {stack pointer} or
        {subroutine} instructions (though they could be emulated with
        index registers).  During {interrupt}s, the {PC} was saved in
        P3.  It was meant for embedded control, and these features
        were omitted for cost reasons.  It was also {bit serial}
        internally to keep it cheap.

        The unique feature was the ability to completely share a
        system bus with other processors.  Most processors of the time
        assumed they were the only ones accessing memory or I/O
        devices.  Multiple SC/MPs could be hooked up to the bus, as
        well as other intelligent devices, such as {DMA controller}s.
        A control line (ENOUT (Enable Out) to ENIN) could be chained
        along the processors to allow cooperative processing.  This
        was very advanced for the time, compared to other {CPU}s.

        In addition to I/O ports like the {Intel 8080}, the SC/MP also
        had instructions and one pin for serial input and one for
        output.

        (1994-11-16)

SCO

        The {Santa Cruz Operation}.

Scode

        The internal representation used by the {Liar} compiler for
        {MIT Scheme}.

        (1994-11-01)

SCOOP

        Structured Concurrent Object-Oriented Prolog.

        ["SCOOP, Structured Concurrent Object-Oriented Prolog",
        J. Vaucher et al, in ECOOP '88, S. Gjessing et al eds, LNCS
        322, Springer 1988, pp.191-211].

SCOOPS

        Scheme Object-Oriented Programming System.  Developed at
        {Texas Instruments} in 1986.  It supports {multiple
        inheritance} and {class variable}s.

        {(ftp://altdorf.ai.mit.edu/archive/scheme-library/unsupported/CScheme)}

        (1994-11-01)

SCOPE

        <project> Software Evaluation and Certification Programme
        Europe.

        An {ESPRIT} project.

        (1995-04-12)

scope

        <programming> The scope of an identifier is the region of a
        program source within which it represents a certain thing.
        This usually extends from the place where it is declared to
        the end of the smallest enclosing block (begin/end or
        procedure/function body).  An inner block may contain a
        redeclaration of the same identifier in which case the scope
        of the outer declaration does not include (is "shadowed" or
        "{occlude}d" by) the scope of the inner.

        See also {activation record}, {dynamic scope}, {lexical
        scope}.

        (1994-11-01)

Scorpion

        Twenty tools that can be used to construct specialised
        programming environments.  The Scorpion Project was started by
        Prof. Richard Snodgrass <rts@cs.arizona.edu> as an outgrowth
        of the {SoftLab} Project (which produced the {IDL Toolkit})
        that he started when he was at the {University of North
        Carolina}.  The Scorpion Project is directed by him at the
        {University of Arizona} and by Karen Shannon at the
        {University of North Carolina} at Chapel Hill.

        Version 6.0 runs on {Sun-3}, {Sun-4}, {VAX}, {Decstation},
        {Iris}, {Sequent}, {HP9000}.

        See also {Candle}.

        {(ftp://cs.arizona.edu/scorpion/)}

        Mailing list: info-scorpion-request@cs.arizona.edu.

        E-mail: <scorpion-project@cs.arizona.edu>.

        (1993-11-04)

Scott-closed

        A set S, a subset of D, is Scott-closed if

        (1) If Y is a subset of S and Y is {directed} then lub Y is in
        S and

        (2) If y <= s in S then y is in S.

        I.e. a Scott-closed set contains the {lub}s of its {directed}
        subsets and anything less than any element.  (2) says that S
        is downward {closed} (or left closed).

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        (1995-02-03)

Scott domain

        An {algebraic}, {boundedly complete}, {complete partial
        order}.  Often simply called a {domain}.

        (1994-11-01)

SCPI

        {Standard Commands for Programmable Instruments}

SCPI Consortium

        <body> A body established to promote {Standard Commands for
        Programmable Instruments}.

        Address: 8380 Hercules Drive, Suite P3, La Mesa, CA 91942,
        USA.

        {SCPI in Europe
        (http://ourworld.compuserve.com/homepages/acea/scpi_uk.htm)}.
        Address: ACEA, P.O. Box 134, 7640 AC Wierden The Netherlands.
        Telephone: +31 546 577 994.  E-mail: <ACEA@compuserve.com>.

        (1999-01-05)

scram switch

        <jargon> (From the nuclear power industry) An emergency
        power-off switch (see {Big Red Switch}), especially one
        positioned to be easily hit by evacuating personnel.  In
        general, this is *not* something you {frob} lightly; these
        often initiate expensive events (such as Halon dumps) and are
        installed in a {dinosaur pen} for use in case of electrical
        fire or in case some luckless {field servoid} should put 120
        volts across himself while {Easter egging}.

        SCRAM stands for Safety Critical Reactor Ax Man.  In the early
        days of nuclear power, boron moderator rods were raised and
        lowered on ropes.  In the event of a runaway chain reaction, a
        man with an axe would chop the rope and drop the rods into the
        nuclear pile to stop the reaction.

        See also {molly-guard}, {TMRC}.

        (1998-03-23)

SCRAP

        Something written at {CSIR}, Pretoria, South Africa in the
        late 1970s.  It ran on {Interdata} and {Perkin-Elmer}
        computers and was in use until the late 1980s.

        [But what was it?]

        (1994-12-15)

scratch

        1. (From "scratchpad") Describes a data structure or recording
        medium attached to a machine for testing or temporary-use
        purposes; one that can be {scribble}d on without loss.
        Usually in the combining forms "scratch memory", "scratch
        register", "scratch disk", "scratch tape", "scratch volume".

        See also {scratch monkey}.

        2. (primarily {IBM}) To delete (as in a file).

        (1994-12-15)

scratch monkey

        As in "Before testing or reconfiguring, always mount a
        {scratch monkey}", a proverb used to advise caution when
        dealing with irreplaceable data or devices.  Used to refer to
        any scratch volume hooked to a computer during any risky
        operation as a replacement for some precious resource or data
        that might otherwise get trashed.

        This term preserves the memory of Mabel, the Swimming Wonder
        Monkey, star of a biological research program at the
        University of Toronto.  Mabel was not (so the legend goes)
        your ordinary monkey; the university had spent years teaching
        her how to swim, breathing through a regulator, in order to
        study the effects of different gas mixtures on her physiology.
        Mabel suffered an untimely demise one day when a DEC engineer
        troubleshooting a crash on the program's VAX inadvertently
        interfered with some custom hardware that was wired to Mabel.

        It is reported that, after calming down an understandably
        irate customer sufficiently to ascertain the facts of the
        matter, a DEC troubleshooter called up the {field circus}
        manager responsible and asked him sweetly, "Can you swim?"

        Not all the consequences to humans were so amusing; the sysop
        of the machine in question was nearly thrown in jail at the
        behest of certain clueless droids at the local "humane"
        society.  The moral is clear: When in doubt, always mount a
        scratch monkey.

        [There is a version of this story, complete with reported
        dialogue between one of the project people and DEC field
        service, that has been circulating on Internet since 1986.  It
        is hilarious and mythic, but gets some facts wrong.  For
        example, it reports the machine as a {PDP-11} and alleges that
        Mabel's demise occurred when DEC {PM}ed the machine.  Earlier
        versions of this entry were based on that story; this one has
        been corrected from an interview with the hapless sysop. -
        ESR]

        (1994-12-15)

Scratchpad I

        A general-purpose language originally for interactive
        {symbolic mathematics} by Richard Jenks, Barry Trager, Stephen
        M. Watt and Robert S. Sutor of {IBM Research}, ca 1971.  It
        features abstract parametrised data types, {multiple
        inheritance} and {polymorphism}.  There were implementations
        for {VM/CMS} and {AIX}.

        ["Scratchpad User's Manual", RA 70, IBM (June 1975)].

        (1994-12-15)

Scratchpad II

        See {Scratchpad I}, {AXIOM}.

        ["Scratchpad II Programming Language Manual", R.D. Jenks et
        al, IBM, 1985].

        [Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box
        218, Yorktown Hts, NY 10598].

scream and die

        Synonym {cough and die}, but connotes that an error message
        was printed or displayed before the program crashed.

Screamer

        An extension of {Common Lisp} providing {nondeterministic}
        {backtracking} and {constraint} programming.

        {(ftp://ftp.ai.mit.edu/pub/screamer.tar.Z)}

        [Isn't all backtracking nondeterministic by definition?]

screaming tty

        [Unix] A terminal line which spews an infinite number of
        random characters at the operating system.  This can happen if
        the terminal is either disconnected or connected to a
        powered-off terminal but still enabled for login;
        misconfiguration, misimplementation, or simple bad luck can
        start such a terminal screaming.  A screaming tty or two can
        seriously degrade the performance of a vanilla Unix system;
        the arriving "characters" are treated as userid/password pairs
        and tested as such.  The Unix password encryption algorithm is
        designed to be computationally intensive in order to foil
        brute-force crack attacks, so although none of the logins
        succeeds; the overhead of rejecting them all can be
        substantial.

screen blanker

        {screen saver}

Screen Peace

        <tool> A {screen saver} for {Microsoft Windows} by Anthony
        Andersen.  Released as {charityware}.  It can load extension
        modules with {filename extension} ".SPX".

        {Some modules
        (ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/windows3/desktop/spx2.z
ip)}.

        (1997-11-23)

screen reader

        <application> A {text-to-speech} system, intended for use by
        blind or low-vision users, that speaks the text content of a
        computer display.

        (1998-10-19)

screen refresh

        {refresh rate}

screen saver

        <tool> A program which displays either a completely black
        image or a constantly changing image on a computer monitor to
        prevent a stationary image from "burning" into the phosphor of
        the screen.  Screen savers usually start automatically after
        the computer has had no user input for a preset time.  Some
        screen savers come with many different modules, each giving a
        different effect.

        Approximately pre-1990, many {cathode ray tubes}, in TVs,
        computer {monitors} or elsewhere, were prone to "burn-in";
        that is, if the same pattern (e.g., the {WordPerfect} status
        line; the {Pong} score readout; or a TV channel-number
        display) were shown at the same position on the screen for
        very long periods of time, the phosphor on the screen would
        "fatigue" and that part of the screen would seem greyed out,
        even when the CRT was off.

        Eventually CRTs were developed which were resistant to burn-in
        (and which sometimes went into {sleep} mode after a period of
        inactivity); but in the meantime, solutions were developed:
        home video game systems of the era (e.g., Atari 2600s) would,
        when not being played, change the screen every few seconds, to
        avoid burn-in; and computer screen saver programs were
        developed.

        The first screen savers were simple screen blankers - they
        just set the screen to all black, but, in the best case of
        {creeping featurism} ever recorded, these tiny (often under 1K
        long) programs grew without regard to efficiency or even basic
        usefulness.  At first, small, innocuous {display hacks}
        (generally on an almost-black screen) were added.  Later, more
        complex effects appeared, including {animations} (often with
        sound effects!) of arbitrary length and complexity.

        Along the way, avoiding repetitive patterns and burn-in was
        completely forgotten and "screen savers" such as {Pointcast}
        were developed, which make no claim to save your monitor, but
        are simply bloated {browsers} for {push media} which
        self-start after the machine has been inactive for a few
        minutes.

        (1997-11-23)

screen scraper

        <tool> A piece of software used to automate interaction
        between two computer systems through the terminal interface
        (designed for human use) of one of those systems.

        Typically, the screen scraper interacts with {terminal
        emulation} software to generate input to and process output
        from the "host" system through terminal screens.  Screen
        scrapers are advantageous when modifications to the host
        system are undesireable, when it is desireable to make use of
        the existing business and data integrity logic on the host,
        and when no other (peer-to-peer) interface method is
        available.

        Some products employ screen scraping combined with additional
        functionality which provides a {DBMS}-like or other
        specialised interface to the host.  The host system is often
        called a "{legacy} system" because it usually the older of the
        systems involved and based on older technology.

        (1995-04-19)

screen sharing

        {Audiographic Teleconferencing}

Screenwrite

        <language> A simple {query language} developed by {Honeywell}
        in the late 1970s for {Level 6} {minicomputer}s.

        (1994-12-01)

screw

        <jargon> (MIT) A {lose}, usually in software.  Especially used
        for user-visible misbehaviour caused by a bug or {misfeature}.
        This use has become quite widespread outside {MIT}.

        (1994-12-01)

screwage

        /skroo'*j/ Like {lossage} but connotes that the failure is due
        to a designed-in misfeature rather than a simple inadequacy or
        a mere bug.

        (1994-12-01)

scribble

        To modify a data structure in a random and unintentionally
        destructive way.  "Bletch! Somebody's disk-compactor program
        went berserk and scribbled on the i-node table."  "It was
        working fine until one of the allocation routines scribbled on
        low core."  Synonymous with {trash}; compare {mung}, which
        conveys a bit more intention, and {mangle}, which is more
        violent and final.

Scribe

        A text-formatting language by Brian Reid.

        (1994-12-01)

SCRIPT

        1. An early system on the {IBM 702}.

        [Listed in CACM 2(5):16 (May 1959)].

        2. A {real-time} language.

        ["A Communication Abstraction Mechanism and its Verification",
        N. Francez et al, Sci Comp Prog 6(1):35-88 (1986)].

        (1994-12-01)

script

        <language> A program written in a {scripting language}, but
        see {Ousterhout's dichotomy}.

        (1999-02-22)

Scriptics

        <company> {John Ousterhout}'s company that is the home of
        {Tcl} development and the {TclPro} tool suite.

        {Home (http://www.scriptics.com/)}.

        (1998-11-27)

scripting language

        <language> (Or "glue language") A lose term for any language
        that is {weakly typed} or {untyped} and has little or no
        provision for complex {data structures}.  A program in a
        scripting language (a "{script}") is often {interpreted} (but
        see {Ousterhout's dichotomy}).

        Scripts typically interact either with other programs (often
        as {glue}) or with a set of functions provided by the
        interpreter, as with the {file system} functions provided in a
        {UNIX shell} and with {Tcl}'s {GUI} functions.  Prototypical
        scripting languages are {AppleScript}, {C Shell}, MSDOS {batch
        files}, and {Tcl}.

        (1999-09-27)

scrog

        /skrog/ [Bell Labs] To damage, trash, or corrupt a data
        structure.  "The list header got scrogged."  Also reported as
        "skrog", and ascribed to the comic strip "The Wizard of Id".
        Compare {scag}; possibly the two are related.  Equivalent to
        {scribble} or {mangle}.

SCROLL

        String and Character Recording Oriented Logogrammatic
        Language.

        ["SCROLL - A Pattern Recording Language", M. Sargent, Proc
        SJCC 36 (1970)].

        (1994-12-01)

scrollable list

        <operating system> A list of information in a {graphical user
        interface} with a {scroll bar}, often used to present a list
        of choices.

        (1999-10-03)

scroll bar

        <graphics> A {widget} found in {graphical user interfaces} and
        used to show and control ("scroll") which portion of a
        document is currently visible in a window.  A window may have
        a horizontal or, most often, vertical scroll bar or both.

        A vertical scroll bar is a narrow strip drawn up the side of
        the window containing a "bubble" whose position in the scroll
        bar represents the position of the visible part within the
        whole document.  By dragging the bubble with the mouse the
        user can scroll the view over the entire document.  Arrow
        buttons are usually provided at the end(s) of the scroll bar
        to allow the window to be scrolled by a small amount, e.g. one
        line of text, in either direction by clicking them with the
        mouse.  Some programs provide a second pair of buttons for
        scrolling a page at a time or some other unit.  Clicking on
        the scroll bar outside the bubble will either, depending on
        the particular {WIMP}, move the bubble to that point or move
        it some amount in that direction.

        Different {WIMP} systems define different standards for
        whether scroll bars appear on the left or right, top or bottom
        of the window and for their behaviour.

        To reduce mouse movement, the up and down scroll buttons
        should either be next to each other at one end of the scroll
        bar (as in {NEXTSTEP}) or should reverse their effect when
        clicked with the right-hand mouse button (as in {RISC OS}).
        The fraction of the scroll bar filled by the bubble should be
        the same as the fraction of the document visible in the
        window.

        (1998-06-26)

scrool

        /skrool/ [The pioneering Roundtable chat system in Houston
        ca. 1984; probably originated as a typo for "scroll"] The log
        of old messages, available for later perusal or to help one
        get back in synch with the conversation.  It was originally
        called the "scrool monster", because an early version of the
        roundtable software had a bug where it would dump all 8K of
        scrool on a user's terminal.

scrozzle

        /skroz'l/ Used when a {self-modifying code} segment runs
        incorrectly and corrupts the running program or vital data.

        (1994-11-24)

scruffies

        {neats vs. scruffies}

SCSI

        {Small Computer System Interface}

SCSI-1

        <hardware> The original {SCSI}, as opposed to
        {SCSI-2} or {SCSI-3}.

        (1995-04-20)

SCSI-2

        <hardware> A version of the {SCSI} command
        specification.

        SCSI-2 shares the original SCSI's {asynchronous} and
        {synchronous} modes and adds a "{Fast SCSI}" mode (<10MB/s)
        and "{Wide SCSI}" (16 bit, <20MB/s or rarely 32 bit).

        Another major enhancement was the definition of command sets
        for different device classes.  SCSI-1 was rather minimalistic
        in this respect which led to various incompatibilities
        especially for devices other than {hard-disk}s.  SCSI-2
        addresses that problem. allowing {scanner}s, {hard disk
        drive}s, {CD-ROM} drives, tapes and many other devices to be
        connected.

        Normal SCSI-2 equipment (not wide or {differential}) can be
        connected to a SCSI-1 bus and vice versa.

        (1995-04-19)

SCSI-3

        <hardware> An ongoing standardisation effort to
        extend the capabilities of {SCSI-2}.  SCSI-3's goals are more
        devices on a bus (up to 32); faster data transfer; greater
        distances between devices (longer cables); more device classes
        and command sets; structured documentation; and a structured
        {protocol} model.

        In SCSI-2, data transmission is parallel (8, 16 or 32 bit
        wide).  This gets increasingly difficult with higher data
        rates and longer cables because of varying signal delays on
        different wires.  Furthermore, wiring cost and drive power
        increases with wider data words and higher speed.  This has
        triggered the move to serial interfacing in SCSI-3.  By
        embedding clock information into a serial data stream signal
        delay problems are eliminated.  Driving a single signal also
        consumes less driving power and reduces connector cost and
        size.

        To allow for backward compatibility and for added flexibility
        SCSI-3 allows the use of several different transport
        mechanisms, some serial and some parallel.  The software
        {protocol} and command set is the same for each transport.
        This leads to a layered protocol definition similar to
        definitions found in networking.

        SCSI-3 is therefore in fact the sum of a number of separate
        standards which are defined by separate groups.  These
        standards and groups are currently:

         X3T9.2/91-13R2   SCSI-3 Generic Packetized Protocol
         X3T9.2/92-141    SCSI-3 Queuing Model
         X3T9.2/92-079    SCSI-3 Architecture Model
         IEEE P1394       High Performance Serial Bus
         X3T9.2/92-106    SCSI-3 Block Commands
         X3T9.2/91-189    SCSI-3 Serial Bus Protocol
         X3T9.2/92-105    SCSI-3 SCSI-3 Core Commands
                          SCSI-3 Common Command Set
         X3T9.2/92-108    SCSI-3 Graphic Commands
         X3T9.2/92-109    SCSI-3 Medium Changer Commands
         X3T9.2/91-11     SCSI-3 Interlocked Protocol
         X3T9.2/91-10     SCSI-3 Parallel Interface
         X3T9.2/92-107    SCSI-3 Stream Commands
                          SCSI-3 Scanner Commands

        Additional Documents for the Fibre Channel are also meant to
        be included in the SCSI-3 framework, i.e.:

                          Fibre Channel SCSI Mapping
                          Fibre Channel Fabric Requirements
                          Fibre Channel Low Cost Topologies
         X3T9.3/92-007    Fibre Channel Physical and Signalling Interface
                          Fibre Channel Single Byte Commands
                          Fibre Channel Cross Point Switch Topology
         X3T9.2/92-103    SCSI-3 Fibre Channel Protocol (GPP & SBP)

        As all of this is an ongoing effort of considerable
        complexity, document structure and workgroups may change.  No
        final standard is issued yet.

        In the meantime a group of manufacturers have proposed an
        extension of {SCSI-2} called {Ultra-SCSI} which doubles the
        transfer speed of {Fast-SCSI} to give 20MByte/s on an 8 bit
        connection and 40MByte/s on a 16-bit connection.

        [Hermann Strass: "SCSI-Bus erfolgreich anwenden",
        Franzis-Verlag Muenchen 1993].

        (1995-04-19)

SCSI adaptor

        <hardware> (Or "host adaptor") A device that communicates
        between a computer and its {SCSI} {peripherals}.  The SCSI
        adaptor is usually assigned {SCSI ID} 7.  It is often a
        separate card that is connected to the computer's {bus}
        (e.g. {PCI}, {ISA}, {PCMCIA}).  Alternatively it may be
        incorporated into the {motherboard} itself.

        There are several varieties of SCSI (and their connectors) and
        an adaptor will not support them all.

        The performance of SCSI devices is limited by the speed of the
        SCSI adaptor and its connection to the computer.  An adaptor
        that plugs into a parallel port is unlikely to be as fast as
        one incorporated into a motherboard.  Fast adaptors use {DMA}
        or {bus mastering}.

        Some SCSI adaptors include a {BIOS} to allow PCs to {boot}
        from a SCSI hard disk, if their own BIOS supports it.

        {Adaptec} make the majority of SCSI {chipsets} and many of the
        best-selling adaptors.

        Note that it is not a "SCSI controller" - it does not control
        the devices, and "SCSI interface" is redundant - the "I" of
        "SCSI" stands for "interface".

        (1999-10-18)

SCSI controller

        {SCSI adaptor}

SCSI ID

        <hardware> The unique address of a {SCSI} device.  SCSI IDs
        range from 0 to 7 for 8-bit SCSI systems, 0 to 15 for 16-bit
        and 0 to 31 for 32-bit systems.  The {SCSI adaptor} is
        usually assigned ID 7.  A device's SCSI ID is often set by
        switches on the device.

        (1999-09-01)

SCSI initiator

        <hardware> A device that begins a {SCSI} transaction by
        issuing a command to another device (the {SCSI target}),
        giving it a task to perform.  Typically a SCSI host adapter is
        the initiator but targets may also become initiators.

        (1999-02-10)

SCSI interface

        {SCSI adaptor}

SCSI reconnect

        <hardware> The ability of a {SCSI initiator} to initiate new
        transactions before earlier ones have completed.  A target or
        initiator can disconnect from the bus when it experiences a
        delay in completing a task so that another device can use the
        bus.  It can reconnect later and complete the task.

        (1999-02-16)

SCSI target

        <hardware> A {SCSI} device that executes a command from a
        {SCSI initiator} to perform some task.  Typically the target
        is a SCSI peripheral device but the {host adapter} can also be
        a target.

        (1999-02-10)

ScumOS

        <abuse, operating system> /skuhm'os/ or /skuhm'O-S/ An
        Unflattering hackerism for {SunOS}, the {Unix} variant once
        supported on {Sun Microsystems}'s Unix {workstation}s.

        Despite what this term might suggest, Sun was founded by
        hackers and still enjoys excellent relations with hackerdom;
        usage is more often in exasperation than outright loathing.

        See also {sun-stools}.  Compare {AIDX}, {Macintrash}, {Nominal
        Semidestructor}, {Open DeathTrap}, {HP-SUX}.

        (1995-04-19)

scuzzy

        The usual pronunciation of {SCSI}.

SD

        {Structured Design}

sd

        <networking> The {country code} for the Sudan.

        (1999-01-27)

SDDI

        {Sony Digital Data Interface}

SDE

        Software Development Environment: equivalent to SEE.

SDF

        Syntax Definition Formalism.  A language for lexical and
        syntactic specification.

        ["The Syntax Definition Formalism SDF - Reference Manual",
        J. Heering et al, Centre for Math & CS, Amsterdam].

        ["Algebraic Specification", J.A. Bergstra et al eds, ACM Press
        1989, Chap 6.  To appear].

        (1994-10-27)

SDH

        {Synchronous Digital Hierarchy}

SDI

        1. <library> {Selective Dissemination of Information}.

        2. <programming> {Single Document Interface}.

        (1999-03-30)

SDK

        {Software Developers Kit} (or "Software Development Kit").

SDL

        Specification and Design Language.

        Defined by the {ITU-T} (recommendation Z100) to provide a tool
        for unambiguous specification and description of the behaviour
        of telecommunications systems.  The area of application also
        includes process control and real-time applications.  SDL
        provides a Graphic Representation (SDL/GR) and a textual
        Phrase Representation (SDL/PR), which are equivalent
        representations of the same semantics.  A system is specified
        as a set of interconnected {abstract machine}s which are
        extensions of the {Finite State Machine} (FSM).

        1. System Software Development Language.  System software for
        the B1700.  "System Software Development Language Reference
        Manual", 1081346, Burroughs Corp (Dec 1974).

        2. Specification and Description Language.  {ITU-T}.
        Specification language with both graphical and character-based
        syntaxes for defining interacting extended finite state
        machines.  Used to specify discrete interactive systems such
        as industrial process control, traffic control, and
        telecommunication systems.  Proc Plenary Assembly, Melbourne
        14-1988-11-25, Fasc X.1, CCITT.  "Telecommunications Systems
        Engineering Using SDL", R. Saracco et al, N-H 1989.  Available
        from Verilog, MD.  (See XDL).

        3. Shared Dataspace Language.  "A Shared Dataspace Language
        Supporting Large-Scale Concurrency", G. Roman et al, Proc 8th
        Intl Conf Distrib Comp Sys, IEEE 1988, pp.265-272.

        4. Structure Definition Language.  Used internally by DEC to
        define and generate the symbols used for VAX/VMS internal data
        structures in various languages.

        5. System Description Language.  language used by the Eiffel/S
        implementation of Eiffel to assemble clusters into a system.
        (see Lace).

SDL 92

        SDL[2] with object-orientation.

SDLC

        {Synchronous Data Link Control}

SDM

        {Schematic Data Model}

SDMS

        A {query language}.

SDRAM

        {Synchronous Dynamic Random Access Memory}

SDRC

        <company> The company behind {VGX}.

        {Home (http://www.sdrc.com/)}.

        [More details?]

        (1998-02-06)

SDS

        Schema Definition Set in PCTE.

SDSL

        {Single-line Digital Subscriber Line}

SE

        1. <software> {software engineering}.

        2. {IBM Systems Engineer}.

        (1998-07-08)

se

        <networking> The {country code} for Sweden.

        (1999-01-27)

SEA

        {Self Extracting Archive}

Seagate Technology

        <company> A major manufacturer of {hard disk drives}.

        {Home (http://www.seagate.com/)}.

        {Technical information at Impediment
        (http://www.impediment.com/seagate/)}.

        {Job vacanciess (http://www.careermosaic.com/cm/seagate/)}.

        Address: 920 Disc Drive, Scotts Valley, CA 95066, USA.

        Fax: +1 (408) 438 3320.

        (1995-04-10)

SEAL

        Semantics-directed Environment Adaptation Language.

        {(ftp://ftp.cwi.nl/pub/gipe/0092b.ps.Z)}

search-and-destroy mode

        Hackerism for a noninteractive search-and-replace facility in
        an editor, so called because an incautiously chosen match
        pattern can cause {infinite} damage.

search engine

        <World-Wide Web, tool, information science> A remotely
        accessible program that lets you do keyword searches for
        information on the {Internet}.  There are several types of
        search engine; the search may cover titles of documents,
        {URL}s, headers, or the {full text}.

        {A list of search engines
        (http://cuiwww.unige.ch/meta-index.html#MISC)}, Centre
        Universitaire d'Informatique at the University of Geneva

        (1995-11-28)

search problem

        <computability> A computational problem that requires
        identifying a solution from some, possibly infinite, solution
        {space} (set of possible solutions).  E.g. "What is the
        millionth {prime number}?".  This contrasts with a {decision
        problem} which merely asks whether a given answer is a
        solution or not.

        (1999-02-15)

search term

        <information science> An element of a search or query.  A
        search term is the basic building block of a {boolean search}
        or a {weighted search}.  In a search engine a search term is
        typically a word, phrase, or pattern match expression.  For
        example: cosmonaut or "space travel" or astronaut*

        In a {database} a term is typically the comparison of a column
        with a constant or with another column.  For example:
        last_name like 'Smith%'
        
        (1999-08-27)

SEC

        {Single Edge Contact Cartridge}

SECC

        {Single Edge Contact Cartridge}

SECD machine

        {Stack Environment Control Dump machine}

secondary cache

        <memory management> (Or "second level cache", "level two
        cache", "L2 cache") A larger, slower {cache} between the
        {primary cache} and main memory.  Whereas the primary cache is
        often on the same {integrated circuit} as the {central
        processing unit} (CPU), a secondary cache is usually external.

        (1997-06-25)

secondary damage

        When a fatal error occurs (especially a {segfault}) the
        immediate cause may be that a pointer has been trashed due to
        a previous {fandango on core}.  However, this fandango may
        have been due to an *earlier* fandango, so no amount of
        analysis will reveal (directly) how the damage occurred.  "The
        data structure was clobbered, but it was secondary damage."

        By extension, the corruption resulting from N cascaded
        fandangoes on core is "Nth-level damage".  There is at least
        one case on record in which 17 hours of {grovel}ling with
        "adb" actually dug up the underlying bug behind an instance of
        seventh-level damage!  The hacker who accomplished this
        near-superhuman feat was presented with an award by his
        fellows.

secondary key

        <database> A {candidate key} which is not selected as a
        {primary key}.

        (1997-04-26)

secondary storage

        <storage> Any {non-volatile} storage medium that is not
        directly accessible to the {processor}.  Memory directly
        accessible to the processor includes {main memory}, {cache}
        and the {CPU} {registers}.  Secondary storage includes {hard
        drives}, {magnetic tape}, {CD-ROM}, {DVD drives}, {floppy
        disks}, {punch cards} and {paper tape}.

        Secondary storage devices are usually accessed via some kind
        of controller.  This contains registers that can be directly
        accessed by the CPU like main memory ("{memory mapped}").
        Reading and writing these registers can cause the device to
        perform actions like reading a block of data off a disk or
        rewinding a tape.  See also {DMA}.

        Programs and data stored in secondary storage must first be
        loaded into main memory before the processor can use them.

        (1997-11-05)

second generation computer

        <architecture> A computer built from {transistors}, designed
        between the mid-1950s and mid-1960s.

        {Ferrite core memory} and {magnetic drums} replaced {cathode
        ray tubes} and {delay-line storage} for main {memory}.  {Index
        registers} and {floating point} arithmetic hardware became
        widespread.  Machine-independent {high level programming
        languages} such as {ALGOL}, {COBOL} and {FORTRAN} were
        introduced to simplify programming.

        {I/O processors} were introduced to supervise input-output
        operations independently of the {CPU} thus freeing the CPU
        from time-consuming housekeeping functions.  The CPU would
        send the I/O processor an initial instruction to start
        operating and the I/O processor would then continue
        independently of the CPU.  When completed, or in the event of
        an error, the I/O processor sent an {interrupt} to the CPU.

        {Batch} processing became feasible with the improvement in I/O
        and storage technology in that a batch of jobs could be
        prepared in advance, stored on magnetic tape and processed on
        the computer in one continuous operation placing the results
        on another magnetic tape.  It became commonplace for
        auxiliary, small computers to be used to process the input and
        output tapes off-line thus leaving the main computer free to
        process user programs.  Computer manufacturers began to
        provide system software such as {compilers}, {subroutine}
        libraries and batch monitors.

        With the advent of second generation computers it became
        necessary to talk about computer systems, since the number of
        memory units, processors, I/O devices, and other system
        components could vary between different installations, even
        though the same basic computer was used.

        The instruction repertoire of the {IBM 7094} (a typical second
        generation machine) had over 200 instructions including data
        transfer instructions for transferring a {word} of information
        between the CPU and memory or between two CPU registers;
        fixed-point and floating point arithmetic instructions;
        {logic} instructions (AND, OR etc.); instructions for
        modifying {index registers}; conditional and unconditional
        branching; {subroutines}; input-output operations for
        transferring data between I/O devices and main memory.

        (1996-11-25)

second generation language

        {assembly language}

        See also {first generation language}, {third generation
        language}.

second level cache

        {secondary cache}

second normal form

        {database normalisation}

Second-Order Lambda-calculus

        <language> (SOL) A {typed lambda-calculus}.

        ["Abstract Types have Existential Type", J. Mitchell et al,
        12th POPL, ACM 1985, pp. 37-51].

        (1995-07-29)

second-system effect

        (Sometimes, more euphoniously, "second-system syndrome") When
        one is designing the successor to a relatively small, elegant,
        and successful system, there is a tendency to become grandiose
        in one's success and design an {elephantine} feature-laden
        monstrosity.  The term was first used by Fred Brooks in his
        classic "{The Mythical Man-Month}.  It described the jump from
        a set of nice, simple operating systems on the {IBM 70xx}
        series to {OS/360} on the 360 series.  A similar effect can
        also happen in an evolving system; see {Brooks's Law},
        {creeping elegance}, {creeping featurism}.  See also
        {Multics}, {OS/2}, {X}, {software bloat}.

sector interleave

        (Or sector map) The mapping from logical to physical sector
        numbers on a {magnetic disk} designed to optimise sequential
        reads and writes.  Data is usually transferred to and from the
        disk in {block}s or {sector}s where one sector lies within a
        continuous range of rotational angle of the disk.  If logical
        sectors are assigned sequentially to physical sectors
        (0,1,2,...) then by the time one sector has been read and
        processed (e.g. writen to main memory) the start of the next
        logical sector will have passed the read/write head and will
        not be accessible until the disk's rotation brings it back
        under the head.

        Staggering the physical sectors (e.g. 0,3,6,1,4,7,2,5,8) aims
        to allow just enough time deal with one sector before the next
        is accessible.  This obviously depends on the relative speed
        of the rotation of the disk, sector size, sectors per track
        and the speed of transfer of sectors to main memory.

sector interleaving

        See {sector interleave}.

sector map

        See {sector interleave}.

sector mapping

        In this scheme the memory and {cache} are divided into blocks
        of 2^m bytes (the {cache line} size).  A sector consists of
        2^n consecutive blocks.

        When a block is cached, it is read into the correct position
        in any sector of the cache, given by discarding the bottom m
        address bits and taking the next n as the block number within
        the sector.

        That whole sector is then tagged with the remaining upper
        address bits and the other blocks in the sector are marked as
        invalid.  This scheme takes advantage of locality of reference
        to consecutive blocks and needs fewer tags thus reducing the
        cost of associative access to the tags.

Secure Multipurpose Internet Mail Extensions

        <messaging, standard> (S-MIME) A specification for secure
        {electronic mail}.  S-MIME was designed to add security to
        e-mail messages in {MIME} format.  The security services
        offered are {authentication} (using {digital signatures}) and
        {privacy} (using {encryption}).

        {(http://www.rsa.com/rsa/S-MIME/)}.

        (1997-05-10)

Secure Shell

        <operating system> (ssh) A {Unix} {shell} program for logging
        into, and executing commands on, a remote computer.  ssh is
        intended to replace {rlogin} and {rsh}, and provide secure
        encrypted communications between two untrusted hosts over an
        insecure network.  {X11} connections and arbitrary {TCP/IP}
        {ports} can also be forwarded over the secure channel.

        {Home (http://www.cs.hut.fi/ssh/)}.

        (1997-01-07)

Secure Sockets Layer

        <networking> (SSL) A {protocol} designed by {Netscape
        Communications Corporation} to provide encrypted
        communications on the {Internet}.  SSL is layered beneath
        application {protocols} such as {HTTP}, {SMTP}, {Telnet},
        {FTP}, {Gopher}, and {NNTP} and is layered above the
        connection protocol {TCP/IP}.  It is used by the {HTTPS}
        access method.

        (1995-01-17)

Security Association

        <networking> The relationship between two or more entities
        (typically, a computer, but could be a user on a computer, or
        software component) which describes how the entities will use
        security services, such as {encryption}, to communicate.

        See {RFC 1825}.

        (1997-07-09)

Security Association ID

        <networking> (SAID) A 32-bit field added to {packet} headers
        for {encryption} and {authentication} in the proposed
        {Internet Protocol Version 6}.

        (1997-07-09)

security through obscurity

        <security> Or "security by obscurity".  A term applied by
        hackers to most {operating system} vendors' favourite way of
        coping with security holes - namely, ignoring them,
        documenting neither any known holes nor the underlying
        security {algorithm}s, trusting that nobody will find out
        about them and that people who do find out about them won't
        exploit them.  This "strategy" never works for long and
        occasionally sets the world up for debacles like the {RTM}
        worm of 1988 (see {Great Worm}), but once the brief moments of
        panic created by such events subside most vendors are all too
        willing to turn over and go back to sleep.  After all,
        actually fixing the bugs would siphon off the resources needed
        to implement the next user-interface frill on marketing's wish
        list - and besides, if they started fixing security bugs
        customers might begin to *expect* it and imagine that their
        warranties of merchantability gave them some sort of *right*
        to a system with fewer holes in it than a shotgunned Swiss
        cheese?

        Historical note: There are conflicting stories about the
        origin of this term.  It has been claimed that it was first
        used in the {Usenet} newsgroup in {news:comp.sys.apollo}
        during a campaign to get {HP}/{Apollo} to fix security
        problems in its {Unix}-{clone} {Aegis}/{DomainOS} (they didn't
        change a thing).  {ITS} fans, on the other hand, say it was
        coined years earlier in opposition to the incredibly paranoid
        {Multics} people down the hall, for whom security was
        everything.  In the ITS culture it referred to (1) the fact
        that that by the time a {tourist} figured out how to make
        trouble he'd generally got over the urge to make it, because
        he felt part of the community; and (2) (self-mockingly) the
        poor coverage of the documentation and obscurity of many
        commands.  One instance of *deliberate* security through
        obscurity is recorded; the command to allow patching the
        running ITS system ({altmode} altmode control-R) echoed as
        $$^D.  If you actually typed alt alt ^D, that set a flag that
        would prevent patching the system even if you later got it
        right.

        (1994-12-15)

SED

        {smoke-emitting diode}

Sed

        <tool, text> Stream editor.

        The {Unix} stream editor.  It has a powerful but cryptic
        command language and is based on {regular expression}s.

        There is a {GNU} version called {GNU Sed}.

        (1994-11-03)

SEE

        1. {Simultaneous Engineering Environment}.

        2. {Software Engineering Environment}.

        (1999-04-26)

seek

        1. <storage> To move the head of a {disk drive} radially,
        i.e., to move from one {track} to another.

        2. <storage> To wind the {tape} to a given location.

        3. <programming> To move the pointer that marks the next {byte}
        to be read from or written to a {file}.

        (1997-07-15)

seeking

        {seek}

seek time

        <storage> The time it takes for a {disk drive} to move its
        head(s) from one {track} to another.  The seek time depends on
        the power of the servo, the mass of the heads, the number of
        tracks traversed and the time taken to position the heads over
        the target track accurately enough to start data transfer.

        See also: {average seek time}, {minimum seek time}, {maximum
        seek time}.

        (1997-07-15)

SEESAW

        <language> An early system on the {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-15)

see u see me

        {CU-SeeMe}

SEGA

        <company, games> manufacturer of video game hardware and
        software.

        {Usenet} newsgroup: {news:rec.games.video.sega}.

        (1995-03-01)

segfault

        {segmentation fault}

seggie

        /seg'ee/ British shorthand for a {Unix} {segmentation fault}.

        (1994-12-15)

segment

        /seg'ment/ 1. <architecture> A collection of {pages} in a
        {memory management} system.

        2. <programming> A separately relocatable section of an
        executable program.  {Unix} executables have a {text segment}
        (executable machine instructions), a {data segment}
        (initialised data) and a {bss segment} (uninitialised data).

        3. <networking> {network segment}.

        4. To experience a {segmentation fault}.  Confusingly, the stress
        is often put on the first syllable, like the noun "segment",
        rather than the second like mainstream verb "segment".  This
        is because it is actually a noun shorthand that has been
        verbed.

        (1994-12-15)

segmentation

        <networking> (Or "segmentation and reassembly", SAR) Breaking
        an arbitrary size {packet} into smaller pieces at the
        transmitter.  This may be necessary because of restrictions in
        the communications channel or to reduce {latency}.  The pieces
        are joined back together in the right order at the reciever
        ("reassembly").  Segmentation may be performed by a {router}
        when routing a packet to a network with a smaller maximum
        packet size.

        The term "segmentation" is used in {ATM}, in {TCP/IP}, it is
        called "fragmentation" an is performed at the {IP} layer
        before the "fragments" are passed to the {transport layer}.

        See for example {ATM forum} {UNI} 4.0 specification.

        [Better reasons?]

        (1999-06-14)

segmentation and reassembly

        {segmentation}

segmentation fault

        An error in which a running {Unix} program attempts to access
        memory not allocated to it and terminates with a segmentation
        violation error and usually a {core dump}.

        (1994-12-15)

segmented address space

        <architecture> The {brain damaged} addressing scheme used on
        the {Intel 8086} and later Intel {microprocessors} (and maybe
        others(?))  where all memory references are formed by adding a
        16-bit offset to a 16-bit base address held in one of four
        segment base registers.  Each instruction has a default
        segment (code (CS), data (DS), stack (SS), ? (ES)) which
        determines which segment register is used.  Special prefix
        instructions allow this default to be overridden.

        The effect is to segment memory into blocks, of 64 {kilobytes}
        in the case of the Intel processors.  Blocks may overlap
        either partially or completely, depending on the contents of
        the segment registers but normally they would be distinct to
        give access to the maximum total range of addresses.  In this
        case the scheme does provide some degree of {memory
        protection} within a single process since, for example, a data
        reference cannot affect an area of memory containing code.
        However, compilers must either generate slower code or code
        with artificial limits on the size of {data structures}.

        Opposite: {flat address space}.  See also {addressing mode}.

        (1996-12-21)

segv

        /seg'vee/ segmentation violation.

        {segmentation fault}

        (1994-12-15)

SEI

        Software Engineering Institute.

        (Carnegie Mellon University).

Seiko RC-4000

        A wristwatch with an {RS-232} interface.  A clip fitted round
        the watch and made electrical contact.  This clip had a socket
        for a stereo style jack lead the other end of which was a
        25-way {D-type} connector.  The lead allowed you to enter
        phone numbers etc. into the watch without having to play with
        tiny buttons.  It also meant if the battery on your watch ran
        out you could restore the data without having to type it all
        in again.

        It was around the era of the 8-bit home computers like the
        {Spectrum}, {BBC Microcomputer}, {Apple II}, {C64} - the
        1980s.

        (1995-01-30)

SEL

        1. {Self-Extensible Language}.

        2. {Subset-Equational Language}.

Selective Dissemination of Information

        <library> (SDI) (From Library Science) SDI is a current
        awareness system which alerts you to the latest publications
        in your specified field(s) of interest.

        A user registers at such a system with keywords representing
        his or her fields of interest, called a search profile.  When
        new publications matching the search profile appear, the
        system informs the user of them instantly, periodically or
        upon request.  Some systems may also be able to inform the
        user if changes in already notified publications occur.

        {Health Science Library SDI
        (http://www-hsl.mcmaster.ca/sdi.html)}.  {FIZ Karlsruhe
        Scientific Service Institution
        (http://www.fiz-karlsruhe.de/mc-sdi.html)}.

        (1997-03-10)

selector

        <programming> 1. In {Smalltalk} or {Objective C}, the {syntax}
        of a message which selects a particular {method} in the target
        {object}.

        2. An operation that returns the state of an object but does
        not alter that state.  Selector {functions} or {method}s often
        have names which begin with "get" and corresponding {modifier}
        methods or {procedures} whose names begin with "set".

        (1998-01-12)

Self

        <language> A small, {dynamically typed} {object-oriented
        language}, based purely on {prototypes} and {delegation}.
        Self was developed by the Self Group at {Sun Microsystems
        Laboratories, Inc.} and {Stanford University}.  It is an
        experimental {exploratory programming} language.

        Release 2.0 introduces full {source-level debugging} of
        optimised code, adaptive optimisation to shorten compile
        pauses, {lightweight threads} within Self, support for
        dynamically linking {foreign functions}, changing programs
        within Self and the ability to run the experimental Self
        graphical browser under {OpenWindows}.  Designed for
        expressive power and malleability, Self combines a pure,
        {prototype}-based object model with uniform access to state
        and behaviour.  Unlike other languages, Self allows objects to
        inherit state and to change their patterns of inheritance
        dynamically.  Self's customising compiler can generate very
        efficient code compared to other dynamically-typed
        object-oriented languages.

        Version: 3.0 runs on {Sun-3} (no optimiser) and {Sun-4}.

        {Home (http://www.sunlabs.com/research/self/)}.

        ["Self: The Power of Simplicity", David Ungar
        <ungar@sun.eng.com> et al, SIGPLAN Notices 22(12):227-242,
        OOPSLA '87, Dec 1987].

        (1999-06-09)

Self-Extensible Language

        ["SEL - A Self-Extensible Programming Language", G. Molnar,
        Computer J 14(3):238-242 (Aug 1971)].

        (1994-12-15)

Self Extracting Archive

        <file format> (SEA) An {archive} format used on the {Apple
        Macintosh}.  {Double-click}ing a file of this type should
        extract its contents.

        (1995-05-02)

self-reference

        See {self-reference}.

selvage

        {chad}

SEM

        The semantic specification language for {COPS}.

        ["Metalanguages of the Compiler Production System COPS",
        J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
        W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

semantic gap

        The difference between the complex operations performed by
        {high-level language} constructs and the simple ones provided
        by computer {instruction sets}.  It was in an attempt to try
        to close this gap that computer architects designed
        increasingly {complex instruction set computers}.

        (1994-10-10)

semantic network

        <data> A {graph} consisting of {nodes} that represent physical
        or conceptual objects and arcs that describe the relationship
        between the nodes, resulting in something like a data flow
        diagram.  Semantic nets are an effective way to represent data
        as they incorporate the inheritance mechanism that prevents
        duplication of data.  That is, the meaning of a concept comes
        from its relationship to other concepts and the information is
        stored by interconnecting nodes with labelled arcs.

        (1999-01-07)

semantics

        <theory> The meaning of a string in some language, as opposed
        to {syntax} which describes how symbols may be combined
        independent of their meaning.

        The semantics of a programming language is a function from
        programs to answers.  A program is a {closed term} and, in
        practical languages, an answer is a member of the syntactic
        category of values.  The two main kinds are {denotational
        semantics} and {operational semantics}.

        (1995-06-21)

semaphore

        <programming, operating system> The classic method for
        restricting access to shared resources (e.g. storage) in a
        {multi-processing} environment.  They were invented by
        {Dijkstra} and first used in {T.H.E} {operating system}.

        A semaphore is a {protected variable} (or {abstract data
        type}) which can only be accessed using the following
        operations:

                P(s)
                Semaphore s;
                {
                  while (s == 0) ;      /* wait until s>0 */
                  s = s-1;
                }

                V(s)
                Semaphore s;
                {
                  s = s+1;
                }

                Init(s, v)
                Semaphore s;
                Int v;
                {
                  s = v;
                }

        P and V stand for Dutch "Proberen", to test, and "Verhogen",
        to increment.  The value of a semaphore is the number of units
        of the resource which are free (if there is only one resource
        a "binary semaphore" with values 0 or 1 is used).  The P
        operation {busy-wait}s (or maybe {sleep}s) until a resource is
        available whereupon it immediately claims one.  V is the
        inverse, it simply makes a resource available again after the
        process has finished using it.  Init is only used to
        initialise the semaphore before any requests are made.  The P
        and V operations must be {indivisible}, i.e. no other process
        can access the semaphore during the their execution.

        To avoid {busy-wait}ing, a semaphore may have an associated
        {queue} of processes (usually a {FIFO}).  If a process does a
        P on a semaphore which is zero the process is added to the
        semaphore's queue.  When another process increments the
        semaphore by doing a V and there are tasks on the queue, one
        is taken off and resumed.

        (1995-02-01)

semi

        /se'mee/ or /se'mi:/ A spoken abbreviation for semicolon.

        "Commands to {grind} are prefixed by semi semi star" means
        that the prefix is ";;*", not 1/4 of a star.

        (1995-01-31)

semicolon

        ;

        Common: {ITU-T}: semicolon; {semi}.  Rare: weenie; {INTERCAL}:
        hybrid, pit-thwong.

semiconductor

        <electronics> A material, typically crystaline, which allows
        {current} to flow under certain circumstances.  Common
        semiconductors are silicon, germanium, gallium arsenide.
        Semiconductors are used to make {diodes}, {transistors} and
        other basic "solid state" electronic components.

        As crystals of these materials are grown, they are "doped"
        with traces of other elements called {donors} or {acceptors}
        to make regions which are n- or p-type respectively for the
        {electron model} or p- or n-type under the {hole model}.
        Where n and p type regions adjoin, a junction is formed which
        will pass {current} in one direction (from p to n) but not the
        other, giving a {diode}.

        One {model} of semiconductor behaviour describes the doping
        elements as having either {free electrons} or {holes} dangling
        at the points in the crystal lattice where the doping elements
        replace one of the atoms of the foundation material.  When
        external electrons are applied to n-type material (which
        already has free electrons present) the repulsive force of
        like charges causes the free electrons to migrate toward the
        junction, where they are attracted to the holes in the p-type
        material.  Thus the junction conducts current.

        In contrast, when external electrons are applied to p-type
        material, the attraction of unlike charges causes the holes to
        migrate away from the junction and toward the source of
        external electrons.  The junction thus becomes "depleted" of
        its charge carriers and is non-conducting.

        (1995-10-04)

Semidetached Mode

        <programming> A term used by {COCOMO} to describe a project
        development somewhere between organic and embedded.  The team
        members have a mixture of experienced and inexperienced
        personnel.  The software to be developed has some
        characteristics of both organic and embedded modes.
        Semidetached software can be as large as 300K {DSI}s.

        (1996-05-29)

SENDIT

        Systems Engineering for Network Debugging, Integration and
        Test.  A two-year European Commission funded project to
        produce software tools for distributed applications running on
        networks of microcontrollers.

        (1994-07-21)

sendmail

        <messaging> The {BSD} Unix {Message Transfer Agent} supporting
        mail transport via {TCP/IP} using {SMTP}.  Sendmail is
        normally invoked in the {background} via a {Mail User Agent}
        such as the {mail} command.

        Sendmail was written by {Eric Allman} at the {University of
        California at Berkeley} during the late 1970s.  He now have
        his own company, {Sendmail Inc.}.

        Sendmail was one of the first programs to route messages
        between {networks} and today is still the dominant e-mail
        transfer software.  It thrived despite the awkward {ARPAnet}
        transition between {NCP} to TCP protocols in the early 1980s
        and the adoption of the new SMTP Simple Mail Transport
        Protocol, all of which made the business of mail routing a
        complex challenge of backward and forward compatibility for
        several years.  There are now over one million copies of
        Sendmail installed, representing over 75% of all Internet mail
        servers.

        Simultaneously with the announcement of the company in
        November 1997, Sendmail 8.9 was launched, featuring new tools
        designed to limit {junk e-mail}.  SendMail 8.9 is still
        distributed as {source code} with the rights to modify and
        distribute.

        Latest version as of 1998-08-25: 8.9.1.

        The command

                sendmail -bv ADDRESS

        can be used to learn what the local mail system thinks of
        ADDRESS.  You can also talk to the Sendmail {daemon} on a
        remote host FOO with the command

                telnet FOO 25

        (1998-08-25)

sendmail.cf

        <messaging> {sendmail}'s configuration file, which it reads
        once when starting up, usually found in the /etc directory.

        Only real {Unix Gurus} can understand, let alone modify, this
        file since it consists moslty of {header} {rewrite rules}
        written as {M4} {macros}, as well as various other one- or
        two-character commands.

        (1996-12-09)

Sendmail Inc.

        <company> The company, announced in November 1997 and launched
        in March 1998, created by {Eric Allman}, the original author
        of {Sendmail}.  Allman is Chief Technology Officer, {Greg
        Olson} is President and CEO.

        Sendmail Inc. will sell commercial upgrades, service and
        support to {Internet Service Providers} and corporations
        running critical {e-mail} applications, while still continuing
        {freeware} development.

        {Sun Microsystems} founders {Bill Joy} and Andy Bechtolscheim
        are among the investors in the company, along with Tim
        O'Reilly of publishers O'Reilly & Associates and John Funk of
        e-mail company {InfoBeat Inc.}.

        Allman said that he devoted the fist six months of the life of
        Sendmail Inc. to finalising the freeware release.  A
        commercial version was due in summer 1998, at around $1000 per
        server.  The company is expected to reach $40m annual sales
        within three years.  Funding is in the region of $1.25m.

        {Home (http://www.sendmail.com/)}.

        Address: Emeryville, California, USA.

        (1998-08-25)

Seneca

        {Oberon-V}

senior bit

        [IBM]  Synonym {meta bit}.

sensor

        <hardware> An electronic device used to measure a physical
        quantity such as temperature, pressure or loudness and convert
        it into an electronic signal of some kind (e.g a voltage).
        Sensors are normally components of some larger electronic
        system such as a computer control and/or measurement system.

        Analog sensors most often produce a voltage proportional to
        the measured quantity.  The signal must be converted to
        digital form with a {ADC} before the CPU can process it.

        Digital sensors most often use serial communication such as
        {RS-232} to return information directly to the controller or
        computer through a {serial port}.

        (1997-04-15)

sentence

        <logic> A collection of {clauses}.

        (1996-12-08)

SE-ODP

        Support Environment for Open Distributed Processing.  An
        {ECMA} {standard}.

SEP

        1. Someone Else's Problem.

        2. <tool> A {SASD} tool from {IDE}.

        (1995-10-12)

SEPIA

        Standard ECRC Prolog Integrating Applications.  Prolog with
        many extensions including attributed variables ("metaterms")
        and declarative coroutining.  "SEPIA", Micha Meier
        <micha@ecrc.de> et al, TR-LP-36 ECRC, March 1988.  Version 3.1
        available for Suns and VAX.  (See ECRC-Prolog).  E-mail:
        <sepia-request@ecrc.de>.

SEPP

        {Single Edge Processor Package}

Seque

        "Seque: A Programming Language for Manipulating Sequences",
        R.E.  Griswold et al, Comp Langs 13(1):13-22 (1988).

Sequel

        1. Precursor to SQL.

        ["System R: Relational Approach to Database Management", IBM
        Res Lab, San Jose, reprinted in Readings in Database Systems].

        2. U Leeds.  Theorem prover specification language.  Pattern
        matching notation similar to Prolog.  Compiled into Lisp.

        [Proc ICJAI 13].

        {(ftp://agora.leeds.ac.uk/scs/logic/)}

Sequenced Packet Exchange

        <networking, protocol> (SPX) A {transport layer} {protocol}
        built on top of {IPX}.  SPX is used in {Novell NetWare}
        systems for communications in {client/server} {application
        programs}, e.g. {BTRIEVE} ({ISAM} manager).

        SPX is not used for connections to the {file server} itself;
        this uses {NCP}.  It has been extended as SPX-II.  SPX/IPX
        perform equivalent functions to {TCP/IP}.

        {(http://developer.novell.com/research/appnotes/1995/december/03/04.htm
)}.

        [Better reference?]

        (1999-05-27)

sequencer

        <music> Any system for recording and/or playback of music via
        a programmable memory which stores music not as audio data,
        but as some representation of notes.  The most common modern
        usage of "sequencer" is to refer to systems (whether in
        software, or as a feature of devices like synthesizers or drum
        machines) that deal with {MIDI} data.

        (1999-06-04)

Sequent

        <company> A computer manufacturer.

        Quarterly sales $109M, profits $7M (Aug 1994).

        [Details?  Address?]

        (1994-09-26)

sequential file matching

        A programming technique that matches records in one sequential
        file with records in another sequential file.  The records are
        accessed in the physical order in which they are stored.

        (1994-11-02)

Sequential Parlog Machine

        (SPM) The {virtual machine} (and its machine code) for the
        {Parlog} {logic programming} language.

        {(ftp://nuri.inria.fr/lang/Parlog.tar.Z)}

        ["Parallel Logic Programming in PARLOG", Steve Gregory,
        Addison-Wesely, UK, 1987].

sequential processing

        Running a single task to completion on a single processor, in
        contrast to {parallel processing} or {multitasking}.

        (1995-04-23)

SERC

        {Science and Engineering Research Council}

SERCOS

        {serial real-time communications system}

        [What is it?]

        ["More choices link motors and drives to controls", by
        L. Langnau.  Power Transmission Design, vol. 37, no. 7,
        pp. 33-36].

        (1996-01-23)

serial communications interface

        <hardware> (SCI) The same as a {serial port}?

        (1998-02-14)

Serial Interface Adaptor

        (SIA) The {Ethernet} driver chip used on a {Filtabyte}
        Ethernet card.

serial line

        Wires which connect two {serial port}s carrying serial data
        consisting of sequential bits represented by one of two
        voltages.

        A common electrical specification for the signals on a serial
        line is {RS-423}.

        {(ftp://ftp.acorn.co.uk/pub/documents/appnotes/231-245/234.ps)}

        (1995-02-02)

Serial Line Internet Protocol

        <communications, protocol> (SLIP) Software allowing the
        {Internet Protocol} (IP), normally used on {Ethernet}, to be
        used over a {serial line}, e.g. an {RS-232} {serial port}
        connected to a {modem}.  It is defined in {RFC} 1055.

        SLIP modifies a standard {Internet} {datagram} by appending a
        special SLIP END character to it, which allows datagrams to be
        distinguished as separate.  SLIP requires a port configuration
        of 8 data bits, no {parity}, and {EIA} or {hardware flow
        control}.  SLIP does not provide {error detection}, being
        reliant on other high-layer protocols for this.  Over a
        particularly error-prone {dial-up} link therefore, SLIP on its
        own would not be satisfactory.

        A SLIP connection needs to have its {IP address} configuration
        set each time before it is established whereas {Point-to-Point
        Protocol} (PPP) can determine it automatically once it has
        started.

        See also {SLiRP}.

        (1995-04-30)

Serial Line IP

        (SLIP) {Serial Line Internet Protocol}.

serial port

        <hardware, communications> (Or "com port") A connector on a
        computer to which you can attach a {serial line} connected to
        peripherals which communicate using a serial (bit-stream)
        {protocol}.  The most common type of serial port is a 25-pin
        D-type connector carrying {RS-232} signals.  Smaller
        connectors (e.g. 9-pin {D-type}) carrying a subset of RS-232
        are often used on {personal computer}s.  The serial port is
        usually connected to an {integrated circuit} called a {UART}
        which handles the conversion between serial and parallel data.

        In the days before bit-mapped displays, and today on
        {multi-user} systems, the serial port was used to connect one
        or more terminals ({teletype}s or {VDU}s), printers, {modem}s
        and other serial peripherals.  Two computers connected
        together via their serial ports, possibly via {modem}s, can
        communicate using a {protocol} such as {UUCP} or {CU} or
        {SLIP}.

        (1995-01-12)

Serial Presence Detect

        {presence detect}

serial processing

        {sequential processing}

Serial Storage Architecture

        (SSA) IBM's proposed ANSI standard for a standard high-speed
        interface to disk clusters and arrays.  SSA allows
        {full-duplex} {packet multiplexed} serial data transfers at
        rates of 20Mb/sec in each direction.

        According to John Taylor, programme manager at IBM's Storage
        Division at Havant, SSA will be used in arrays of discs
        working with high-end computers ranging from mainframes down
        to LAN servers.  Taylor said that SSA differs from the {IEEE}
        proposed {P1394} serial interface specification in its ability
        to offer simultaneous multiplexed transfers from more than one
        disk or array.  IBM also supports the P1394 standard which
        will be used primarily by desktop PCs for {multimedia}
        applications.

        SSA has received backing from a number of companies including
        connector makers Molex, ITT Cannon and AMP, disk drive makers
        Conner and Western Digital and RAID array suppliers like
        Dynatech and NCR.  IBM expects to see the first SSA products
        released at Comdex in Autumn 1994 but it will be 1995 before
        the products ship in volume.

        Under an agreement signed with {ASIC} maker and {ARM} licencee
        {VLSI Technology}, IBM will use ARM-based chips made by VLSI
        to implement the SSA interface and VLSI will make these cores
        available to third parties as one of its Functional System
        Blocks.

serve

        <networking> To be a {server}, to provide a {service}.

        E.g., "The {shttpd} serves requested documents to clients over
        a secure link."

        (1997-09-11)

servelet

        {Java servlet}

server

        1. A program which provides some service to other ({client})
        programs.  The connection between client and server is
        normally by means of message passing, often over a network,
        and uses some {protocol} to encode the client's requests and
        the server's responses.  The server may run continuously (as a
        {daemon}), waiting for requests to arrive or it may be invoked
        by some higher level daemon which controls a number of
        specific servers ({inetd} on {Unix}).  There are many servers
        associated with the Internet, such as those for {Network File
        System}, {Network Information Service} (NIS), {Domain Name
        System} (DNS), {FTP}, {news}, {finger}, {Network Time
        Protocol}.  On Unix, a long list can be found in /etc/services
        or in the {NIS} database "services".  See {client-server}.

        2. A computer which provides some service for other computers
        connected to it via a network.  The most common example is a
        {file server} which has a local disk and services requests
        from remote clients to read and write files on that disk,
        often using {Sun}'s {Network File System} (NFS) {protocol} or
        {Novell Netware} on {IBM PC}s.

        (1996-09-08)

serverlet

        {Java Serverlet}

Server Message Block

        <protocol> (SMB) A {client/server} {protocol} that provides
        file and printer sharing between computers.  In addition SMB
        can share {serial ports} and communications abstractions such
        as {named pipes} and {mail slots}.  SMB is similar to {remote
        procedure call} (RPC) specialised for file system access.

        SMB was developed by {Intel}, {Microsoft}, and {IBM} in the
        early 1980s.  It has also had input from {Xerox} and {3Com}.
        It is the native method of file and print sharing for
        Microsoft {operating systems}; where it is called {Microsoft
        Networking}.  {Windows for Workgroups}, {Windows 95}, and
        {Windows NT} all include SMB clients and servers.  SMB is also
        used by {OS/2}, {Lan Manager} and {Banyan} {Vines}.  There are
        SMB servers and clients for {Unix}, for example {Samba} and
        {smbclient}.

        SMB is a {presentation layer} protocol structured as a large
        set of commands (Server Message Blocks).  There are commands
        to support file sharing, printer sharing, {user
        authentication}, resource browsing, and other miscellaneous
        functions.  As clients and servers may implement different
        versions ("dialects") of the protocol they negotiate before
        starting a session.

        The {redirector} packages SMB requests into a {network control
        block} (NBC) structure that can be sent across the network to
        a remote device.

        SMB originally ran on top of the lower level protocols
        {NetBEUI} and {NetBIOS}, but now typically runs over {TCP/IP}.

        Microsoft have developed an extended version of SMB for the
        {Internet}, the {Common Internet File System} (CIFS), which in
        most cases replaces SMB.  {CIFS} runs only runs over TCP/IP.

        {Just what is SMB?
        (http://samba.anu.edu.au/cifs/docs/what-is-smb.html)}.

        {IBM protocols
        (http://www.protocols.com/pbook/ibm.htm)}.

        {Microsoft SMB/CIFS documents
        (ftp://ftp.microsoft.com/developr/drg/CIFS/)}.

        (1999-08-08)

server-parsed HTML

        <file format, World-Wide Web> (SPML, SHTML) A kind of {HTML}
        file containing server-specific, non-standard commands which
        are interpreted by the {HTTP server} and replaced by standard
        HTML or text before the data is returned to the client.

        Different servers use different command syntax and support
        different sets of commands.  The most common example is a
        {server-side include} command which simply expands to the
        contents of some given file and allows bits of HTML or text to
        be shared between pages for ease of updating.  Other commands
        insert the value of an {environment variable} or the output of
        a {shell command}.  These allow pages to be different each
        time they are served without requiring a {CGI} script.

        Some servers distinguish SPML from HTML with a different
        {filename extension}, others use the execute bit of the file's
        {permissions}.

        (1996-09-29)

server room

        <hardware> The room where all the {server} computers are
        housed.  The {workstations} at which people sit and program
        are usually located elsewhere.

        Compare: {sun lounge}, {dinosaur pen}, {play pen}, {salt
        mines}, {disk farm}.

        (1998-07-06)

server-side include

        <World-Wide Web> (SSI) The facility provided by several {HTTP}
        {servers}, e.g. {NCSA httpd}, to replace certain {HTML} {tag}s
        in one {HTML} file with the contents of another file at the
        time when the file is sent out by the server, i.e. an {HTML}
        {macro}.

        {NCSA httpd tutorial
        (http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html)}.

        (1996-09-08)

service

        <networking, programming> Work performed (or offered) by a
        {server}.  This may mean simply serving simple requests for
        data to be sent or stored (as with {file servers}, {gopher} or
        {http} servers, {e-mail} servers, {finger} servers, {SQL}
        servers, etc.); or it may be more complex work, such as that
        of {irc} servers, print servers, {X Windows} servers, or
        process servers.

        E.g. "Access to the finger {service} is restricted to the
        local {subnet}, for security reasons".

        (1997-09-11)

Service Access Point

        <networking> (SAP) The {OSI} term for the component of a
        network address which identifies the individual application on
        a host which is sending or receiving a {packet}.

        {TCP/IP}'s equivalent term is "{port}".

        Different SAPs distinguish between different services or
        applications on a host, e.g. {electronic mail}, {FTP}, {HTTP}.

        (1996-12-23)

Service Advertising Protocol

        <networking> (SAP) A {Novell NetWare} {protocol}.  SAP follows
        the spirit of the {Xerox} {Clearinghouse} protocol, it permits
        file, print, and gateway servers to advertise their services
        and addresses.

        (1996-01-13)

service provider

        <communications> An organisation that provides a service by
        telephone, such as an 0800 (toll free) number.  The service
        provider buys the services of a telecom supplier (e.g. BT) but
        advertises the service and deals with the calls itself.
        Increasingly, service providers are now also managing their
        advanced {call-routing}.

        (1996-08-27)

servlet

        {Java servlet}

session

        <networking> 1. A lasting connection between a user (or user
        agent) and a {peer}, typically a {server}, usually involving
        the exchange of many packets between the user's computer and
        the server.  A session is typically implemented as a layer in
        a network {protocol} (e.g. {telnet}, {FTP}).

        In the case of protocols where there is no concept of a
        session layer (e.g. {UDP}) or where sessions at the {session
        layer} are generally very short-lived (e.g. {HTTP}), {virtual}
        sessions are implemented by having each exchange between the
        user and the remote host include some form of {cookie} which
        stores state (e.g. a unique session ID, information about the
        user's preferences or authorisation level, etc.).

        See also {login}.

        2. A lasting connection using the {session layer} of a
        networking protocol.

        (1997-08-03)

session layer

        <networking> The third highest {protocol layer} (layer 5) in the {OSI}
        seven layer model.  The session layer uses the {transport
        layer} to establish a {connection} between processes on
        different {hosts}.  It handles {security} and creation of the
        session.  It is used by the {presentation layer}.

        Documents: {ITU} Rec. X.225 ({ISO} 8327), ITU Rec. X.215 (ISO
        8326).

        [Examples?]

        (1997-12-07)

SES/workbench

        <tool, simulation> An iconic {simulation} and design tool,
        linked to some of the major {CASE} systems now available or in
        development.

        (1996-03-28)

SET

        1. <security> {Secure Electronic Transaction}.

        2. <electronics> {Single Electron Tunneling}.

        3. <standard> {Standard d'Echange et de Transfert}.

        (1999-03-26)

set

        A collection of objects, known as the elements of the set,
        specified in such a way that we can tell in principle whether
        or not a given object belongs to it.  E.g. the set of all prime
        numbers, the set of zeros of the cosine function.

        For each set there is a {predicate} (or property) which is
        true for (posessed by) exectly those objects which are
        elements of the set.  The predicate may be defined by the set
        or vice versa.  Order and repetition of elements within the
        set are irrelevant so, for example, {1, 2, 3} = {3, 2, 1} =
        {1, 3, 1, 2, 2}.

        Some common set of numbers are given the following names:

        N = the {natural number}s 0, 1, 2, ...

        Z = the {integer}s ..., -2, -1, 0, 1, 2, ...

        Q = the {rational number}s p/q where p, q are in Z and q /= 0.

        R = the {real number}s

        C = the {complex number}s.

        The empty set is the set with no elements.  The intersection
        of two sets X and Y is the set containing all the elements x
        such that x is in X and x is in Y.  The union of two sets is
        the set containing all the elements x such that x is in X or x
        is in Y.

        See also {set complement}.

        (1995-01-24)

set abstraction

        See {list comprehension}.

set associative cache

        A compromise between a {direct mapped cache} and a {fully
        associative cache} where each address is mapped to a certain
        set of cache locations.  The address space is divided into
        blocks of m bytes (the {cache line} size), discarding the
        bottom m address bits.  An "n-way set associative" cache with
        S sets has n cache locations in each set.  Block b is mapped
        to set "b mod S" and may be stored in any of the n locations
        in that set with its upper address bits as a tag.  To
        determine whether block b is in the cache, set "b mod S" is
        searched associatively for the tag.

        A direct mapped cache could be described as "one-way set
        associative", i.e. one location in each set whereas a fully
        associative cache is N-way associative (where N is the total
        number of blocks in the cache).  Performance studies have
        shown that is is generally more effective to increase number
        of entries rather than associativity and that 2- to 16-way set
        associative caches perform almost as well as fully associative
        caches at little extra cost over direct mapping.

set complement

        The complement of set A in set U is all elements of U which
        are not elements of A.

        (1995-01-24)

set comprehension

        See {list comprehension}.

Setext

        A markup scheme intended for documents that are both human-
        and computer-readable.

SETL

        SET Language.  A very high level language based on sets,
        designed by Jack Schwartz at the {Courant Institute} in the
        early 1970s.  It was possibly the first use of {list
        comprehension} notation.

        Data types include sets (unordered collections), {tuple}s
        (ordered collections) and maps (collections of ordered pairs).
        Expressions may include {quantifier}s ('for each' and
        'exists').  The first {Ada} translator was written in SETL.

        See also {ISETL}, {ProSet}, {SETL2}.

        ["Programming With Sets - An Introduction to SETL", Jacob
        T. Schwartz et al, Springer 1986].

SETL2

        {SETL} with more conventional {Ada}-like syntax, {lexical
        scope}, full block structure, {first-class function}s and a
        package and library system.  Ported to {OS/2}, {MS-DOS} (3.1
        up), Extended {MS-DOS} (80286 and higher processors with
        extended memory), {Macintosh} (with the {MPW} environment),
        Sun 3 (SunOS 4), Sun 4 (SunOS 4), IBM RS/6000 (AIX 3.1), DEC
        RISC product line (Ultrix 4.0), DEC Vaxen (Mt. Xinu Unix or
        VMS).

        {(ftp://cs.nyu.edu/pub/languages/setl2)}.  Please e-mail Kirk
        Snyder <snyder@spunky.cs.nyu.edu> if you take a copy.

        ["The SETL2 Programming Language", W. Kirk Snyder, Courant
        Inst TR 490, Jan 1990].

SETL/E

        See {ProSet}.

Set Priority Level

        (SPL) The way traditional {Unix} {kernel}s implement {mutual
        exclusion} by running code at high {interrupt priority level}s
        and thus blocking lower level interrupts.

        (1994-11-23)

SETS

        Set Equation Transformation System.

        Symbolic manipulation of Boolean equations.  "Efficient
        Ordering of Set Expressions for Symbolic Expansion",
        R.G. Worrell et al, J ACM 20(3):482-488 (Jul 1973).

set theory

        <mathematics> A mathematical formalisation of the theory of
        "sets" (aggregates or collections) of objects ("elements" or
        "members").  Many mathematicians use set theory as the basis
        for all other mathematics.

        Mathematicians began to realise towards the end of the 19th
        century that just doing "the obvious thing" with sets led to
        embarrassing {paradox}es, the most famous being {Russell's
        Paradox}.  As a result, they acknowledged the need for a
        suitable {axiomatisation} for talking about sets.  Numerous
        such axiomatisations exist; the most popular among ordinary
        mathematicians is {Zermelo Frnkel set theory}.

        {The beginnings of set theory
        (http://www-groups.dcs.st-and.ac.uk/~history/HistoryTopics.html)}.

        (1995-05-10)

set-top box

        <communications, networking> (STB) Any electronic device
        designed to produce output on a conventional televesion set
        (on top of which it nominally sits) and connected to some
        other communications channels such as telephone, {ISDN},
        {optical fibre} or cable.  The STB usually runs software to
        allow the user to interact with the programmes shown on the
        television in some way.

        {Online Media} are one STB manufacturer.

        (1997-05-16)

SEUS

        R. Weyrauch et al.  Language allowing functions to return
        multiple values.  Implemented but never published.  Mentioned
        in "Evolution of Lisp", G.L. Steele et al, SIGPLAN Notices
        28(3):231-270 (March 1993).

seven layer model

        {Open Systems Interconnect}

SEX

        /seks/ [Sun Users' Group & elsewhere] 1. Software EXchange.  A
        technique invented by the blue-green algae hundreds of
        millions of years ago to speed up their evolution, which had
        been terribly slow up until then.  Today, SEX parties are
        popular among hackers and others (of course, these are no
        longer limited to exchanges of genetic software).  In general,
        SEX parties are a {Good Thing}, but unprotected SEX can
        propagate a {virus}.  See also {pubic directory}.

        2. The {mnemonic} often used for Sign EXtend, a machine
        instruction found in the {PDP-11} and many other
        architectures.  The {RCA 1802} chip used in the early {Elf}
        and SuperElf {personal computers} had a "SEt X register" SEX
        instruction, but this seems to have had little folkloric
        impact.

        DEC's engineers nearly got a {PDP-11} {assembler} that used
        the "SEX" mnemonic out the door at one time, but (for once)
        marketing wasn't asleep and forced a change.  That wasn't the
        last time this happened, either.  The author of "The Intel
        8086 Primer", who was one of the original designers of the
        {Intel 8086}, noted that there was originally a "SEX"
        instruction on that processor, too.  He says that Intel
        management got cold feet and decreed that it be changed, and
        thus the instruction was renamed "CBW" and "CWD" (depending on
        what was being extended).  The {Intel 8048} (the
        {microcontroller} used in {IBM PC} keyboards) is also missing
        straight "SEX" but has logical-or and logical-and instructions
        "ORL" and "ANL".

        The {Motorola 6809}, used in the UK's "{Dragon 32}" {personal
        computer}, actually had an official "SEX" instruction; the
        {6502} in the {Apple II} with which it competed did not.
        British hackers thought this made perfect mythic sense; after
        all, it was commonly observed, you could (on some theoretical
        level) have sex with a dragon, but you can't have sex with an
        apple.

        (1998-03-03)

sexadecimal

        {hexadecimal}

sex changer

        {gender mender}

SEXI

        {SNOBOL}

Seymour Cray

        <person> The founder of {Cray Research} and designer of
        several of their {supercomputers}.

        Cray has been a charismatic yet somewhat reclusive figure.  He
        began Cray Research in Minnesota in 1972.  In 1988, Cray moved
        his {Cray-3} project to Colorado Springs.  The next year, Cray
        Research spun it off to create {Cray Computer}.  In 1989, Cray
        left Cray Research and started Cray Computer Corporation in Colorado
        Springs.

        His quest to build a faster computer using new-generation
        materials failed in 1995, and his bankruptcy cost half a
        billion dollars and more than 400 jobs.  The company was
        unable to raise $20 million needed to finish the {Cray-4} and
        filed for bankruptcy in March 1995.

        In the summer of 1996, Cray started a Colorado Springs-based
        company called {SRC Computers, Inc.}  "We think we'll build
        computers, but who knows what kind or how," Cray said at the
        time.  "We'll talk it over and see if we can come up with a
        plan."

        On 1996-09-22, aged 70, Cray broke his neck in a car
        accident.  Surgery for massive head injuries and swelling of
        the brain leaving him in a critical and unstable condition.

        (1997-03-02)

SFA

        {Sales Force Automation}

SFBI

        Shared Frame Buffer Interconnect (Intel)

SFD-ALGOL

        System Function Description-ALGOL.  Extension of ALGOL for
        synchronous systems.  Sammet 1969, p.625.

SFFA

        {Sales Force Automation}

SFL

        System Function Language.  Assembly language for the ICL2900.
        "SFL Language Definition Manual", TR 6413, Intl Computers Ltd.

SFLV

        Unifies logic and functional programming.  SASL+LV with
        unification moved from actual/formal parameter matching to
        equational clauses.  "Static Analysis of Functional Programs
        with Logical Variables", G. Lindstrom in Programming Languages
        Implementation and Logic Programming, P. Deransart et al eds,
        LNCS 348, Springer 1988.

sg

        <networking> The {country code} for Singapore.

        (1999-01-27)

SGCP

        {Simple Gateway Control Protocol}

SGI

        {Silicon Graphics, Inc.}

SGML

        {Standard Generalized Markup Language}

sgmls

        <language, tool> Sgmls is an {SGML} {parser} derived from the
        {ARCSGML} parser materials which were written by Charles
        Goldfarb.  It outputs a simple, easily parsed, line oriented,
        {ASCII} representation of an SGML document's Element Structure
        Information Set (see pp 588-593 of "The SGML Handbook").  It
        is intended to be used as the front end for
        structure-controlled SGML {application program}s.

        Version 1.1 for {Unix} and {MS-DOS} by James J. Clark
        <jjc@jclark.com> and Charles Goldfarb.

        {(ftp://ftp.uu.net/pub/text-processing/sgml/sgmls-1.0.tar.Z)},
        {(ftp://ftp.jclark.com/sgmls/sgmls-1.1.tar.Z)}.

        E-mail: James Clark <jjc@jclark.com>.

        (1993-02-22)

SGML Tagger

        <tool> A tool to assist with adding {SGML} to a piece of text.
        The Tagger only lets the user insert a mark-up tag which is
        correct in that particular context.

        {(http://www1.oup.co.uk/cite/oup/E-P/Humanities/The_SGML_Tagger/)}.

        (1997-03-18)

SGRAM

        {Synchronous Graphics Random Access Memory}

sh

        1. <operating system> {Bourne shell}.

        2. <networking> The {country code} for St. Helena.

        (1999-01-27)

SHACO

        An early system on the {IBM 701}.

        [Listed in CACM 2(5):1959-05-16].

        (1995-10-25)

SHADOW

        <language> A {syntax}-directed {compiler} written by Barnett
        and Futrelle in 1962.  It was the predecessor to {SNOBOL}(?)

        [Sammet 1969, p. 448, 605].

        (1995-01-16)

shadowing

        {aliasing}

shadow ram

        <operating system> A memory area in {PC-AT} compatibles used
        to store frequently accessed {ROM} code to speed up operation.

        (1995-01-16)

shallow binding

        A method of storing variable bindings where the current value
        of a variable can be found at at a known location rather than
        by searching an environment or association list.  When a new
        binding is made, the old value is copied into the environment.

shambolic link

        /sham-bol'ik link/ A Unix symbolic link, particularly when it
        confuses you, points to nothing at all, or results in your
        ending up in some completely unexpected part of the
        file system.

Shape_VC

        A {code management} system which offers version control
        functionality similar to systems like {RCS} or {SCCS} with
        some extensions and a more {Unix}-like command interface.

        (1994-11-04)

ShapeTools

        <tool, programming> A {code management} system for {Unix} from
        The {Technical University of Berlin}.

        (1995-05-11)

shar

        <tool, file format> ("Shell archive", after {ar} and {tar})
        Any of the many {Unix} programs that creates a {flatten}ed
        representation of one or more files, with the unique property
        that it can be unflattened (the original files extracted)
        merely by feeding it through a standard {Unix} {shell}.  The
        output of shar, known as a "shar file" or "sharchive", can be
        distributed to anyone running {Unix}, and no special unpacking
        software is required.

        Sharchives are intriguing in that they are typically created
        by shell scripts; the script that produces sharchives is thus
        a script which produces self-unpacking scripts, which may
        themselves contain scripts.  The disadvantage of sharchives
        are that they are an ideal venue for {Trojan horse} attacks
        and that, for recipients not running Unix, no simple
        un-sharchiving program is possible; sharchives can and do make
        use of arbitrarily-powerful shell features and other Unix
        commands.

        Different implementations of shar vary in sophistication.
        Some just {uuencode} each input file and output commands to
        {uudecode} the result, others include extensive checking to
        make sure the files have been transferred without corruption
        and that all parts of a multi-file sharchive have been
        unpacked.

        The {unshar} utility strips off mail and news headers before
        passing the remainder of its input to sh.

        (1996-10-18)

sharchive

        {shar}

Share and enjoy!

        1. Commonly found at the end of software release announcements
        and {README file}s, this phrase indicates allegiance to the
        hacker ethic of free information sharing (see {hacker ethic}).

        2. The motto of the Sirius Cybernetics Corporation (the
        ultimate gaggle of incompetent {suit}s) in Douglas Adams's
        "Hitch Hiker's Guide to the Galaxy".  The irony of using this
        as a cultural recognition signal appeals to {freeware}
        hackers.

shared memory

        1. Memory in a {parallel computer}, usually {RAM}, which can
        be accessed by more than one processor, usually via a shared
        {bus} or network.

        It usually takes longer for a processor to access shared
        memory than to access its own private memory because of
        contention for the processor-to-memory connections and because
        of other overheads associated with ensuring synchronised
        access.  Computers using shared memory usually have some kind
        of local {cache} on each processor to reduce the number of
        accesses to shared memory.  This requires a {cache
        consistency} {protocol} to ensure that one processor's cached
        copy of a shared memory location is invalidated when another
        processor writes to that location.

        The alternative to shared memory is {message passing} where
        all memory is private to some particular processor and
        processors communicate by sending messages down special
        links.  This is usually slower than shared memory but it
        avoids the problems of contention for memory and can be
        implemented more cheaply.

        2. Memory which can be access by more than one process in a
        {multitasking} {operating system} with memory protection.
        Some {Unix} variants, e.g. {SunOS} provide this kind of shared
        memory.

        {Unix manual pages}: shmop(2), shmctl(2), shmget(2).

        (1994-10-20)

Shared Time Repair of Big Electronic Systems

        <language> (STROBES) A language for computer testing.

        [Sammet 1969, p. 699].

        (1995-02-06)

shareware

        <software> /sheir'weir/ {Freeware} for which the author
        requests some payment, usually in the accompanying
        documentation files or in an announcement made by the software
        itself.  Such payment may buy additional support,
        documentation or functionality.

        See also {careware}, {charityware}, {crippleware},
        {guiltware}, {nagware}, {postcardware}, and {-ware}; compare
        {payware}.

        {The Conception of Shareware
        (http://www.halcyon.com/knopf/history.htm)}.

        (1997-10-11)

shar file

        {shar}

sharp

        <character> {hash}.

Sharp APL

        <language> (Or "Dictionary APL")

        ["A Dictionary of the APL Language", K. Iverson, Pub 0402,
        Sharp Assocs, Toronto, 1985].

        {(ftp://watserv1.waterloo.edu/languages/apl/sharp.apl)}

        (1997-09-02)

S-HDSL

        {Single-pair High Speed Digital Subscriber Line}

shebang

        <operating system> (Or "shebang line", "{bang path}")
        /sh*-bang'/ (From "{sharp}" and "{bang}") The {magic cookie}
        "#!" used in {Unix} to mark the start of a {script}, e.g. a
        {shell script} or {Perl script}.

        Under {Unix}, if the first two bytes of an {executable} file
        are "#!", the {kernel} treats the file as a script rather than
        a {machine code} program.  The word following the "!" (i.e.,
        everything up to the first {whitespace}) is used as the
        {pathname} of the {interpreter}.  For example, if the first
        line of an executable is

         #!/usr/local/bin/perl

        the script will be treated as a {Perl} script and passed as an
        argument to /usr/local/bin/perl to be interpreted.  Some
        variants of Unix also allow one or more parameters to be
        passed to the interpreter, for example, you can write

         #!/usr/bin/perl -w

        and the script will be started as if you typed

         /usr/bin/perl -w <filename>

        on the command line.  Also, most modern kernels ignore any
        whitespace between the "!" and the interpreter pathname.  Even
        some modern kernels have fairly small limits (e.g. 32) on the
        length of line they will accept, making long pathnames and
        arguments somewhat unportable.

        [Does anyone call this a "magic string"?]

        (1998-05-06)

SHEEP

        <mathematics, tool> A package for {symbolic mathematics},
        especially {tensor analysis} and General Relativity, developed
        by Inge Frick in Stockholm in the late 1970s to early 1980s.
        SHEEP was implemented in {DEC-10} {assembly language}, then in
        several {LISPs}.  The current version runs on {Sun}-3 and is
        based on {Portable Standard LISP}.

        ["Sheep, a Computer Algebra System for General Relativity",
        J.E.F. Skea et al in Proc First Brazilian School on Comp Alg,
        W. Roque et al eds, Oxford U Press 1993, v2].

        {(ftp://galois.maths.gmw.ac.uk/homeftp/pub/sheep)}

        (1998-05-06)

shelf

        A public library of {class}es for the {Eiffel} language.

shelfware

        <jargon> /shelfweir/ {Software} which is never used and so
        ends up on the shelf.  Shelfware may be purchased on a whim by
        an individual, or in accordance with corporate policy, but not
        actually required for any particular use.  Alternatively, it
        may be software that has been developed (unlike {vaporware}),
        but is never released as a product -- a common occurance at
        {DEC}.

        (1997-07-20)

SHELL

        <language> An early system on the {Datatron 200} series.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-05-11)

shell

        1. <operating system> (Originally from {Multics}, widely
        propagated via {Unix}) The {command interpreter} used to pass
        commands to an {operating system}; so called because it is the
        part of the operating system that interfaces with the outside
        world.

        The commonest Unix shells are the c shell ({csh}) and the
        Bourne shell ({sh}).

        2. (Or "wrapper") Any interface program that mediates access
        to a special resource or {server} for convenience, efficiency,
        or security reasons; for this meaning, the usage is usually "a
        shell around" whatever.

        (1995-05-11)

shell out

        [Unix] To spawn an interactive subshell from within a program
        (e.g. a mailer or editor).  "Bang foo runs foo in a subshell,
        while bang alone shells out."

        (1995-05-11)

shell script

        <programming, operating system> A {program} written to be
        interpreted by the {shell} of an {operating system},
        especially {Unix}.

        Compare: {script}, {glue language}.

        (1999-02-22)

shell variable

        <programming, operating system> One of the {variables}
        accessible to a {Unix} {shell} process, including {environment
        variables} (e.g. $HOME), {command line arguments} (e.g. $1)
        and local variables (e.g. $input_file).  Other {operating
        systems} have similar variables.

        (1999-01-26)

SHIFT

        Scalable Heterogeneous Integrated Facility Testbed.  A
        parallel processing project at CERN.

Shift In

        <character> (SI, Control-O, {ASCII} 15) The character used on
        some ancient {teletypes} to start using an alternative
        {character set}.

        (1996-06-24)

shift left logical

        {logical shift}

Shift Out

        <character> (SO, Control-N, {ASCII} 14) The character which
        was used to "shift out" of an alternate character set on some
        ancient {teletype}s, reversing the effect of the {Shift In}
        (SI, ASCII 15) character.

        (1996-06-24)

shift right logical

        {logical shift}

shim

        A small piece of data inserted in order to achieve a desired
        memory alignment or other addressing property.  For example,
        the {PDP-11} {Unix} {linker}, in split I&D (instructions and
        data) mode, inserts a two-byte shim at location 0 in data
        space so that no data object will have an address of 0 (and be
        confused with the {C} null pointer).

        See also {loose bytes}.

        (1994-12-21)

shitogram

        /shit'oh-gram/ A *really* nasty piece of e-mail.

        Compare {nastygram}, {flame}.

        (1994-12-21)

Shockwave

        <tool> A program from {Macromedia} for viewing files created
        with {Macromedia Director}.  Shockwave is freely available as
        a {plug-in} for the {Netscape Navigator} web {browser}.

        "Shocked" pages that incorporate documents created in Director
        can usually only be enjoyed by users with an {ISDN} or faster
        connection.

        {Home (http://www.macromedia.com/shockwave/)}.

        [Filetypes?  More detail?]

        (1998-07-07)

shockwave

        <networking> The propagation of failure, shutdown, {meltdown},
        net overload, or a {virus} from one network node to another,
        resulting in a wave of inactivity across the net.

        (1997-05-16)

Shockwave Flash

        {Flash}

shopbot

        <World-Wide Web> A kind of {bot} that searches the {World-Wide
        Web} to find the best price for a product you're looking for.

        [Examples?]

        (1999-06-19)

short card

        <hardware> A half-length {IBM PC expansion card} or adaptor
        that will fit in one of the two short slots located towards
        the right rear of a standard chassis (tucked behind the
        {floppy disk} drives).

        See also: {tall card}.

        [What bus?]

        (1998-07-08)

Short Code

        <language> (SHORTCODE) A {pseudocode} {interpreter} for
        mathematics problems, designed by {John Mauchly} in 1949 to
        execute on Eckert and Mauchly's {BINAC} and later on {UNIVAC
        I} and II.  Short Code was possibly the first attempt at a
        {high level language}.

        [Sammet 1969, p. 129].

        (1996-11-01)

shortcut

        <file system> {Microsoft Corporation}'s term for a {symbolic
        link}.  Shortcuts first appeared in 1996 in the {Windows 95}
        {operating system}.

        (1997-10-22)

shortest job first

        <algorithm> A scheduling {algorithm} used in {multitasking}
        {operating systems} that favours processes with the shortest
        estimated running time.

        (1998-04-25)

Short Message Service

        <messaging> (SMS) A message service offered by the {GSM}
        digital {cellular telephone} system.

        Using SMS, a short alphanumeric message (160 alphanumeric
        characters) can be sent to a mobile phone to be displayed
        there, much like in an {alphanumeric pager} system.  The
        message is buffered by the GSM network until the phone becomes
        active.

        (1996-02-18)

shotgun debugging

        The software equivalent of {Easter egging}; the making of
        relatively undirected changes to software in the hope that a
        bug will be perturbed out of existence.  This almost never
        works, and usually introduces more bugs.

shovelware

        /shuh'v*l-weir"/ Extra software dumped onto a CD-ROM or tape
        to fill up the remaining space on the medium after the
        software distribution it's intended to carry, but not
        integrated with the distribution.

Show-And-Tell

        A visual {dataflow} language designed for use by elementary
        school children.

        ["A Visual Language for Keyboardless Programming", T. Kimura
        et al, TR WUCS-86-6, CS Dept Washington U, Mar 1986].

        ["Show and Tell: A Visual Language", T.D. Kimura et al in
        Visual Programming Environments: Paradigms and Systems,
        E.P. Glinert ed, IEEE Comp Sci Press, 1990, pp. 397-404].

        (1995-01-31)

showstopper

        A hardware or (especially) software {bug} that makes an
        implementation effectively unusable; one that absolutely has
        to be fixed before development can go on.  Opposite in
        connotation from its original theatrical use, which refers to
        something stunningly *good*.

        (1995-01-31)

shriek

        {exclamation mark}

sht

        {server-parsed HTML}

shtml

        {server-parsed HTML}

Shub-Internet

        /shuhb in't*r-net/ (MUD, from H. P. Lovecraft's evil fictional
        deity "Shub-Niggurath", the Black Goat with a Thousand Young)
        The harsh personification of the {Internet}, Beast of a
        Thousand Processes, Eater of Characters, Avatar of Line Noise,
        and Imp of Call Waiting; the hideous multi-tendriled entity
        formed of all the manifold connections of the net.  A sect of
        {MUD}ders worships Shub-Internet, sacrificing objects and
        praying for good connections.  To no avail - its purpose is
        malign and evil, and is the cause of all network slowdown.
        Often heard as in "Freela casts a tac nuke at Shub-Internet
        for slowing her down."  (A forged response often follows along
        the lines of: "Shub-Internet gulps down the tac nuke and burps
        happily.")  Also cursed by users of {FTP} and {telnet} when
        the system slows down.  The dread name of Shub-Internet is
        seldom spoken aloud, as it is said that repeating it three
        times will cause the being to wake, deep within its lair
        beneath the Pentagon.

        (1994-11-04)

SHUG

        {Scottish Hypermedia Users' Group}

Shugart Associates

        The company which developed {SCSI}.  They later became
        {Seagate}.

        (1994-11-22)

SI

        {Shift In}

si

        <networking> The {country code} for Slovenia.

        (1999-01-27)

SIA

        {Serial Interface Adaptor}

SICL

        {Standard Instrument Control Library}

SICS

        {Swedish Institute for Computer Science}

SICStus Prolog

        A {Prolog} from the SICS (Swedish Inst of Comp Sci).

        E-mail: <sicstus-request@sics.se>.
        Mailing list: sicstus-users@sics.se.

        (1995-01-05)

sidecar

        1. Synonym {slap on the side}.  Especially used of add-ons for
        the late and unlamented {IBM PCjr}.

        2. The {IBM PC} compatibility box that could be bolted onto
        the side of an {Amiga}.  Designed and produced by {Commodore},
        it broke all of the company's own design rules.  If it worked
        with any other peripherals, it was by {magic}.

side-effect

        A language construct that modifies the state of the system.
        The most common side-effects are {assignment}, input and
        output.  A language without side-effects is
        {purely-functional} - execution consists of the evaluation of
        an expression and all subexpressions are {referentially
        transparent}.

        (1995-02-16)

Siemens

        A German semiconductor and electronics manufacturer.

        {Home (http://www.siemens.de/)}

        [Summary?]

        (1995-07-26)

Siemens Nixdorf Informationssteme, AG

        <company> (SNI) A separate company within {Siemens}, the
        largest {IT} company in Europe.  SNI sells the {BS2000}
        {operating system}, a wide variety of {databases}, {servers}
        and other products.

        (1997-06-13)

Sierra

        <company, games> (Or "Sierra On-Line") A computer game
        developer founded in the early 1980s by Ken and Roberta
        Willams in the small mountain town of Oakhurst California.
        Sierra was named after the local mountian range, 15 miles from
        the famous Yosemite National Park.

        In 1997 Sierra was purchased by {CUC} and its main office is
        now in Seattle, WA, USA.

        Products include Kings Quest, Space Quest, Police Quest, Quest
        for Glory, Robin Hood, Phantasmagoria, Leisure Suit Larry, Eco
        Quest and many more.

        {Home (http://www.sierra.com /)}.

        (1997-11-23)

SIFT

        SHARE Internal FORTRAN Translator.  Translation utility
        designed for converting FORTRAN II to FORTRAN IV.  The word
        "sift" was often used as a verb to describe converting code
        from one language to another.  Sammet 1969, p.153.

SIG

        {Special Interest Group}

Sig

        Signal Processing, Analysis, and Display program.  An
        environment with an associated programming language by Jan
        Carter of {Argonne National Lab}.  Telephone +1 (312) 972
        7250.

sig

        {signature}

sig block

        /sig blok/ [Unix; often written ".sig" there].  See
        {signature}.

SIGhyper

        Special Interest Group on Hypertext and Multimedia of the
        {SGML} Users' Group.

SIGLA

        <robotics> SIGma LAnguage.  A language for industrial robots
        from {Olivetti}.

        ["SIGLA: The Olivetti Sigma Robot Programming Language",
        M. Salmon, Proc 8th Intl Symp on Industrial Robots, 1978,
        pp. 358-363].

SIGMA

        A scientific {visual programming} environment from NASA.

        {(http://fi-www.arc.nasa.gov/fia/projects/sigma/)}

SIGNAL

        <language> A synchronous language by Le Guernic et al of
        {INRIA}.

        ["SIGNAL - A Data Flow-Oriented Language for Signal
        Processing," P. le Guernic, IEEE Trans Acoustics Speech &
        Signal Proc, ASSP-34(2):362-1986-04-374].

        (1996-12-10)

signal

        <operating system> A predefined message sent between two
        {Unix} {processes} or from the {kernel} to a process.  Signals
        communicate the occurrence of unexpected external events such
        as the forced termination of a process by the user.  Each
        signal has a unique number associated with it and each process
        has a signal handler set for each signal.  Signals can be sent
        using the {kill} {system call}.

        (1996-12-10)

signalling rate

        <communications> The number of times per second the
        {amplitude}, {frequency} or {phase} of the signal transmitted
        down a communications channel changes each second.  The
        signalling rate is measured in {baud}.

        (1998-02-14)

Signalling System 7

        <protocol> (SS7) A {protocol} suite used for communication
        with, and control of, telephone central office switches and
        their attached processors.

        (1995-03-01)

signal-to-noise ratio

        1. <communications> (SNR, "s/n ratio", "s:n ratio") "Signal"
        refers to useful information conveyed by some communications
        medium, and "noise" to anything else on that medium.  The
        ratio of these is usually expressed logarithmically, in
        {decibels}.

        2. <networking> The term is often applied to {Usenet}
        newsgroups though figures are never given.  Here it is quite
        common to have more noise (inappropriate postings which
        contribute nothing) than signal (relevant, useful or
        interesting postings).  The signal gets {lost in the noise}
        when it becomes too much effort to try to find interesting
        articles among all the crud.  Posting "noise" is probably the
        worst breach of {netiquette} and is a waste of {bandwidth}.

        (1996-01-29)

signature

        1. A set of function symbols with {arities}.

        2. <messaging> (Or sig) A few lines of information about the
        sender of an {electronic mail} message or {news} {posting}.
        Most {Unix} mail and news software will {automagically} append
        a signature from a file called .signature in the user's {home
        directory} to outgoing mail and news.

        A signature should give your real name and your {e-mail
        address} since, though these appear in the {header}s of your
        messages, they may have been {munge}d by the intervening
        software.  It is currently (1994) hip to include the {URL} of
        your {home page} on the {World-Wide Web} in your sig.

        The composition of one's sig can be quite an art form,
        including an ASCII logo or one's choice of witty sayings (see
        {sig quote}, {fool file, the}); but large sigs are a waste of
        {bandwidth}, and it has been observed that the size of one's
        sig block is usually inversely proportional to one's prestige
        on the net.

        See also {doubled sig}, {sig virus}.

        2. <programming> A concept very similar to {abstract base
        class}es except that they have their own {hierarchy} and can
        be applied to compiled {class}es.  Signatures provide a means
        of separating {subtyping} and {inheritance}.  They are
        implemented as patches to {GCC} 2.5.2 by Gerald Baumgartner
        <gb@cs.purdue.edu>.

        {(ftp://ftp.cs.purdue.edu/pub/gb/)}

        (1996-02-26)

sig quote

        <messaging> /sig kwoht/ A maxim, quote, proverb, joke, or slogan
        embedded in one's {sig block} (as used in {Usenet} news) and
        intended to convey something of one's philosophical stance,
        pet peeves, or sense of humour.  "Calm down, it's only ones
        and zeroes."

        (1994-11-04)

sig virus

        A parasitic {meme} embedded in a {sig block}.  There was a
        {meme plague} or fad for these on {Usenet} in late 1991.  Most
        were equivalents of "I am a .sig virus.  Please reproduce me
        in your .sig block.".  Of course, the .sig virus's memetic
        hook is the giggle value of going along with the gag; this,
        however, was a self-limiting phenomenon as more and more
        people picked up on the idea.  There were creative variants on
        it; some people stuck "sig virus antibody" texts in their
        sigs, and there was at least one instance of a sig virus
        eater.

SIL

        1. "SIL - A Simulation Language", N. Houbak, LNCS 426,
        Springer 1990.

        2. SNOBOL Implementation Language.  Intermediate language
        forming a virtual machine for the implementation of portable
        interpreters.

        ["The Design of Transportable Interpreters", F. Druseikis,
        SNOBOL4 Project Document S4D49, U Arizona (Feb 1975)].

        Version 3.11.  {(ftp://cs.arizona.edu/snobol4/)}.  E-mail:
        <snobol4@arizona.edu>.

        (1986-07-29)

Silage

        Synchronous DSP specification language.

        ["Silage Reference Manual, Draft 1.0", D.R. Genin &
        P.N. Hilfinger, Silvar-Lisco, Leuven 1989].

silicon

        1. <electronics> The material used as the base (or
        "substrate") for most {integrated circuit}s.

        2. <jargon> {Hardware}, especially {integrated circuit}s or
        {microprocessor}-based computer systems (compare {iron}).

        Contrast: {software}.  See also {sandbender}.

        (1996-05-28)

silicon chip

        {integrated circuit}

Silicon Graphics, Inc.

        <company> (SGI) Manufacturer of {workstations} and {software}
        for {graphics} and {image processing}.  SGI was founded by
        {Dr. James H.  Clark}, who left some time before May 1994 to
        head {Mosaic Communications Corporation}.

        Quarterly sales $433M, profits $44M (Aug 1994).

        {(http://www.sgi.com/)}

        (1994-09-26)

Siliwood

        <jargon> (Or "Hollywired") The coming convergence of film,
        {interactive TV} and computers.

        (1999-01-15)

silly walk

        [Monty Python's Flying Circus] 1. A ridiculous procedure
        required to accomplish a task.  Like {grovel}, but more
        {random} and humorous.  "I had to silly-walk through half the
        /usr directories to find the maps file."

        2. Synonym {fandango on core}.

silo

        The {FIFO} input-character buffer in an {RS-232} serial line
        card.  So called from {DEC} terminology used on DH and DZ line
        cards for the {VAX} and {PDP-11}, presumably because it was a
        storage space for fungible stuff that went in at the top and
        came out at the bottom.

Silver Book

        <publication> Jensen and Wirth's infamous "Pascal User Manual
        and Report", so called because of the silver cover of the
        widely distributed Springer-Verlag second edition of 1978
        (ISBN 0-387-90144-2).

        See also {book titles}, {Pascal}.

        (1996-12-03)

silver bullet

        {magic bullet}

SIMAN

        {SIMulation ANalysis}

SimCity

        <games> {Maxis Software}'s simulation game which lets you
        design and build your own city, which must be administered
        well if it is to thrive.  Land must be zoned, transportation
        systems built, and police and fire protection provided.  Once
        you've zoned some land, and provided electrical power, the
        simulation takes over, and simcitizens move in.  If you
        perform your mayoral duties poorly, however, they will move
        out again.  If you don't provide enough police, crime will
        rise and sims will vote with their feet.  Try to save money on
        fire protection, and your city may burn to the ground.  There
        is no predefined way to win the game, building the largest
        city you can is just one possible strategy.

        SimCity runs on {Archimedes}, {Amiga}, {Atari ST}, {IBM PC}
        and {Macintosh}.  There was also a {NeWS} version for {Sun}
        {SPARC} {workstations} running {OpenWindows}.

        {SimCity 2000} is an upgrade of SimCity.

        (1995-06-11)

SimCity 2000

        <games> An upgraded version of the game/simulation {SimCity}
        by {Maxis Software}.  In the new version you can raise, lower
        and level terrain; build roads and railways at 45-degree
        angles; name things in your city by planting "signs"; build
        raised highways, subways, and train and bus stations, schools,
        colleges, hospitals, electricity, water, recreational marinas
        and zoos.

        There are three levels of zoom, and the view may be rotated to
        look at your city from any of the four directions.  A query
        feature which will tell you the zoning, land value, etc. of
        any square.  You get newspapers, advice from council members,
        graphs, and charts.

        (1995-02-08)

SIMD

        {Single Instruction/Multiple Data}

Similix

        An autoprojector (self-applicable partial evaluator) for a
        higher order subset of the strict functional language Scheme.
        Similix handles programs with user defined primitive abstract
        data type operators which may process global variables (such
        as input/output operators).

        Version 5.0.

        Anders Bondorf <anders@diku.dk>

        conformance: extension of large subset of R4RS Scheme.

        requires: Scheme

        ports: Scm, Chez Scheme

        portability: high

        E-mail: Anders Bondorf <anders@diku.dk>

        {(ftp://ftp.diku.dk/pub/diku/dists/Similix.tar.Z)}

        (1993/05/18)

SIML/I

        Simulation language, descendant of ASPOL.

        ["The Simulation Language SIML/I", M.H. MacDougall, Proc NCC
        1979, pp. 39-44].

SIMM

        {Single in-line memory module}

Simone

        <language> A {simulation} language by A. Hoare et al. based on
        {Pascal}.

        ["Quasiparallel Programming", W.H. Kaubisch et al, Soft Prac &
        Exp 6:341-356 1976].

        [C.A.R. Hoare?]

        (1996-01-18)

Simonyi, Charles

        {Charles Simonyi}

SIMPAC

        Early simulation language with fixed time steps.

        "Simpac User's Manual", R.P. Bennett et al, TM-602/000/000,
        Sys Devel Corp, Apr 1962.

SIMPAS

        Event scheduling language, implemented as Pascal preprocessor.

        "SIMPAS - A Simulation Language Based on Pascal", R.M. Bryant
        in Proc 1980 Winter Sim Conf, T.I Oren et al eds, pp.559-572.

SIMPL

        Simulation language, descendant of OPS-4, compiled into PL/I
        on Multics.

        "The SIMPL Primer", M.W. Jones et al, Oct 1971.

SIMPLE

        1. Early system on Datatron 200 series.  Listed in CACM
        2(5):16 (May 1959).

        2. Simulation of Industrial Management Problems with Lots of
        Equations.  R.K. Bennett, 1958.  Predecessor to DYNAMO, for
        IBM 704.

Simple Gateway Control Protocol

        <communications, protocol> (SGCP) An {IETF} work in progress,
        superceded by {MGCP}.

        (1999-04-26)

Simple Mail Transfer Protocol

        (SMTP) A {protocol} defined in {STD} 10, {RFC} 821, used to
        transfer {electronic mail} between computers, usually over
        {Ethernet}.  It is a server to server protocol, so other
        protocols are used to access the messages.  The SMTP dialog
        usually happens in the background under the control of the
        message transport system, e.g. {sendmail} but it is possible to
        interact with an SMTP server using {telnet} to connect to the
        normal SMTP {port}, 25.  E.g.

                telnet mhs-relay.ac.uk 25

        You should normally start by identifying the local {host}:

                HELO wombat.doc.ic.ac.uk

        You can then issue commands to verify an address or expand an
        alias:

                VRFY dbh@doc.ic.ac.uk
                VRFY postmaster

        or expand a {mailing list}:

                EXPN c-help

        You can even send a message:

                MAIL From:<dbh@doc.ic.ac.uk>
                RCPT To:<dbh@mailway.doc.ic.ac.uk>
                DATA
                What is the point?
                .
                QUIT

        This is useful if you want to find out exactly what is
        happening to your message at a certain point.  See also {Post
        Office Protocol}, {RFC 822}, {sendmail}.

        (1995-10-17)

Simple Network Management Protocol

        <protocol> (SNMP) The {Internet} {standard} {protocol},
        defined in {STD 15}, {RFC 1157}, developed to manage {nodes}
        on an {IP} {network}.  SNMP is not limited to {TCP/IP}.  It
        can be used to manage and monitor all sorts of equipment
        including computers, {routers}, {wiring hubs}, {toasters} and
        {jukeboxes}.

        See also {Management Information Base}, {Simple Network
        Management Protocol version 2}.

        (1995-02-15)

Simple Network Management Protocol version 2

        <protocol> (SNMP v2) A revision of {Simple Network Management
        Protocol} (not just a new {MIB}) which includes improvements
        in the areas of performance, security, confidentiality, and
        manager-to-manager communications.

        The major components of SNMPv2 are defined in the following
        {RFC}s:

         {RFC 1089} - SNMP over Ethernet
         {RFC 1140} - IAB Official Protocol Standards
         {RFC 1155} - Structure and Identification of Management
                      Information for TCP/IP based internets
         {RFC 1156} (H) - Management Information Base Network
                          Management of TCP/IP based internets
         {RFC 1157} - A Simple Network Management Protocol
         {RFC 1158} - Management Information Base Network
                      Management of TCP/IP based internets: MIB-II
         {RFC 1161} (H) - SNMP over OSI
         {RFC 1187} - Bulk Table Retrieval with the SNMP
         {RFC 1212} - Concise MIB Definitions
         {RFC 1213} - Management Information Base for Network
                      Management of TCP/IP-based internets: MIB-II
         {RFC 1215} (I) - A Convention for Defining
                          Traps for use with the SNMP
         {RFC 1224} - Techniques for Managing
                      Asynchronously Generated Alerts
         {RFC 1270} (I) - SNMP Communication Services
         {RFC 1303} (I) - A Convention for Describing
                          SNMP-based Agents
         {RFC 1470} (I) - A Network Management Tool Catalog
         {RFC 1298} - SNMP over IPX
         {RFC 1418} - SNMP over OSI
         {RFC 1419} - SNMP over IPX
         {RFC 1441} - Introduction to SNMP v2
         {RFC 1442} - SMI For SNMP v2
         {RFC 1443} - Textual Conventions for SNMP v2
         {RFC 1444} - Conformance Statements for SNMP v2
         {RFC 1445} - Administrative Model for SNMP v2
         {RFC 1446} - Security Protocols for SNMP v2
         {RFC 1447} - Party MIB for SNMP v2
         {RFC 1448} - Protocol Operations for SNMP v2
         {RFC 1449} - Transport Mappings for SNMP v2
         {RFC 1450} - {MIB} for SNMP v2
         {RFC 1451} - Manager to Manger MIB
         {RFC 1452} - Coexistance between SNMP v1 and SNMP v2

        {FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/usenet/snmp-faq)}.

        {Introduction
        (http://www.gt-er.cg.org.br/documentacao/buffer/gerencia/faq1.html)}.

        {Cisco
        (http://www.cisco.com/cpropub/univ-src/ccdcp/data/doc/software/11_1/mib
/mover.htm)}.

        (1997-12-02)

Simple Network Paging Protocol

        <protocol> (SNPP) A standard for sending one- and two-way
        wireless messages to {pagers}.  In its simplest form, SNPP
        provides a simple way to make a link between the {Internet}
        and a {Telocator Alphanumeric input Protocol} (TAP) paging
        terminal.  SNPP is defined in {RFC 1861}.

        (1997-04-25)

simplex

        1. Used to describe a uni-directional data channel.

        Opposite: {duplex}.

        2. The {simplex method}.

simplex method

        An {algorithm} for solving numerical {constraint}s.

        [Details?]

        (1995-04-06)

SIMPL/I

        A {simulation} language implemented as a {PL/I}
        {preprocessor}.

        ["SIMPL/I (Simulation Language Based on PL/I).  Program
        Reference Manual", IBM SH19- 5060-0 (June 1972)].

        (1994-12-07)

SIMPL-T

        The base language for a family of languages and compilers.

        ["SIMPL-T, A Structured Programming Language", V.R. Basili,
        Paladin House 1976].

        (1994-12-07)

SIMSCRIPT

        A free-form, English-like general-purpose {simulation}
        language produced by Harry Markowitz et al of {Rand} Corp in
        1963.  It was implemented as a {Fortran} {preprocessor} on
        {IBM 7090} and was designed for large discrete simulations.
        It influenced {Simula}.  Later versions included {SIMSCRIPT
        I.5} and {SIMSCRIPT II.5}.

SIMSCRIPT I.5

        A version of {SIMSCRIPT} developed at {CACI} in 1965.  It
        produced {assembly language}.

SIMSCRIPT II.5

        Another version of {SIMSCRIPT} from {CACI}.

        ["SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat
        et al, CACI, 1973].

simship

        {simultaneous shipment}

SIMULA

        <language> SIMUlation LAnguage.

        See {Lund Simula}, {SIMULA 67}, {SIMULA I}.  See also
        {Association for SIMULA Users}, {C++SIM}, {FLEX}, {MODSIM},
        {SIMSCRIPT}.

        A simula-to-{C} {compiler} project is underway.  E-mail:
        Harald Thingelstad <harald.thingelstad@basalmed.uio.no>.

        {Usenet} newsgroup: {news:bit.listserv.simula}.

        (1995-03-29)

SIMULA 67

        <language> A version of {SIMULA I}?

        {Association for SIMULA Users}

        Simula a.s., Postboks 4403 - Torshov, N-0402 Oslo 4, Norway,
        versions for almost every computer.

        E-mail: Henry Islo <hio@helios.sunet.se>.

        {(ftp:/lund.se:/mac/misc/simula/)},
        {(ftp://ftp.fenk.wau.nl/pub/simula/compilers)},
        {(ftp://ftp.ifi.uio.no/cim/)}.

        ["Object-Oriented Programming with SIMULA", Bjorn Kirkerud,
        A-W 1989].

        ["Data Processing - Programming Languages - SIMULA", Swedish
        Standard SS 63 61 14 (1987), available through ANSI].

        [Difference from SIMULA I?]

        (1995-03-29)

SIMULA I

        <language> SIMUlation LAnguage.

        An extension to {ALGOL 60} for the {Univac 1107} designed in
        1962 by Kristen Nygaard and Ole-Johan Dahl and implemented in
        1964.  SIMULA I was designed for {discrete simulation}.  It
        introduced the {record} {class}, leading the way to {data
        abstraction} and {object-oriented programming} languages like
        {Smalltalk}.  It also featured {coroutines}.

        SIMULA's philosophy was the result of addressing the problems
        of describing complex systems for the purpose of simulating
        them.  This philosophy proved to be applicable for describing
        complex systems generally (not just for simulation) and so
        SIMULA is a general-purpose object-oriented application
        programming language which also has very good discrete event
        simulation capability.  Virtually all OOP products are derived
        in some manner from SIMULA.

        For a description of the evolution of SIMULA and therefore the
        fundamental concepts of OOP, see Dahl and Nygaard in ["History
        of Programming Languages".  Ed. R. W. Wexelblat.
        Addison-Wesley, 1981].

        (1995-03-29)

simulated annealing

        A technique which can be applied to any minimisation or
        learning process based on successive update steps (either
        random or {deterministic}) where the update step length is
        proportional to an arbitrarily set parameter which can play
        the role of a temperature.  Then, in analogy with the
        annealing of metals, the temperature is made high in the early
        stages of the process for faster minimisation or learning,
        then is reduced for greater stability.

Simulating Digital Systems

        FORTRAN-like language for describing computer
        logic design.  Sammet 1969, p.622.

simulation

        Attempting to predict aspects of the behaviour of some system
        by creating an approximate (mathematical) model of it.  This
        can be done by physical modelling, by writing a
        special-purpose computer program or using a more general
        simulation package, probably still aimed at a particular kind
        of simulation (e.g. structural engineering, fluid flow).
        Typical examples are aircraft flight simlators or electronic
        circuit simulators.  A great many simulation languages exist,
        e.g. {Simula}.

        See also {emulation}, {Markov chain}.

        {Usenet} newsgroup: {news:comp.simulation}.

        (1995-02-23)

SIMulation ANalysis

        <language, simulation> (SIMAN) A {simulation} language,
        especially for manufacturing systems, developed by C. Dennis
        Pegden in 1983.

        ["Introduction to Simulation using SIMAN", C.D. Pegden et al,
        McGraw-Hill 1990].

        (1999-01-13)

Simulation Language for Alternative Modeling

        <language> (SLAM) A {simulation} language descended from
        {GASP}.  Implemented as a {Fortran} {preprocessor}.

Simulation Oriented Language

        <language> (SOL) An {ALGOL} extension for {discrete
        simulation} by {Donald Knuth} and McNeley.

        ["SOL - A Symbolic Language for General Purpose System
        Simulation", D.E. Knuth et al, IEEE Trans Elec Comp,
        EC-13(4):401-408 (Aug 1964)].

        [Sammet 1969, p. 656].

        (1995-07-26)

Simultaneous Engineering Environment

        (SEE) A {CAE} framework from {DAZIX}.

        (1994-11-03)

Simultaneous Peripheral Operation On-Line

        <operating system, history> (SPOOL) Accessing {peripheral}
        devices with the help of an {off-line} {tape drive}.  The term
        was derived by {IBM} for use with the {IBM 360} {operating
        systems}.

        In the early days of computing (early 1960s), before
        {multitasking} was invented, computers (e.g. {IBM 704}) could
        run only one job at a time.  As peripheral devices such as
        {printers} or {card readers} were much slower than the {CPU},
        devoting the computer (the only computer in many cases) to
        controlling such devices was impractical.

        To free the CPU for useful work, the output was sent to a
        {magnetic tape} drive, which was much faster than a printer
        and much cheaper than a computer.  After the job was finished
        the tape was removed from the tape drive attached to the
        computer and mounted on a tape drive connected to a printer
        (such as the {IBM 1403}).  The printer could then print the
        data without holding up the computer.  Similarly, instead of
        inputting the program from the card reader it was first copied
        to a tape and the tape was read by the computer.

        (1999-01-12)

simultaneous shipment

        <programming> (simship) The release of international,
        {localised} versions of software at the same time, or within a
        short period of time of the original release.

        Major software publishers can release as many as 30 different
        localised versions within a month or two of the original
        version.  These products may have thousands of pages of
        {documentation}.

        (1999-06-09)

Simware, Inc.

        <company> The producers of {REXXWARE}.

        E-mail: <rexxware@simware.com>.

        Address: Ottawa, Canada.

        (1995-01-11)

SINA

        ["An Implementation of the Object-Oriented Concurrent
        Programming Language SINA", A. Tripathi et al, Soft Prac & Exp
        19(3):235-256 (1989)].

since time T equals minus infinity

        A long time ago; for as long as anyone can remember; at the
        time that some particular frob was first designed.  Usually
        the word "time" is omitted.  See also {time T}; contrast
        {epoch}.

Sinclair, Clive

        {Clive Sinclair}

Sinclair Radionics

        {Sinclair Research}

Sinclair Research

        <company> A British microelectronics developer and
        manufacturer.  Evolving from Sinclair Radionics in 1979,
        Sinclair Research was owned by Sir {Clive Sinclair}.  Sinclair
        Radionics produced electronic components and devices (such as
        calculators and pocket radios and televisions), but Sinclair
        Research began by producing some of the first {8-bit} home
        {microcomputers}.

        Sinclair produced five microcomputers from 1980 to 1987, all
        based on the {Zilog Z80} {microprocessor} (except for the
        {QL}, which used the {Motorola 68008} - a variant on the
        {68000}).  The 1K kit-build {ZX80}, introduced in 1980, was
        followed by the 1K {ZX81} (expandable to 16K) in 1981, the 16K
        (expandable to 48K) {ZX Spectrum} in 1982 (then superceded by
        two distinct 48K models and a 128K model in 1986) and the {QL}
        (Quantum Leap) in 1984.  A portable {laptop computer}, the
        {Z88}, was released in 1987 under the {Cambridge Computers}
        banner.

        Of them all, the ZX Spectrum was the best known, and it went
        on to become the most popular microcomputer of its time in the
        United Kingdom and in many other territories.  This was partly
        due to its ease of use, and also due to its enormous
        {software} catalogue, covering games, {word processing},
        music, {programming} and {graphics}.  Glorious
        "mine's-better-than-yours" battles were fought (and still are
        today) between owners of Spectrums and {Commodore 64}s over
        who had the best machine.

        Sir Clive's financial problems in the mid-80s led him to sell
        the rights to the Sinclair brand to {Amstrad} in April 1986.
        This led to further models of the Spectrum being released from
        1986 to 1988 and also an {IBM} {PC}-compatible based
        internally on Amstrad's own PC range.  Sir Clive was not
        involved with the production of these computers, and no
        computer with the Sinclair name has been produced since.

        {Home (http://www.sinclair-research.co.uk/)}.
        {Planet Sinclair (http://www.nvg.ntnu.no/sinclair/)}.
        {comp.sys.sinclair FAQ
        (http://www.kendalls.demon.co.uk/cssfaq/)}.

        (1998-12-09)

sine wave

        <mathematics> A waveform of a single constant frequency and
        amplitude that continues for all time.

        Compare {wavelet}.

        (1994-11-09)

single assignment

        If a variable is only assigned a value once then an instance
        of that variable is thereafter semantically equivalent to the
        value.  Thus a single assignment language is a {functional
        language}.

        See also {zero assignment}.

single-attached

        Connected to only one of the two rings of an {FDDI} network.
        This is the kind of connection normally used for a {host}
        computer, as opposed to {router}s and {concentrator}s which
        are normally "{dual-attached}".

        (1994-12-13)

Single Connection Attach

        <hardware> (SCA, "Single Connector Attachment") A non-standard
        type of {SCSI} connector, used mostly by {OEM}s, which carries
        both power and data on one 80-pin connector.  SCA SCSI drives
        tend to be cheaper but use with standard SCSI cables requires
        an adaptor and external termination.

        {(http://www.pcmech.com/sca-scsi.htm)}.

        (1999-02-16)

Single Connector Attachment

        {Single Connection Attach}

Single Document Interface

        <programming> (SDI) A limitation applying to an {application
        program} that only shows a single windows giving a view of one
        document at a time.

        The opposite is {Multiple Document Interface} (MDI).

        (1999-03-30)

Single Edge Contact

        <hardware> (SEC) The type of cartridge in which a {Pentium II}
        is packaged.

        [Other uses?]

        (1999-02-15)

Single Edge Contact Cartridge   
        
        <hardware> (SEC, SECC) The cased {daughterboard} housing
        {Intel}'s {Pentium II}, {Pentium III}, and {Xeon}
        {microprocessors}.
        
        A SECC fits into a {Slot 1} or {Slot 2} connector.

        [SECC 2?]

        (1999-08-05)

Single Edge Processor Package

        <hardware> (SEPP) The caseless {daughterboard} containing
        {Intel}'s {Celeron} {processor}.  A SEPP fits into a {Slot 1}
        connector.

        (1999-08-04)

Single Electron Tunneling

        <electronics> (SET) A New electrical standard for capacitance.

        SET devices can be used to construct circuits which process
        information by manipulating individual electrons.  SET devices
        are small, dissipate little power, and can detect exquisitely
        small quantities of charge.  The small size and low power
        dissipation of SET circuits makes them potentially useful for
        the information technology industry.

        (1999-01-06)

Single Electron Tunneling Technology

        <hardware> A {neural network} hardware concept based on
        {single electron tunneling}.  {Single electron tunneling
        transistors} have some properties which make them attractive
        for neural networks, among which their small size, low power
        consumption and potentially high speed.

        Simulations have been performed on some small circuits of SET
        transistors that exhibit functional properties similar to
        those required for neural networks.

        {(http://www.computer.org/conferen/proceed/mn96/ABSTRACT.HTM#125)}.

        [Proceedings of the Fifth International Conference on
        Microelectronics for Neural Networks and Fuzzy Systems
        (MicroNeuro '96).  Martijn J. Goossens, Chris J.M. Verhoeven,
        and Arthur H.M. van Roermund].

        (1999-01-06)

single ended

        <hardware> An electrical connection where one wire carries the
        signal and another wire or shield is connected to electrical
        ground.  This is in contrast to a {differential} connection
        where the second wire carries an inverted signal.

Single Image Random Dot Stereogram

        <graphics> (SIRDS, originally "autostereogram") A {stereogram}
        composed of (coloured) dots which when viewed correctly
        appears three-dimensional.  SIRDs were invented by
        Dr. Christoper Tyler, Associate Director of the
        Smith-Kettlewell Eye Research Institute in San Francisco
        (1999).

        {FAQ (http://www.cs.waikato.ac.nz/~singlis/sirds.html)}.
        {Nice pictures
        (http://www.eleves.ens.fr:8080/home/massimin/index.ang.html)}.
        {Picture Gallery (http://h2.ph.man.ac.uk/gareth/sirds.html)}.
        {Vern Hart's SIRDS Gallery (http://www.vern.com/)}.  {SGI
        Gallery (http://www.sgi.com/free/gallery.html)}.

        (1996-11-06)

single inheritance

        The property of an {object-oriented language} which restricts
        a sub-{class} to be derived from only one parent.  Opposite of
        {multiple inheritance}.

Single In-line Memory Module

        <storage> (SIMM) A small circuit board or substrate, typically
        about 10cm x 2cm, with {RAM} {integrated circuits} or die on
        one or both sides and a single row of pins along one long
        edge.  Several SIMMs are mounted with their substrates at
        right-angles to the main circuit board (the {motherboard}).
        This configuration allows greater packing density than direct
        mounting of, e.g. DIL ({dual in-line}) RAM packages on the
        motherboard.  In 1993 one SIMM typically held one or four
        megabytes, by early 1997 one could hold 8, 16, or 32 MB.

        (1997-01-05)

Single Inline Pin Package

        <hardware> (SIPP) An {integrated circuit} package with a
        single line of pins.

        Compare {Dual Inline Package}, {Single In-line Memory Module}.

        (1995-03-01)

Single Instruction Multiple Data

        {Single Instruction/Multiple Data}

Single Instruction/Multiple Data

        (SIMD) (Or "data parallel") The classification under {Flynn's
        taxonomy} for a {parallel processor} where many processing
        elements ({functional unit}s) perform the same operations on
        different data.  There is often a central controller which
        broadcasts the instruction stream to all the processing
        elements.

        Contrast {Multiple Instruction/Multiple Data}.

        (1994-11-04)

Single-line Digital Subscriber Line

        <communications, protocol> (SDSL, or Single-pair High Speed
        Digital Subscriber Line, S-HDSL) A form of {Digital Subscriber
        Line} similar to {HDSL} but providing {T1} or {E1} connections
        over a single {twisted-pair} copper line.

        (1998-05-18)

Single-pair High Speed Digital Subscriber Line

        {Single-line Digital Subscriber Line}

single quote

        <character> "'" {ASCII} character 39.

        Common names include single quote; quote; {ITU-T}: apostrophe.
        Rare: prime; glitch; tick; irk; pop; {INTERCAL}: spark;
        {ITU-T}: closing single quotation mark; {ITU-T}: acute accent.

        Single quote is used in {C} and derived languages to introduce
        a single character {literal value} which is represented
        internally by its ASCII code.  In the {Unix} {shells} and
        {Perl} single quote is used to delimit strings in which
        variable substitution is not performed (in contrast to
        {double-quote}-delimited strings).

        Single quote is often used in text for both open and close
        single quotation mark and apostrophe.  Typesetters use two
        different symbols - open has a tail going up, close and
        apostrophe have tails hanging down (like a raised {comma}).
        Some people use {back quote} (`) for open single quotation
        mark.

        (1998-04-04)

single sourcing

        <publication> Using a single original document set to generate
        {dead tree} and on-line {documentation}, and usually also
        on-line help.  In practice, it most often refers to a
        {FrameMaker} file set with {conditional text} which, when the
        conditions are set appropriately, allows you to create
        variants of the original document (e.g., for a product that
        runs on different {Unix} {platforms}) as well as for different
        media -- typically task-oriented on-line help to be accessed
        under {Microsoft Windows} or from a {web browser}, linear
        printed document, and {HTML} delivered via the {WWW} and/or
        {CD-ROM}.

singleton variable

        <programming> A {variable} which is only referred to once in a
        piece of code, probably because of a programming mistake.  To
        be useful, a variable must be set and read from, in that
        order.  If it is only referred to once then it cannot be both
        set and read.

        There are various exceptions.  {C}-like {assignment
        operators}, e.g. "x += y", read and set x and return its new
        value (they are abbreviations for "x = x+y", etc).  A
        {function} {argument} may be passed only for the sake of
        uniformity or to support future enhancements.  A good
        {compiler} or a {syntax} checker like {lint} should report
        singleton variables but also allow specific instances to be
        marked as deliberate by the programmer.

        (1997-12-20)

Single Virtual Storage

        {OS/VS2}

siod

        <language> (Scheme In One Defun or Scheme In One Day)
        A small {Scheme} implementation in {C} by George Carrette
        <gjc@world.std.com>, <gjc@mitech.com>.  SIOD is arranged as a
        set of subroutines that can be called from any main program
        for the purpose of introducing an interpreted extension
        language.  It compiles to 20 kbytes of executable
        ({VAX}/{VMS}).  {Lisp} calls {C} and C calls Lisp
        transparently.

        SIOD supports symbols, strings, {array}s, {hash coding}, file
        i/o (binary, text, seek), data save/restore in binary and
        text, interface to commercial {database}s such {Oracle} and
        {Digital} {RDB}.

        Version 3.0 runs on {VAX}/{VMS},{Unix}, {Sun3}, {Sun4},
        {Amiga}, {Macintosh}, {MIPS}, {Cray}, {ALPHA}/{VMS}, {Windows
        NT} and {OS/2}.  It can be compiled by most {ANSI C} compilers
        and {C++} compilers, e.g. {gcc} -Wall.

        {(ftp://world.std.com/pub/gjc/)},
        {(ftp://world.std.com/src/lisp/)}.

        {Usenet} newsgroup: {news:comp.lang.scheme}.

        (1994-02-18)

SIPB

        Student Information Processing Board, {MIT}.

        {(http://www.mit.edu:8001/afs/athena.mit.edu/user/r/e/rei/WWW/GAME/sipb
room.html)}

SIPLAN

        SIte PLANning computer language.  Interactive language for
        space planning.  "Formal Languages for Site Planning",
        C.I. Yessios in Spatial Synthesis for Computer-Aided Design,
        C. Eastman ed, Applied Science Publ 1976.

SIPP

        {Single Inline Pin Package}

Siprol

        Signal Processing Language.  A DSP language.

        ["SIPROL: A High Level Language for Digital Signal
        Processing", H. Gethoffer, Proc ICASSP-80, 1980,
        pp.1056-1059].

SIR

        Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

SIRDS

        {Single Image Random Dot Stereogram}

Siri

        An {object-oriented} {constraint language} using a single
        abstraction mechanism developed by Bruce Horn of {CMU} in
        1991.  Siri is a conceptual blend of {BETA} and {Bertrand}.
        It is similar to {Kaleidoscope}.

        ["Constraint Patterns as a Basis for Object-Oriented
        Constraint Programming", B. Horn, OOPSLA '92 (Sept 1992)].

        (1994-11-04)

SIRTS

        {Single Image Random Text Stereogram}.  (Or {ASCII}
        {stereogram}).

SISAL

        Streams and Iteration in a Single Assignment Language.

        A general-purpose {single assignment} {functional programming
        language} with {strict} semantics, automatic parallelisation
        and efficient {array}s.  Outputs a dataflow graph in {IF1}
        (Intermediary Form 1).  Derived from {VAL}, adds {recursion}
        and finite {stream}s.  {Pascal}-like syntax.  Designed to be a
        common high-level language for numerical programs on a variety
        of {multiprocessor}s.

        Implementations exist for {Cray X-MP}, {Cray Y-MP}, {Cray-2},
        {Sequent}, {Encore Alliant}, {dataflow} architectures,
        {transputer}s and {systolic array}s.

        Defined in 1983 by James McGraw et al, {Manchester
        University}, {Lawrence Livermore National Laboratory},
        {Colorado State University} and {DEC}.  Revised in 1985.
        First compiled implementation in 1986.  Performance superior
        to {C} and competitive with {FORTRAN}, combined with efficient
        and automatic parallelisation.

        Not to be confused with {SASL}.

        E-mail: John Feo <feo@sisal.llnl.gov>, David Cann
        <cann@lll-crg.llnl.gov>, Rod Oldehoeft <rro@cs.colostate.edu>.

        David C. Cann <cann@sisal.llnl.gov> has written an {Optimising
        SISAL Compiler (ftp://sisal.llnl.gov/pub/sisal)} (OSC) which
        attempts to make efficient use of parallel processors such as
        Crays.  Version 12.0, SISAL 1.2.

        ["A Report on the SISAL Language Project", J.T. Feo et al, J
        Parallel and Distrib Computing 10(4):349-366 (Dec 1990)].

sit

        {Stuffit}

SITBOL

        <language> A {SNOBOL4} {interpreter} for the {PDP-10}.

        ["SITBOL Version 3.0", J.F. Gimpel, TRS4D30b, Bell Labs,
        1973].

        (1997-09-14)

sitename

        {hostname}

sj

        <networking> The {country code} for Svalbard and Jan Mayen
        Islands.

        (1999-01-27)

sk

        <networking> The {country code} for Slovakia.

        (1999-01-27)

Skel-ML

        A parallel variant of {ML} using {skeleton}s being developed
        (April 1994) as part of Tore Bratvold's PhD in the Department
        of Computing and Electronic Engineering, Heriot-Watt
        University, Edinburgh, UK.  Programs are written in a subset
        of {Standard ML}, and parallelism is extracted from the use of
        certain {higher-order function}s.  The SkelML compiler uses
        profiling information together with skeleton performance
        models to distinguish useful from non-useful parallelism.  An
        important feature is the ability to perform transformations
        between skeletons to improve performance.  Skeletons currently
        supported are map, filter, fold, pipe (implicitly extracted
        from function application) and various combinations of these.

        See also {paraML}.

        E-mail: Tore A Bratvold <tore@cee.hw.ac.uk>.

Sketchpad

        A program that allowed users to draw on a screen with a {light
        pen}.  It supported constraints (e.g. drawing a constrained
        ellipse produced a circle).  It also had some {computer aided
        design} features (e.g. computing loads on beams).

        Sketchpad was the subject of {Ivan E. Sutherland}'s 1963 {MIT}
        PhD thesis, which opened the field of {computer graphics}.  It
        was the progenitor of computer drawing packages like {MacDraw}
        or {Adobe Illustrator}.  There is a film of Sketchpad in
        action.

        It solved {constraint}s using {value inference} and introduced
        the "{ring}" list structure.

        ["Sketchpad: A Man-Machine Graphical Communication System",
        I.e. Sutherland, MIT Lincoln Lab, TR 296 (Jan 1963)].

        [Sammet 1969, p. 678].

        (1995-02-14)

Skill

        A somewhat peculiar blend between {Franz-Lisp} and {C}, with a
        large set of various {CAD} primitives.  It is owned by
        {Cadence Design Systems} and has been used in their CAD
        frameworks since 1985.  It's an {extension language} to the
        CAD framework (in the same way that {Emacs-Lisp} extends {GNU
        Emacs}), enabling you to automate virtually everything that
        you can do manually in for example the graphic editor.  Skill
        accepts {C}-syntax, fun(a b), as well as {Lisp} syntax, (fun a
        b), but most users (including Cadence themselves) use the
        C-style.

        [Jonas Jarnestrom <etxjojm@eua.ericsson.se>].

        (1995-02-14)

Skim

        A {Scheme} implementation with {package}s and other
        enhancements by Alain Deutsch <deutsch@poly.polytechnique.fr>
        et al, France.

SkipJack

        <cryptography> An {encryption} {algorithm} created by the NSA
        (National Security Agency) which encrypts 64-bit blocks of
        data with an 80-bit key.  It is used in the {Clipper} chip, a
        {VLSI} device with an {ARM} processor core, which is intended
        to perform cryptographic operations while allowing the
        security agencies listen in.

        There are (apparently) two agencies, both of whom have to
        agree that there is a valid reason to decode a message.  Don't
        laugh, they are serious.

        [Algorithm?]

        (1995-12-07)

SKOL

        {FORTRAN} pre-processor for {COS} (Cray Operating System).

skolemisation

        A means of removing {quantifier}s from {first order logic}
        formulas.

        [Details?]

S-K reduction machine

        An {abstract machine} defined by Professor {David Turner} to
        evaluate {combinator} expressions represented as {binary
        graph}s.  Named after the two basic combinators, S and K.

skrog

        {scrog}

SKsh

        Steve Koren/Korn shell.  A {Unix} {ksh}-like {shell} which
        runs under {AmigaDos} by Steve Koren
        <koren@hpfcogv.fc.hp.com>.  SKsh provides a {Unix}-like
        environment but supports many {AmigaDos} features such as
        {resident command}s and {ARexx}.  Scripts can be written to
        run under either {ksh} or SKsh and many of the useful {Unix}
        commands such as {xargs}, {grep} and {find} are provided.
        Current version 2.1.

        {(ftp://hubcap.clemson.edu/pub/amiga/incom*/utils/SKsh021.lzh)}

        (1992-12-16)

SKU

        {stock-keeping unit}

skulker

        {prowler}

SL

        <processor> Features of some {Intel} processors, including the
        {Pentium}, for reducing power consumption.  These features
        operate at two levels: the {microprocessor} and the system.
        The processor can enter a low power state during
        non-{processor intensive} tasks (such as {word processing}),
        or a very low-power state when the computer is not in use
        ("sleep" mode).  At the system level, {system management mode}
        can slow down, suspend, or completely shut down various system
        components to save energy.

        (1995-05-06)

sl

        <networking> The {country code} for Sierra Leone.

        (1999-01-27)

SL5

        String and list processing language with expression-oriented
        syntax.  Coroutines.

        ["An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices
        12(4):40-50 (Apr 1977)].

slack

        1. <operating system> Internal fragmentation.  Space allocated
        to a disk file but not actually used to store useful
        information.

        2. <jargon> In the theology of the {Church of the SubGenius},
        a mystical substance or quality that is the prerequisite of
        all human happiness.

        Since {Unix} files are stored compactly, except for the
        unavoidable wastage in the last block or fragment, it might be
        said that "Unix has no slack".

        See {ha ha only serious}.

        (1995-03-01)

slackware

        <operating system> A distribution of the {Linux} {operating
        system} by Patrick Volkerding
        <volkerdi@mhd1.moorhead.msus.edu>, <volkerdi@ftp.cdrom.com>.

        {cdrom.com (ftp://ftp.cdrom.com/pub/linux/)}

        {FAQ
        (ftp://sunsite.unc.edu/pub/Linux/distributions/slackware/SLAKWARE.FAQ)}

        {Sunsite Linux archives
        (http://sunsite.unc.edu/pub/Linux/distributions/slackware/)}.

        {Sunsite mirrors
        (http://sunsite.unc.edu/pub/Linux/MIRRORS.html)}.

        (1995-03-01)

SLAM

        1. <language> {Simulation Language for Alternative
        Modeling}.

        2. A continuous simulation language.

        ["SLAM - A New Continuous Simulation Language",
        N.A. Wallington et al, in SCS Simulation Council Proc Series:
        Toward Real-Time Simulation (Languages, Models and Systems),
        R.E. Crosbie et al eds, 6(1):85-89 (Dec 1976)].

        (1995-03-03)

SLANG

        1. R.A. Sibley.  CACM 4(1):75-84 (Jan 1961).

        2. Set LANGuage.  Jastrzebowski, ca 1990.  C extension with
        set-theoretic data types and garbage collection.  "The SLANG
        Programming Language Reference Manual, Version 3.3",
        W. Jastrzebowski <wojtek@loml.math.yale.edu>, 1990.

        3. Structured LANGuage.  Michael Kessler, IBM.  A language
        based on structured programming macros for IBM 370 assembly
        language.  "Project RMAG: SLANG (Structured Language)
        Compiler", R.A. Magnuson, NIH-DCRT-DMB-SSS-UG105, NIH, DHEW,
        Bethesda, MD 20205 (1980).

        4. "SLANG: A Problem Solving Language for Continuous-Model
        Simulation and Optimisation", J.M. Thames, Proc 24th ACM Natl
        Conf 1969.

S-Lang

        A small but highly functional embedded {interpreter}.  S-Lang
        was a stack-based {postfix} language resembling {Forth} and
        {BC}/{DC} with limited support for {infix notation}.  Now it
        has a {C}-like infix syntax.  {Arrays}, stings, integers,
        {floating-point} and {autoloading} are all suported.  The
        editor {JED} embeds S-lang.

        E-mail: John E. Davis <davis@amy.tch.harvard.edu>.

        {(ftp://amy.tch.harvard.edu/)}

        Version 0.94 consists of an interpreter, documentation and
        examples.  Available under the {GNU Library General Public
        License}.  Ported to {MS-DOS}, {Unix}, {VMS}.  Must be
        compiled with large memory model on {MS-DOS}.  (1993-06-12).

slap on the side

        (Also called a {sidecar}, or abbreviated "SOTS").  A type of
        external expansion hardware marketed by computer manufacturers
        (e.g. {Commodore} for the {Amiga} 500/1000 series and {IBM} for
        the hideous failure called {IBM PCjr}).  Various SOTS boxes
        provided necessities such as memory, hard drive controllers,
        and conventional expansion slots.

slash

        <character> "/".  Common names include: stroke; {ITU-T}:
        slant; forward slash; oblique stroke.  Rare: diagonal;
        solidus; over; slak; virgule; {INTERCAL}: slat.

        Commonly used as the division {operator} in programming, and
        to separate the components in {Unix} {pathnames}, and hence
        also in {URL}s.  Also used to delimit {regular expressions} in
        several programs.

        (1996-09-24)

slashdot effect

        <jargon> An effect where a document on a {WWW} {server} is
        linked to from another, popular, site, with the resultant
        traffic overloading the server so that a connection cannot be
        made to it.  This is especially likely if the server is
        running {Microsoft IIS}.

        The term was coined by readers of the {Unix} advocacy {web
        site} {slashdot.org (http://slashdot.org/)}

        (1998-10-24)

slave tty

        (/dev/ttyp*) The half of a {pseudo-tty} which programs
        (e.g. getty) read from and write to as though it was an
        ordinary {serial line}.

SLD resolution

        Linear {resolution} with a selection function for definite
        sentences.  A definite sentence has exactly one positive
        literal in each clause and this literal is selected to be
        resolved upon, i.e.  replaced in the goal clause by the
        conjunction of negative literals which form the body of the
        clause.

        (1995-06-03)

sleep

        1. <operating system> To relinquish a claim (of a process on a
        {multitasking} system) for service; to indicate to the
        scheduler that a process may be deactivated until some given
        event occurs or a specified time delay elapses.

        2. In jargon, used very similarly to v. {block}; also in
        "sleep on", synonym with "block on".  Often used to indicate
        that the speaker has relinquished a demand for resources until
        some (possibly unspecified) external event: "They can't get
        the fix I've been asking for into the next release, so I'm
        going to sleep on it until the release, then start hassling
        them again."

        3. <hardware> To go into partial deactivation to save power.

        (1997-11-23)

SLIB

        {Scheme Library}

SLIM

        A VLSI language for translating DFA's into circuits.
        J.L. Hennessy, "SLIM: A Simulation and Implementation Language
        for VLSI Microcode", Lambda, Apr 1981, pp.20-28.

slim

        A small, derivative change (e.g. to code).

Slingshot

        <networking, business, tool, product, protocol> A {real time}
        financial server for the {Internet}.

        Slingshot allows the delivery of real time market data across
        the {Internet} and private {intranets} quickly, cheaply and
        securely.  The first beta-test version was released free to
        the Internet on 6 August 1996.  Slingshot allows any financial
        institution, regardless of size, to publish their rates and
        associated information to a global audience using standard
        Internet protocols and software.  The {real-time} data can be
        seamlessly integrated into any standard {World-Wide Web}
        application and thus combined with static text, database
        queries and even audio and video objects, to create services.

        The Slingshot protocol enables the delivery of other forms of
        real time data over the Internet, thus making Slingshot useful
        in industries as varied as manufacturing, betting, telemetry,
        weather, transport and medicine.

        {Home (http://www.slingshot.ie)}.

        E-mail: John Slattery <jslatter@quay.ie>.

        (1997-05-19)

SLIP

        1. {Serial Line Internet Protocol}.

        2. Symmetric LIst Processsor.  Early 1960's list processing
        subroutine package for {FORTRAN} by J. Weizenbaum.  Later also
        embedded in {MAD} and {ALGOL}.  ["Symmetric List Processor",
        J. Weizenbaum CACM 6:524-544(1963).  Sammet 1969, p.387].

SlipKnot

        A graphical {World-Wide Web} {browser} specifically designed
        for {Microsoft Windows} users who have {Unix} {shell account}s
        with their service providers.  Its primary feature is that it
        does not require {SLIP} or {PPP} or {TCP/IP} services.
        SlipKnot is distributed as restricted shareware, with a
        registration fee of $29.95 ($20 for individual users outside
        North America, Europe and Japan).

        Version: 1.0.

        {(http://www.interport.net/slipknot/slipknot.html)}

        E-mail: <slipknot@micromind.com>.

        (1994-12-01)

SLIPS

        "An Interpreter for SLIPS - An Applicative Language Based on
        Lambda-Calculus", V. Gehot et al, Comp Langs 11(1):1-14
        (1986).

SLiRP

        <networking, tool> A {SLIP emulator} by Danny Gasparovski,
        faster than {TIA}.

        Version: 0.95H 12 Sep 95.

        {Home (http://www.webcom.com/~llarrow/slirp.html)}

        (1995-09-15)

SLLIC

        <language> An intermediate language developed at {HP}.  An
        infinite-register version of the {Precision Architecture}
        {instruction set}?

        (1995-05-28)

slog

        {Prolog} to {Chez Scheme} {macro} translator by
        <dorai@cs.rice.edu>.  Slog relies on continuations.

        {(ftp://titan.rice.edu/public/slog.sh)}

Sloop

        "Parallel Programming in a Virtual Object Space", S. Lucco,
        SIGPLAN Notices 22(12):26-34 (OOPSLA '87) (Dec 1987).

slop

        <jargon> 1. A one-sided {fudge factor}, that is, an allowance
        for error but in only one of two directions.  For example, if
        you need a piece of wire 10 feet long and have to guess when
        you cut it, you make very sure to cut it too long, by a large
        amount if necessary, rather than too short by even a little
        bit, because you can always cut off the slop but you can't
        paste it back on again.  When discrete quantities are
        involved, slop is often introduced to avoid the possibility of
        being on the losing side of a {fencepost error}.

        2. The percentage of "extra" code generated by a compiler over
        the size of equivalent {assembly code} produced by
        {hand-hacking}; i.e. the space (or maybe time) you lose because
        you didn't do it yourself.  This number is often used as a
        measure of the quality of a compiler; slop below 5% is very
        good, and 10% is usually acceptable.  Modern compilers,
        especially on {RISC}s, may actually have *negative* slop; that
        is, they may generate better code than humans.  This is one of
        the reasons assembler programming is becoming less common.

        (1995-05-28)

slopsucker

        /slop'suhk-r/ A lowest-priority task that waits around until
        everything else has "had its fill" of machine resources.  Only
        when the machine would otherwise be idle is the task allowed
        to "suck up the slop".  Also called a "hungry puppy" or
        "bottom feeder".  One common variety of slopsucker hunts for
        large prime numbers.  Compare {background}.

Slot 1

        <hardware, standard> The physical and electrical specification
        for the connector used by some of {Intel}'s {microprocessor}
        cards, currently (August 1999) the {SEPP} {Celeron} and the
        {SECC} {Pentium II}.
        
        Slot 1 is a departure from the square {ZIF} {PGA}/{SPGA}
        sockets used by {Pentium} and earlier processors, the
        processor being mounted on a card, with a 242-lead
        edge-connector.

        The Slot 1 specification allows for higher {bus rates} than
        {Socket 7}.  Slot 1 motherboards use the {GTL+} {bus
        protocol}.

        See also {Slot 2}, {Slot A}.

        [bus rates?]

        (1999-08-04)

Slot 2

        <hardware, standard> A physical and electrical specification
        for the 330-lead edge-connector used by some of {Intel}'s
        {microprocessor} cards, currently (August 1999) the {SECC}
        {Pentium III}/{Xeon}.

        Slot 2 is intended for use in high end multi-processor
        {workstations} and {servers}.

        See also {Slot A}, {Slot 1}.

        [Multi processor support?]
        
        (1999-08-04)

Slot A

        <hardware> The physical and electrical specification for the
        edge-connector used by {AMD}'s {Athlon} processor.

        The connector allows for a higher {bus rate} than {Socket 7}
        or {Super 7}.  Slot A motherboards use {Compaq}'s {EV6} {bus
        protocol}.  Slot A is mechanically compatible but electrically
        incompatible with {Intel}'s {Slot 1}.

        (1999-08-05)

slurp

        To read a large data file entirely into {core} before working
        on it.  This may be contrasted with the strategy of reading a
        small piece at a time, processing it, and then reading the
        next piece.  "This program slurps in a 1K-by-1K matrix and
        does an FFT."  See also {sponge}.

sm

        <networking> The {country code} for San Marino.

        (1999-01-27)

smail

        {snail-mail}

SMALGOL

        SMall ALGOL.

        A subset of {ALGOL 60}.

        ["SMALGOL-61", G.A. Bachelor et al CACM 4(11):499-502 (Nov
        1961)].

        [Sammet 1969].

        (1995-01-31)

SMALL

        1. Functional, lazy, untyped.

        ["SMALL - A Small Interactive Functional System",
        L. Augustsson, TR 28, U Goteborg and Chalmers U, 1986].

        2. A {toy language} used to illustrate {denotational
        semantics}.

        ["The Denotational Description of Programming Languages",
        M.J.C. Gordon, Springer 1979].

Small-C

        A subset of {C}.  The original compiler, written in {C} by Ron
        Cain, appeared in Dr. Dobb's Journal.  James E. Hendrix
        improved and extended the original compiler and published "The
        Small-C Handbook".  Both these compilers produced {8080}
        {assembly code}.

        A Small-C compiler based on {RatC} produced {6502} {assembly
        code} for the {BBC Microcomputer}.  It was written in Small-C
        and {bootstrap}ped using {Zorland C} on an {Amstrad PC1512}
        under {MS-DOS} 3.2, then transferred onto a {BBC Micro} using
        {Kermit}.  The compiler can be used to cross-compile {6502}
        code from an {MS-DOS} host, or as a {resident} Small-C
        compiler on a BBC Micro.  It runs on {68000}, {6809}, {VAX},
        {8080}, {BBC Micro} and {Zilog Z80}.

        Posted to comp.sources.unix volume 5.

        {(ftp://apple.com/ArchiveVol1/Unix_lang)}

        ["Small-C"?, Ron Cain, Dr. Dobb's Journal, May 1980, Dec
        1982?]

        ["The Small-C Handbook," James Hendrix, Reston 1984, ISBN
        0-8359-7012-4].

        (1989-01-05)

Small Computer System Interface

        <hardware, standard> (SCSI) /skuh'zee/, /sek'si/ A
        processor-independent standard for system-level interfacing
        between a computer and intelligent devices including {hard
        disks}, {floppy disks}, {CD-ROM}, {printers}, {scanners}, and
        many more.  SCSI-1 can connect up to seven devices to a single
        {SCSI adaptor} (or "host adaptor") on the computer's bus.

        SCSI transfers eight bits in parallel (it is an eight-bit bus,
        but see {Wide SCSI}) and can operate in either {asynchronous}
        or {synchronous} modes.  The synchronous transfer rate is up
        to 5MB/s.  There must be at least one {target} and one
        {initiator} on the SCSI {bus}.

        SCSI connections normally use "{single ended}" drivers as
        opposed to {differential drivers}.  Single ended SCSI can
        suport up to six metres of cable.  Differential can support up
        to 25 metres of cable.

        A problem with SCSI is the large number of different
        connectors allowed.  Nowadays the trend is towards a 68-pin
        {miniature D-type} or "high density" connector (HD68) for
        {Wide SCSI} and a 50-pin version of the same connector (HD50)
        for 8-bit SCSI (Type 1-4, pin pitch 1.27 mm x 2.45 mm).
        50-pin {ribbon cable} connectors are also popular for internal
        wiring (Type 5, pin pitch 2.54 mm x 2.54 mm).  {Apple
        Computer} used a 25-pin connector on the {Macintosh} computer
        but this connector causes problems with high-speed equipment.

        SCSI was developed by {Shugart Associates}, which later became
        {Seagate}.  SCSI was originally called SASI for "Shugart
        Associates System Interface" before it became a standard.
        Original SCSI implementations were highly incompatible with
        each other.

        The original standard is now called "SCSI-1" to distinguish it
        from {SCSI-2} and {SCSI-3} which include specifications of
        {Wide SCSI} (a 16-bit bus) and {Fast SCSI} (10 MB/s transfer).

        SCSI-1 has been standardised as {ANSI} X3.131-1986 and
        {ISO}/{IEC} 9316.

        {ASPI} is a standard {Microsoft Windows} interface to SCSI
        devices.

        {Usenet} newsgroup: {news:comp.periphs.scsi}.

        {(news:comp.periphs.scsi)}

        ["System" or "Systems"?]

        (1999-03-30)

small-office/home-office

        (SoHo) A term describing the market for certain computer goods.

        (1995-01-11)

Small Outline DIMM

        <storage> (SO-DIMM) A kind of {DIMM} with 72 pins as opposed
        to the 168 pins regular DIMMs have.  Being half the size of
        the regular DIMM, SO-DIMMs are often used in {notebook
        computers}.

        (1996-04-19)

Smalltalk

        <language> The pioneering {object-oriented programming} system
        developed by the Software Concepts Group, led by {Alan Kay},
        at {Xerox PARC} in 1972.  It includes a language (usually
        interpreted), a programming environment, and an extensive
        object library.

        Smalltalk took the concepts of {class} and {message} from
        {Simula-67} and made them all-pervasive.  Innovations included
        the {bitmap display}, windowing system and use of a {mouse}.

        The syntax is very simple.  The fundamental construction is to
        send a message to an {object}:

                object message

        or with extra parameters

                object message: param1 secondArg: param2 .. nthArg: paramN

        where "secondArg:" etc. are considered to be part of the
        message name.

        Two pseudo-variables are defined: "self" - the receiver of the
        current message and "super" - an object of the current class's
        {superclass}.  Smalltalk does not have {multiple inheritance}
        so each class can have at most one superclass.

        Early versions: Smalltalk-72, Smalltalk-74, Smalltalk-76
        (inheritance taken from Simula, and concurrency), and
        Smalltalk-78, {Smalltalk-80}.  Other versions: {Little
        Smalltalk}, {GNU Smalltalk}, {Smalltalk/V}.

        See also {International Smalltalk Association}, {Kamin's
        interpreters}.

        {UIUC Smalltalk archive (http://st-www.cs.uiuc.edu/)}.
        {FAQ (http://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ/)}.

        {Usenet} newsgroup: {news:comp.smalltalk}.

        ["The Smalltalk-76 Programming System Design and
        Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp. 9-16].

        (1995-02-14)

Smalltalk-80

        ["Smalltalk-80: The Language and Its Implementation" ("The
        Blue Book"), Adele Goldberg et al, A-W 1983].

        [BYTE 6(8) (Aug 1981)].

        {(ftp://st.cs.uiuc.edu/pub/ISA)},
        {(ftp://st.cs.uiuc.edu/pub/MANCHESTER)},
        {(ftp://prep.ai.mit.edu/pub/gnu)}.

        Mail server: goodies-lib@r5.cs.man.ac.uk.

Smalltalk/V

        The first widely available version of {Smalltalk}, developed
        by {Digitalk} in 1986 for {IBM PC} and {Macintosh}.

        (1995-02-14)

SmallVDM

        <tool>

        ["SmallVDM: An Environment for Formal Specification and
        Prototyping in Smalltalk", in Object Oriented Specification
        Case Studies, K. Lano et al eds, P-H 1993].

        (1996-04-20)

SMALLWORLD

        <legal> A trademark of {Smallworldwide
        Plc. (http://www.smallworld.co.uk/)}.

        (1999-08-26)

SmallWorld

        <language> An {object-oriented} language.

        ["SW 2 - An Object-based Programming Environment", M.R. Laff
        et al, IBM TJWRC, 1985].

        (1996-04-20)

Smarandache logic

        {neutrosophic logic}

SMART

        For {MS-DOS}?

smart

        1. <programming> Said of a program that does the {Right Thing}
        in a wide variety of complicated circumstances.  There is a
        difference between calling a program smart and calling it
        intelligent; in particular, there do not exist any intelligent
        programs (yet - see {AI-complete}).

        Compare {robust} (smart programs can be {brittle}).

        2. <hardware> Incorporating some kind of digital electronics.

        (1995-03-28)

Smart Battery Data

        <hardware, protocol> (SBD) A method to monitor a rechargeable
        battery pack, initiated by {Duracell} and {Intel}.  An special
        {IC} in the battery pack monitors the battery and reports
        information to the {SMBus}.  This information might include:
        type, model number, manufacturer, characteristics, discharge
        rate, predicted remaining capacity, almost-discharged alarm so
        that the PC can shut down gracefully; temperature and voltage
        to provide safe fast-charging.

        {Smart Battery System Implementers Forum
        (http://www.sbs-forum.org/)}.
        
        (1999-08-08)

smart card

        Any plastic card (like a credit card) with an embedded
        {integrated circuit} for storing information.

        Smart cards are being incorporated into soldier's dog-tags and
        used to store hospital patients' medical records.  This way
        they are always instantly accessible.

        Other uses are as a form of token in banking systems.  You
        could store electronic money on the card or less valuable
        tokens such as those given away by petrol companies which you
        collect to exchange for free gifts at a later date.  The idea
        being that one smart card is easier to carry around than a
        multitude of paper tokens.

        {news:alt.technology.smartcards}

        (1995-01-06)

Smartdrive

        <storage, product> A {Microsoft} {MS DOS} {disk cache} program
        to speed up disk access.

        For most users, a 1MB cache is sufficient.  Devoting more
        memory to the cache offers diminishing returns, since the
        additional cache hits become fewer (and the extra memory could
        be better used to reduce {swapping}).

        Typing SMARTDRV /S at a DOS prompt shows the cache size, a
        hit-and-miss report, and information about which drives are
        being cached.  The hit-and-miss statistics are crucial for
        gauging the effectiveness of SmartDrive settings.  A score in
        the high 80s shows that SmartDrive is well configured.  Run
        SMARTDRV /S several times during a Windows session and note
        the-hit-and-miss figures each time.  If your percentage
        usually falls below 80 percent, you should consider increasing
        the cache size.  You can edit the SMARTDRV line in your
        {AUTOEXEC.BAT} file to increase both the InitCacheSize and the
        WinCacheSize parameters.

        SmartDrive Monitor is an undocumented Windows program that
        comes with DOS 6.0 for logging and controling the cache.

        (1995-11-22)

SMARTdrv

        {Smartdrive}

smart terminal

        {intelligent terminal}

smash case

        {case sensitivity}

smash sum

        {coalesced sum}

smash the stack

        <jargon> In {C} programming, to corrupt the execution stack by
        writing past the end of a local array or other data structure.
        Code that smashes the stack can cause a return from the
        routine to jump to a random address, resulting in insidious
        data-dependent {bug}s.

        Variants include "trash" the stack, {scribble} the stack,
        {mangle} the stack.

        See {spam}; see also {aliasing bug}, {fandango on core},
        {memory leak}, {memory smash}, {precedence lossage}, {overrun
        screw}.

        (1995-03-16)

SMB

        1. <protocol> {Server Message Block}.

        2. <hardware, protocol> {System Management Bus}.

        (1999-08-08)

smbclient

        {Samba}

smblib

        {Samba}

SMBus

        {System Management Bus}

SMCC

        {Sun Microsystems} Computer Corporation.

SMDS

        {Switched Multimegabit Data Service}

SMG

        Screen Management Guidelines.  A {VMS} package of run-time
        library routines providing windows on {DEC} {VT100} terminals.

SMI

        {Structure of Management Information}

SMIL

        Machine language for a Swedish computer.
        {(ftp://ftp.wustl.edu/mirrors/info-mac/lang/smil-emulator.hqx)}.

smiley

        {emoticon}

S-MIME

        {Secure Multipurpose Internet Mail Extensions}

SML

        1. {Standard ML}.

        2. Small Machine Language.  Barnes, ICI 1969.  Real-time
        language, an ALGOL variant, and the predecessor of RTL.  "SML
        User's Guide", J.G.P.  Barnes, ICI, TR JGPB/69/35 (1969).

SML#

        An extension of SML/NJ with polymorphic field selection and
        nondestructive field update.  "A Compilation Method for
        ML-style Polymorphic Record Calculi", A. Ohori, POPL 1992.

        {(ftp://ftp.cis.upenn.edu/pub/sml#/)}

sml2c

        A Standard ML to C compiler.  sml2c is a batch compiler and
        compiles only module-level declarations, i.e. signatures,
        structures and functors.  It provides the same pervasive
        environment for the compilation of these programs as SML/NJ.
        As a result, module-level programs that run on SML/NJ can be
        compiled by sml2c without any changes.  Based on SML/NJ
        version 0.67 and shares front end and most of its run-time
        system, but does not support SML/NJ style debugging and
        profiling.

        School of Computer Science, Carnegie Mellon University

        {(ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c/sml2c.tar.Z)}.
        {Linux
        (ftp://ftp.dcs.glasgow.ac.uk/pub/linux/smlnj-0.82-linux.tar.Z)}.

        conformance:    superset
                + first-class continuations,
                + asynchronous signal handling
                + separate compilation
                + freeze and restart programs

        ports: IBM-RT Decstation3100 Omron-Luna-88k Sun-3 Sun-4
        386(Mach)

        portability:    easy, easier than SML/NJ

        E-mail: <david.tarditi@cs.cmu.edu>, <peter.lee@cs.cmu.edu>

        (1991-06-27)

SML/NJ

        {Standard ML of New Jersey}

SMM

        {System Management Mode}

SMNP

        Do you mean "{SNMP}"?  If not, please tell me.

smoke

        1. To {crash} or blow up, usually spectacularly. "The new
        version smoked, just like the last one."  Used for both
        hardware (where it often describes an actual physical event),
        and software (where it's merely colourful).

        2. [Automotive slang] To be conspicuously fast.  "That
        processor really smokes."  Compare {magic smoke}.

smoke and mirrors

        Marketing deceptions.  The term is mainstream in this general
        sense.  Among hackers it's strongly associated with bogus
        demos and crocked {benchmarks} (see also {MIPS},
        {machoflops}).  "They claim their new box cranks 50 MIPS for
        under $5000, but didn't specify the instruction mix - sounds
        like smoke and mirrors to me."  The phrase has been said to
        derive from carnie slang for magic acts and "freak show"
        displays that depend on "trompe l"oeil' effects, but also
        calls to mind the fierce Aztec god Tezcatlipoca (lit. "Smoking
        Mirror") for whom the hearts of huge numbers of human
        sacrificial victims were regularly cut out.  Upon hearing
        about a rigged demo or yet another round of fantasy-based
        marketing promises, hackers often feel analogously
        disheartened.

smoke-emitting diode

        <humour, electronics> (From "{light-emitting diode}") An
        incorrectly connected {diode}, probably a {light-emitting
        diode}, in the process of losing its {magic smoke} and
        becoming a {friode}.

        See also {LER}.

        (1996-04-28)

smoke test

        1. A rudimentary form of testing applied to electronic
        equipment following repair or reconfiguration, in which power
        is applied and the tester checks for sparks, smoke, or other
        dramatic signs of fundamental failure.  See {magic smoke}.

        2. By extension, the first run of a piece of software after
        construction or a critical change.  See and compare {reality
        check}.

        There is an interesting semi-parallel to this term among
        typographers and printers: When new typefaces are being
        punch-cut by hand, a "smoke test" (hold the letter in candle
        smoke, then press it onto paper) is used to check out new
        dies.

smoking clover

        [ITS] A {display hack} originally due to Bill Gosper.  Many
        convergent lines are drawn on a colour monitor in {AOS} mode
        (so that every pixel struck has its colour incremented).  The
        lines all have one endpoint in the middle of the screen; the
        other endpoints are spaced one pixel apart around the
        perimeter of a large square.  The colour map is then
        repeatedly rotated.  This results in a striking, rainbow-hued,
        shimmering four-leaf clover.  Gosper joked about keeping it
        hidden from the FDA (the US's Food and Drug Administration)
        lest its hallucinogenic properties cause it to be banned.

SMoLCS

        Specification metalanguage used for a formal definition of
        Ada.  "An Introduction to the SMoLCS Methodology",
        E. Astesiano, U Genova 1986.

SMOP

        /S-M-O-P/ [Simple (or Small) Matter of Programming] 1. A piece
        of code, not yet written, whose anticipated length is
        significantly greater than its complexity.  Used to refer to a
        program that could obviously be written, but is not worth the
        trouble.  Also used ironically to imply that a difficult
        problem can be easily solved because a program can be written
        to do it; the irony is that it is very clear that writing such
        a program will be a great deal of work.  "It's easy to enhance
        a FORTRAN compiler to compile COBOL as well; it's just an
        SMOP."  2. Often used ironically by the intended victim when a
        suggestion for a program is made which seems easy to the
        suggester, but is obviously (to the victim) a lot of work.

SMP

        1. {Symbol Manipulation Program}.

        2. <computer, parallel> {symmetric multiprocessing}.

        (1995-03-19)

SMPT

        Do you mean {SMTP}?

SMS

        1. <messaging> {Short Message Service}.

        2. <storage> {Storage Management Services}.

        3. <operating system> {System Management Server}.

        (1999-05-02)

SMT

        {Station Management}

SMTP

        {Simple Mail Transfer Protocol}

smurf

        <jargon> /smerf/ (From the {news:soc.motss} {Usenet}
        newsgroup, after some obnoxiously gooey cartoon characters) A
        newsgroup regular with a habitual style that is irreverent,
        silly, and cute.  Like many other hackish terms for people,
        this one may be praise or insult depending on who uses it.  In
        general, being referred to as a smurf is probably not going to
        make your day unless you've previously adopted the label
        yourself in a spirit of irony.

        Compare {old fart}.

        (1995-10-25)

sn

        <networking> The {country code} for Senegal.

        (1999-01-27)

SNA

        {Systems Network Architecture}

snacc

        <tool> (Sample Neufeld {ASN.1} to {C/C++} Compiler) A program
        by Mike Sample <msample@opentext.com> which compiles 1990
        {ASN.1} data structures (including some {macros}) into {C},
        {C++} or type tables.  The generated {C/C++} includes a .h
        file with the equivalent data struct and a .c/.C file for the
        {BER} encode and decode, print and free routines.

        snacc includes the compiler, run-time BER libraries, and
        utility programs.  snacc is compiled under {GNU} {General
        Public License}.  It requires {yacc} or {bison}, {lex} or
        {flex}, and {cc} (ANSI or non-ANSI).

        ITU TS X.208/ISO 8824.

        Latest version as of 1993-07-12: 1.1.

        {Home
        (http://www.fokus.gmd.de/ovma/freeware/snacc/entry.html)}.

        E-mail: Barry Brachman <brachman@cs.ubc.ca> or
        <snacc-bugs@cs.ubc.ca>.

        [Michael Sample and Gerald Neufeld, "Implementing Efficient
        Encoders and Decoders for Network Data Representations", IEEE
        INFOCOM '93 Proceedings, Vol 3, pp. 1143-1153, Mar 1993].

        [Michael Sample, "How Fast Can ASN.1 Encoding Rules Go?",
        M.Sc. Thesis, University of British Columbia, Apr 1993].

        (1998-08-09)

snaf

        {chad}

SNAFU principle

        /sna'foo prin'si-pl/ [WWII Army acronym for "Situation Normal:
        All Fucked Up"] "True communication is possible only between
        equals, because inferiors are more consistently rewarded for
        telling their superiors pleasant lies than for telling the
        truth." - a central tenet of {Discordianism}, often invoked
        by hackers to explain why authoritarian hierarchies screw up
        so reliably and systematically.  The effect of the SNAFU
        principle is a progressive disconnection of decision-makers
        from reality.  This lightly adapted version of a fable dating
        back to the early 1960s illustrates the phenomenon perfectly:

         In the beginning was the plan,
               and then the specification;
         And the plan was without form,
               and the specification was void.

         And darkness
               was on the faces of the implementors thereof;
         And they spake unto their leader,
               saying:
         "It is a crock of shit,
               and smells as of a sewer."

         And the leader took pity on them,
               and spoke to the project leader:
         "It is a crock of excrement,
               and none may abide the odor thereof."

         And the project leader
               spake unto his section head, saying:
         "It is a container of excrement,
               and it is very strong, such that none may abide it."

         The section head then hurried to his department manager,
               and informed him thus:
         "It is a vessel of fertilizer,
               and none may abide its strength."

         The department manager carried these words
              to his general manager,
         and spoke unto him
              saying:
         "It containeth that which aideth the growth of plants,
              and it is very strong."

         And so it was that the general manager rejoiced
              and delivered the good news unto the Vice President.
         "It promoteth growth,
              and it is very powerful."

         The Vice President rushed to the President's side,
              and joyously exclaimed:
         "This powerful new software product
              will promote the growth of the company!"

         And the President looked upon the product,
              and saw that it was very good.

        After the subsequent disaster, the {suit}s protect themselves
        by saying "I was misinformed!", and the implementors are
        demoted or fired.

snail mail

        <messaging> (Or "snailmail", "smail" from "US Mail" via
        "USnail"; "paper mail").  Bits of {dead tree} sent via the
        postal service as opposed to {electronic mail}.  One's postal
        address is, correspondingly, a "snail (mail) address".  There
        have even been parody USnail posters and stamps made.

        The variant "paper-net" is a hackish way of referring to the
        postal service, comparing it to a very slow, low-reliability
        {network}.  {Sig blocks} sometimes include a "Paper-Net:"
        header just before the sender's postal address; common
        variants of this are "Papernet" and "P-Net".  Note that the
        standard {netiquette} guidelines discourage this practice as a
        waste of bandwidth, since netters are quite unlikely to
        casually use postal addresses and if they really wanted your
        {snail mail} address they could always ask for it by e-mail.

        Compare {voice-net}, {sneakernet}, {P-mail}.

        (1995-01-31)

SNAP

        1. Early (IBM 360?) interpreted text-processing language for
        beginners, close to basic English.  ["Computer Programming in
        English", M.P. Barnett, Harcourt Brace 1969].

        2. ["Some Proposals for SNAP, A Language with Formal Macro
        Facilities", R.B. Napper, Computer J 10(3):231-243 (1967)].
        [same as 1?]

        3. To replace a pointer to a pointer with a direct pointer; to
        replace an old address with the forwarding address found
        there.  If you telephone the main number for an institution
        and ask for a particular person by name, the operator may tell
        you that person's extension before connecting you, in the
        hopes that you will "snap your pointer" and dial direct next
        time.  The underlying metaphor may be that of a rubber band
        stretched through a number of intermediate points; if you
        remove all the thumbtacks in the middle, it snaps into a
        straight line from first to last.  See {chase pointers}.

        Often, the behaviour of a {trampoline} is to perform an error
        check once and then snap the pointer that invoked it so as
        henceforth to bypass the trampoline (and its one-shot error
        check).  In this context one also speaks of "snapping links".
        For example, in a {Lisp} implementation, a function interface
        trampoline might check to make sure that the caller is passing
        the correct number of arguments; if it is, and if the caller
        and the callee are both compiled, then snapping the link
        allows that particular path to use a direct procedure-call
        instruction with no further overhead.

Snappy

        {Snappy Video Snapshot}

Snappy Video Snapshot

        <hardware> (registered trademark) A {frame grabber} for the
        {IBM PC} designed and marketed by {Play, Inc.}.

        (1997-07-11)

snarf

        /snarf/ 1. To grab, especially to grab a large document or
        file for the purpose of using it with or without the author's
        permission.

        See also {BLT}.

        2. ({Unix}) To fetch a file or set of files across a network.

        See also {blast}.

        3. To acquire, with little concern for legal forms or
        politesse (but not quite by stealing).  "They were giving away
        samples, so I snarfed a bunch of them."

        4. Synonym for {slurp}.  "This program starts by snarfing the
        entire database into core."

        5. ({GEnie}) To spray food or {programming fluid}s due to
        laughing at the wrong moment.  This sense appears to be
        widespread among mundane teenagers - ESR.

        6. This term was mainstream in the late 1960s, meaning "to eat
        piggishly".  It may still have this connotation in context.

        7. A creature on the Thundercats, fond of eating, usually
        covertly.

        (1995-02-21)

snarf & barf

        /snarf'n-barf`/ Under a {WIMP} environment, the act of
        grabbing a region of text and then stuffing the contents of
        that region into another region (or the same one) to avoid
        retyping a command line.  In the late 1960s, this was a
        mainstream expression for an "eat now, regret it later" cheap
        restaurant expedition.

        (1994-11-04)

snarf down

        To {snarf}, with the connotation of absorbing, processing, or
        understanding.  "I'll snarf down the latest version of the
        {nethack} user's guide - it's been a while since I last
        played."

        (1994-11-04)

snark

        [Lewis Carroll, via the Michigan Terminal System] 1. A system
        failure.  When a user's process bombed, the operator would get
        the message "Help, Help, Snark in MTS!"

        2. More generally, any kind of unexplained or threatening
        event on a computer (especially if it might be a boojum).
        Often used to refer to an event or a log file entry that might
        indicate an attempted security violation.  See {snivitz}.

        3. UUCP name of snark.thyrsus.com, home site of the Hacker
        {Jargon File} versions 2.*.*.

sneakernet

        /snee'ker-net/ Term used (generally with ironic intent) for
        transfer of electronic information by physically carrying
        tape, disks, or some other media from one machine to another.
        "Never underestimate the bandwidth of a station wagon filled
        with magtape, or a 747 filled with CD-ROMs."  Also called
        "Tennis-Net", "Armpit-Net", "Floppy-Net", "Shoenet",
        "walknet".

sneck

        <jargon> The sound made by {deboursification}, according to
        Sam Spade anti-{spam} software.

        (1999-09-15)

snert

        <abuse> A derogatory term commonly used on the {Internet}
        {ECHO} {BBS}, echonyc.com, meaning to "make overtures of a
        sexual nature".  It implies terminal cluelessness.

        (1995-03-01)

SNI

        {Siemens Nixdorf Informationssteme, AG}

Sniff

        A {C++}/{C} programming environment providing browsing,
        cross-referencing, design visualisation, documentation and
        editing support.  Developed by UBS Switzerland and marketed by
        takeFive Salzburg.

sniff

        {poll}

sniffer

        <networking, tool> A network monitoring tool that can capture
        data {packet}s and decode them to show {protocol} data.

        (1995-03-28)

snivitz

        <jargon> /sniv'itz/ A hiccup in hardware or software; a small,
        transient problem of unknown origin (less serious than a
        {snark}).

        Compare {glitch}.

        (1995-03-28)

SNMP

        {Simple Network Management Protocol}

SNMP agent

        <networking> A software process that responds to queries using
        the {Simple Network Management Protocol} to provide status and
        statistics about a network {node}.

        (1995-11-11)

SNMPv2

        {Simple Network Management Protocol version 2}

SNOBOL

        {String Oriented Symbolic Language}

SNOBOL2

        A {SNOBOL} variant which existed only briefly.  It featured
        built-in functions, but not programmer-defined ones.

        ["SNOBOL2", D.J. Farber, R.E. Griswold and I.P. Polonsky, TR
        Bell Labs, Apr 1964].

SNOBOL3

        {SNOBOL} with user-defined functions.  Written in 1965.  The
        SNOBOL 6.3 compiler for the {PDP-6} and {PDP-10} was written
        in SNOBOL.

        ["The SNOBOL3 Programming Language", D.J. Farber et al, Bell
        Sys Tech J 45(6):895-944 (Jul 1966)].

        (1994-11-04)

SNOBOL4

        A quite distinct descendant of {SNOBOL}, developed by Griswold
        et al in 1967.  SNOBOL4 is {declarative} with {dynamic scope}.
        Patterns are {first-class} data objects that can be
        constructed by concatenation and alternation.  Success and
        failure are used for {flow control}.  Delayed (unevaluated)
        expressions can be used to implement {recursion}.  It has a
        table data type.  Strings generated at run-time can be treated
        as programs and executed.

        See also {vanilla}.

        {(ftp://apple.com/ArchiveVol1/Unix_lang)}

        ["The SNOBOL4 Programming Language", Ralph E. Griswold et al,
        P-H 1971].

        (1994-11-04)

SNOOPS

        Craske, 1988.  An extension of SCOOPS with meta-objects that
        can redirect messages to other objects.  "SNOOPS: An
        Object-Oriented language Enhancement Supporting Dynamic
        Program Reeconfiguration", N. Craske, SIGPLAN Notices 26(10):
        53-62 (Oct 1991).

'Snooze

        /snooz/ [FidoNet] Fidonews, the weekly official on-line
        newsletter of FidoNet.  As the editorial policy of Fidonews is
        "anything that arrives, we print", there are often large
        articles completely unrelated to FidoNet, which in turn tend
        to elicit {flamage} in subsequent issues.

SNPP

        {Simple Network Paging Protocol}

SNR

        {signal-to-noise ratio}

S/N ratio

        {signal-to-noise ratio}

SO

        1. <character> {Shift Out}

        2. Significant Other, almost invariably written abbreviated
        and pronounced /S-O/ by hackers.  Used to refer to one's
        primary relationship, especially a live-in to whom one is not
        married.

so

        <networking> The {country code} for Somalia.

        (1999-01-27)

SO 2

        An early system on {IBM 701}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-04)

SOAP

        Symbolic Optimal Assembly Program.  The {IBM 650}'s {assembly
        language}.  "Optimal" refers to rearranging instructions on
        slowly rotating {drum memory}.

        Versions: SOAP I, SOAP II, CASE SOAP III.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-04)

SOAR

        1. State, Operator And Result.  A general problem-solving
        {production system} architecture, intended as a model of human
        intelligence.  Developed by A. Newell in the early 1980s.
        SOAR was originally implemented in {Lisp} and {OPS5} and is
        currently implemented in {Common Lisp}.  Version: Soar6.

        E-mail: <soar@cs.cmu.edu>.

        ["The SOAR Papers", P.S. Rosenbloom et al eds, MIT Press
        1993].

        (1994-11-04)

        2. Smalltalk On A RISC.  A {RISC} {microprocessor} designed by
        David Patterson's at Berekeley.

        (1994-11-04)

social engineering

        Term used among {cracker}s and {samurai} for cracking
        techniques that rely on weaknesses in {wetware} rather than
        software; the aim is to trick people into revealing passwords
        or other information that compromises a target system's
        security.  Classic scams include phoning up a mark who has the
        required information and posing as a field service tech or a
        fellow employee with an urgent access problem.  See also the
        {tiger team} story in the {patch} entry.

social science number

        (IBM) A statistic that is {content-free}, or nearly so.  A
        measure derived via methods of questionable validity from data
        of a dubious and vague nature.  Predictively, having a social
        science number in hand is seldom much better than nothing, and
        can be considerably worse.  {Management} loves them.

        See also {numbers}, {math-out}, {pretty pictures}.

        (1994-11-04)

socket

        <networking> The {Berkeley Unix} mechansim for creating a
        virtual connection between processes.  Sockets interface
        {Unix}'s {standard I/O} with its {network} communication
        facilities.  They can be of two types, stream (bi-directional)
        or {datagram} (fixed length destination-addressed messages).
        The socket library function socket() creates a communications
        end-point or socket and returns a {file descriptor} with which
        to access that socket.  The socket has associated with it a
        socket address, consisting of a {port} number and the local
        host's network address.

        {Unix manual page}: socket(2).

        (1995-01-31)

Socket 1

        {x86 processor socket}

Socket 2

        {x86 processor socket}

Socket 3

        {x86 processor socket}

Socket 370

        <hardware, standard> A physical and electrical specification
        for the pins on a {PPGA} {Celeron} {microprocessor}.

        Socket 370 uses a square {SPGA} {ZIF} socket with 370 pins,
        arranged 19x19.

        Adapters are available to allow a PPGA Celeron to plug into a
        {Slot 1} connector.

        (1999-08-04)

Socket 4

        {x86 processor socket}

Socket 5

        {x86 processor socket}

Socket 6

        {x86 processor socket}

Socket 7

        <hardware, standard> A physical and electrical specification
        for the {x86 processor socket} matching the pins on {Pentium}
        {microprocessors} manufactured by {Intel}, and compatibles
        made by {Cyrix}, {AMD} and others.  Any {CPU} chip conforming
        to this specification can be plugged into any conforming
        {motherboard}.

        Supported processors include: 2.5V - 3.5V {Pentiums} 75-233
        MHz, AMD {K5} through {K6}, Cyrix {6x86} (and MX) P120 - P233.

        Socket 7 uses a {SPGA} socket, either a 296 pin {LIF} or a 321
        pin {ZIF} arranged as 37x37 or 19x19 (depending on who you
        speak to!).

        See also {Super 7}.

        Intel's {Pentium II} processor uses {Slot 1} mounting.

        [Pin-out?]

        (1999-08-29)

Socket 8

        <hardware, standard> A physical and electrical specification
        for the {x86 processor socket} matching the pins on a {Pentium
        Pro} {microprocessor}.

        Socket 8 uses a {dual pattern} {PGA}/{SPGA} {LIF}/{ZIF} socket
        with 387 pins, arranged 24x26.

        (1999-08-04)

SOCKS

        <security> A security package that allows a {host} behind a
        {firewall} to use {finger}, {FTP}, {telnet}, {Gopher}, and
        {Mosaic} to access resources outside the firewall while
        maintaining the security requirements.

        [The Security FAQ, {Usenet} newsgroups
        {news:comp.security.misc}, {news:comp.security.unix},
        {news:alt.security}].

        (1995-01-31)

SOCRATIC

        An early interactive learning system (not a language(?))
        developed at {Bolt, Beranek & Newman}.

        [Sammet 1969, p. 702].

        (1994-11-04)

SODA

        Symbolic Optimum DEUCE Assembly Program.

        The symbolic {assembler} for a {one-level storage} {virtual
        machine} for the {English ELectric} {DEUCE}.

        ["SODA Manual of Operation", R. C. Brigham and C. G. Bell,
        School of Elec Eng, U New S Wales, Sydney, NSW (1958)].

        (1994-11-04)

SODAS

        [D.L. Parnas & J.A. Darringer.  Proc FJCC 31:449-474, AFIPS
        (Fall 1967)].

        (1994-11-04)

SO-DIMM

        {Small Outline DIMM}

Sod's Law

        <humour> {Murphy's Law}.

        [Or is it "Sodd"?]

        (1995-12-29)

SoftBench

        An {IPSE} from {Hewlett-Packard}.

soft boot

        <operating system> A {boot} which resets only part of the
        {system}.

        For example, "If you're running the {mess-dos} {emulator},
        control-alt-insert will cause a soft boot of the emulator,
        while leaving the rest of the system running".

        Contrast {hard boot}.

        (1995-11-27)

softcopy

        /soft'kop-ee/ (by analogy with "hardcopy") A machine-readable
        ("{machinable}") form of corresponding {hardcopy}.

        (1994-11-04)

Softlab

        <company> A {software engineering} company strong in the UK
        and Germany.

        [Details?]

soft link

        {symbolic link}

SoftModem

        The integration of {modem} controller and {data pump}
        {algorithm}s into a single {RAM}-based {DSP} hardware
        architecture.  These integrated algorithms are stored on the
        computer's hard disk, from which they are downloaded into the
        DSP board's random access memory (RAM).  This downloading, or
        "booting" process of the PC-installed software algorithms
        occurs as part of the computer's power-up initialisation
        process in less than 100 milliseconds, making it transparent
        to the user.

        [Digicom Modem FAQ version 2.03].

software

        <programming> (Or "computer program", "program", "code") The
        instructions executed by a computer, as opposed to the
        physical device on which they run (the "{hardware}").

        Programs stored on {non-volatile storage} built from
        {integrated circuits} (e.g. {ROM} or {PROM}) are usually
        called {firmware}.

        Software can be split into two main types - {system software}
        and application software or {application programs}.  System
        software is any software required to support the production or
        execution of application programs but which is not specific to
        any particular application.  Examples of system software would
        include the {operating system}, {compilers}, editors and
        sorting programs.

        Examples of application programs would include an accounts
        package or a {CAD} program.  Other broad classes of
        application software include {real-time} software, {business
        software}, scientific and engineering software, {embedded
        software}, personal computer software and {artificial
        intelligence} software.

        Software includes both {source code} written by humans and
        executable {machine code} produced by {assemblers} or
        {compilers}.  It does not usually include the data processed
        by programs unless this is in a format such as {multimedia}
        which depends on the use of computers for its presentation.
        This distinction becomes unclear in cases such as {spread
        sheets} which can contain both instructions (formulae and
        {macros}) and data.  There are also various intermediate
        compiled or {semi-compiled}, forms of software such as
        {library} files and {byte-code}.

        Some claim that {documentation} (both paper and electronic) is
        also software.  Others go further and define software to be
        programs plus documentation though this does not correspond
        with common usage.

        The noun "program" describes a single, complete and
        more-or-less self-contained list of instructions, often stored
        in a single {file}, whereas "code" and "software" are
        uncountable nouns describing some number of instructions which
        may constitute one or more programs or part thereof.  Most
        programs, however, rely heavily on various kinds of {operating
        system} software for their execution.

        (1998-06-04)

Software AG

        <company> A German {software engineering} company that started
        with the {ADABAS} {database}.  {Natural} is their {4GL}
        development environment, {EntireX} is their {DCOM} for {Unix}
        and {IBM}.  {BOLERO}, is an {object-oriented} development
        environment and {application server} specially made for
        Electronic Business applications.

        {Home (http://www.softwareag.com/)}.

        Mailing-list: <sag-l@uafsysb.uark.edu>.

        (1999-03-06)

software audit

        <legal> A regular investigation of the software installed on
        all computers in an organisation to ensure that it is
        authorised or licensed.

        Software audits minimise the risk of prosecution for {software
        theft}, minimise the risk of {viruses} through uncontrolled
        software copying, and ensure technical support is available to
        all users.

        The {Business Software Alliance} {Guide To Software Management
        (http://www.bsa.org/bsa)}.

        (1996-05-19)

Software BackPlane

        <programming, tool> A {CASE} framework from {Atherton}.

        (1996-05-19)

software bloat

        <jargon, abuse> The result of adding new features to a program
        or system to the point where the benefit of the new features
        is outweighed by the extra resources consumed ({RAM}, disk
        space or performance) and complexity of use.  Software bloat
        is an instance of Parkinson's Law: resource requirements
        expand to consume the resources available.  Causes of software
        bloat include {second-system effect} and {creeping
        featuritis}.  Commonly cited examples include Unix's "{ls}(1)"
        command, the {X Window System}, {BSD}, {Missed'em-five},
        {OS/2} and any {Microsoft} product.

        (1995-10-16)

Software bus

        A support environment for heterogeneous distributed
        processing, such as the ANSA Testbench.

Software Description Database

        <networking> {Archie}'s database of names and short
        descriptions of many of the software packages, documents (like
        {RFCs} and educational material), and data files that are
        available via the {Internet}.

        (1995-11-12)

Software Developers Kit

        <jargon, product> (SDK, or "Software Development Kit")
        Software provided by a software vendor to allow their products
        to be used with those of other software vendors.

        (1995-03-01)

software development life cycle

        {software life cycle}

software enabling

        <programming> (Or "enabling") Modification of the design or
        implementation of software to allow {internationalisation} to
        take place.

        In particular, enabling may refer to the modification of
        software to support double-byte character sets, hence
        "{Unicode} enabling" and "double-byte enabling".

        (1999-06-28)

software engineering

        <programming> (SE) A systematic approach to the analysis,
        design, implementation and maintenance of {software}.  It
        often involves the use of {CASE} tools.  There are various
        models of the {software life-cycle}, and many {methodologies}
        for the different phases.

        (1994-11-03)

Software Engineering Environment

        (SEE) A set of management and technical tools to support
        software development, usually integrated in a coherent
        framework; equivalent to an {IPSE}.

        (1994-11-03)

software handshaking

        <communications> The transmission of extra data on a channel
        in order to control the device sending data in the other
        direction on that channel.  For an {RS-232} connection, this
        means sending {Control-S} and {Control-Q} characters to stop
        and start transmission.

        Since software handshaking requires the transmission and
        processing of extra data it can be less efficient than
        {hardware handshaking}.

        (1996-10-16)

software interrupt

        An {interrupt} caused by a specific {machine language}
        operation code (e.g. the {Motorola 68000}'s TRAP, the {IBM
        System/390}'s SVC or the {ARM}'s SWI) rather than by a
        hardware event.

        As with a hardware interrupt, this causes the processor to
        store the current state, store identifying information about
        the particular interrupt, and pass control to a first level
        {interrupt handler}.

        A {trap} is similar except that it is caused by an unexpected
        software condition or error (e.g. divide by zero, undefined
        instruction) rather than a deliberate instruction.

        (1995-02-14)

software laser

        An optical laser works by bouncing photons back and forth
        between two mirrors, one totally reflective and one partially
        reflective.  If the lasing material (usually a crystal) has
        the right properties, photons scattering off the atoms in the
        crystal will excite cascades of more photons, all in lockstep.
        Eventually the beam will escape through the partially
        reflective mirror.

        One kind of {sorcerer's apprentice mode} involving {bounce
        message}s can produce closely analogous results, with a
        {cascade} of messages escaping to flood nearby systems.  By
        mid-1993 there had been at least two publicised incidents of
        this kind.

software law

        <legal> Software may, under various circumstances and in
        various countries, be restricted by patent or {copyright} or
        both.  Most commercial software is sold under some kind of
        {software license}.

        A patent normally covers the design of something with a
        function such as a machine or process.  Copyright restricts
        the right to make and distribute copies of something written
        or recorded, such as a song or a book of recipies.  Software
        has both these aspects - it embodies functional design in the
        {algorithm}s and data structures it uses and it could also be
        considered as a recording which can be copied and "performed"
        (run).

        "{Look and feel}" lawsuits attempt to monopolize well-known
        command languages; some have succeeded.  {Copyright}s on
        command languages enforce gratuitous incompatibility, close
        opportunities for competition, and stifle incremental
        improvements.

        {Software patent}s are even more dangerous; they make every
        design decision in the development of a program carry a risk
        of a lawsuit, with draconian pretrial seizure.  It is
        difficult and expensive to find out whether the techniques you
        consider using are patented; it is impossible to find out
        whether they will be patented in the future.

        The proper use of {copyright} is to prevent {software piracy}
        - unauthorised duplication of software.  This is completely
        different from copying the idea behind the program in the same
        way that photocopying a book differs from writing another book
        on the same subject.

        {Usenet} newsgroup: {news:misc.legal.computing}.

        ["The Software Developer's and Marketer's Legal Companion",
        Gene K. Landy, 1993, AW, 0-201-62276-9].

        (1994-11-16)

software life-cycle

        <programming> The phases a software product goes through
        between when it is conceived and when it is no longer
        available for use.  The software life-cycle typically includes
        the following: {requirements analysis}, {design},
        construction, testing ({validation}), installation, operation,
        maintenance, and retirement.

        The development process tends to run iteratively through these
        phases rather than linearly; several models (spiral, waterfall
        etc.) have been proposed to describe this process.

        Other processes associated with a software product are:
        quality assurance, marketing, sales and support.

        (1996-12-27)

Software Method

        {Software Methodology}

Software Methodology

        <programming> The study of how to navigate through each phase
        of the software process model (determining data, control, or
        uses hierarchies, partitioning functions, and allocating
        requirements) and how to represent phase products (structure
        charts, stimulus-response threads, and {state transition
        diagram}s).

        (1996-05-29)

software metric

        A measure of software quality which indicate the complexity,
        understandability, testability, description and intricacy of
        code.

        (1994-11-16)

software patent

        <legal> A patent intended to prevent others from using some
        programming technique.

        There have been several infamous patents for software
        techniques which most experienced programmers would consider
        fundamental or trivial, such as the idea of using
        {exclusive-or} to plot a cursor on a {bitmap display}.  The
        spread of software patents could stifle innovation and make
        programming much harder because programmers would have to
        worry about patents when designing or choosing {algorithm}s.

        There are over ten thousand software patents in the US, and
        several thousand more are issued each year.  Each one may be
        owned by, or could be bought by, a grasping company whose
        lawyers carefully plan to attack people at their most
        vulnerable moments.  Of course, they couch the threat as a
        "reasonable offer" to save you miserable years in court.
        "Divide and conquer" is the watchword: pursue one group at a
        time, while advising the rest of us to relax because we are in
        no danger today.

        Compuserve developed the {GIF} format for graphical images
        many years ago, not knowing about {Unisys}'s 1985 patent
        covering the {LZW} data compression {algorithm} used in GIF.
        GIF was subsequently adopted widely on the {Internet}.  In
        1994 Unisys threatened to sue Compuserve, forcing them to
        impose a sublicensing agreement for GIF on their users.
        Compuserve users can accept this agreement now, or face Unisys
        later on their own.  The rest of us don't have a choice -- we
        get to face Unisys when they decide it's our turn.  So much
        trouble from just one software patent.

        Patents in the UK can't describe {algorithm}s or mathematical
        methods.

        See also {LPF}, {software law}.

        {patent search
        (http://sunsite.unc.edu/patents/intropat.html)}.

        (1995-01-06)

software piracy

        {software theft}

software pirate

        {software theft}

Software Practice and Experience

        <publication> (SPE) A Journal about {software}.

        {Home (http://columbus.cs.nott.ac.uk/compsci/spe/)}.

        [Publisher?  UK?]

        (1997-12-12)

Software Productivity Centre

        <body> (SPC) A non-profit organisation based in Vancouver, BC,
        Canada with the mandate to assist software developers to
        improve their {software engineering} process.

        (1998-10-13)

Software Publishing Corporation

        <company> (SPC) The company that produces {Harvard Graphics}.

        {Home (http://www.spco.com/)}.

        (1998-10-13)

software reliability

        See also {formal methods}, {safety-critical system}.

        {(ftp://ftp.sei.cmu.edu/pub/depend-sw)}.  Mailing list:
        depend-sw@sei.cmu.edu.

        [Summary?]

software rot

        <programming> Term used to describe the tendency of software
        that has not been used in a while to {lose}; such failure may
        be semi-humorously ascribed to {bit rot}.  More commonly,
        "software rot" strikes when a program's assumptions become out
        of date.  If the design was insufficiently {robust}, this may
        cause it to fail in mysterious ways.

        For example, owing to endemic shortsightedness in the design
        of COBOL programs, most will succumb to software rot when
        their 2-digit year counters {wrap around} at the beginning of
        the year 2000.  Actually, related lossages often afflict
        centenarians who have to deal with computer software designed
        by unimaginative clods.  One such incident became the focus of
        a minor public flap in 1990, when a gentleman born in 1889
        applied for a driver's licence renewal in Raleigh, North
        Carolina.  The new system refused to issue the card, probably
        because with 2-digit years the ages 101 and 1 cannot be
        distinguished.

        Historical note: Software rot in an even funnier sense than
        the mythical one was a real problem on early research
        computers (e.g. the {R1}; see {grind crank}).  If a program
        that depended on a peculiar instruction hadn't been run in
        quite a while, the user might discover that the {opcodes} no
        longer did the same things they once did.  ("Hey, so-and-so
        needs an instruction to do such-and-such.  We can {snarf} this
        opcode, right?  No one uses it.")

        Another classic example of this sprang from the time an {MIT}
        hacker found a simple way to double the speed of the
        unconditional jump instruction on a {PDP-6}, so he patched the
        hardware.  Unfortunately, this broke some fragile timing
        software in a music-playing program, throwing its output out
        of tune.  This was fixed by adding a defensive initialisation
        routine to compare the speed of a timing loop with the
        real-time clock; in other words, it figured out how fast the
        PDP-6 was that day, and corrected appropriately.

        Compare {bit rot}.

        (1996-05-11)

software theft

        <legal> The unauthorised duplication and/or use of computer
        {software}.  This usually means unauthorised copying, either
        by individuals for use by themselves or their friends or, less
        commonly, by companies who then sell the illegal copies to
        users.  Many kinds of {software protection} have been invented
        to try to reduce software theft but, with sufficient effort it
        is always possible to bypass or "crack" the protection, and
        {software protection} is often annoying for legitimate users.

        Software theft was estimated for 1994 to have cost $15 billion
        in worldwide lost revenues to software publishers.  It is a
        serious offence under the Copyright, Designs and Patents Act
        1988, which states that "The owner of the copyright has the
        exclusive right to copy the work.".

        It is illegal to: 1. Copy or distribute software or its
        documentation without the permission or licence of the
        copyright owner.  2. Run purchased software on two or more
        computers simultaneously unless the licence specifically
        allows it.  3. Knowingly or unknowingly allow, encourage or
        pressure employees to make or use illegal copies sources
        within the organisation.  4. Infringe laws against
        unauthorised software copying because a superior, colleague or
        friend compels or requests it.  5. Loan software in order that
        a copy be made of it.

        Both individuals and companies may be convicted of piracy
        offences.  Officers of a company are also liable to conviction
        if the offences were carried out by the company with their
        consent.  On conviction, the guilty party can face
        imprisonment for up to two years (five in USA), an unlimited
        fine or both as well as being sued for copyright infringement
        (with no limit) by the copyright owner.

        When software is upgraded it is generally the case that the
        licence accompanying the new version revokes the old version.
        This means that it is illegal to run both the old and new
        versions as only the new version is licensed.

        Some people mistakenly think that, because it is so easy to
        make illegal copies of software, that it is less wrong than,
        say, stealing it from a shop.  In fact, both actions deprive
        software producers of the income they need to continue their
        business and develop their products.

        Software theft should be reported to the {Federation Against
        Software Theft} (FAST).

        See also {Business Software Alliance}, {software audit},
        {software law}.

        (1996-05-20)

Software through Pictures

        <programming, tool> (StP) A set of {CASE} tools distributed by
        {Aonix (http://www.aonix.com/)}.

        (1999-05-21)

software tool

        <programming> A program that aids in the development of other
        programs.  It may assist the programmer in the design, code,
        compile, link, edit, or debug phases.

        (1996-05-28)

Software Verification Research Centre

        <body> (SVRC) A Special Research Centre of the Australian
        Research Council.  Its mission is to create improved methods
        and tools, of industrial significance, for developing
        {verified software}.  Two of the SVRC's core projects are the
        {Cogito} methodology and the {Ergo} {proof tool}.

        (1995-11-14)

softwarily

        /soft-weir'i-lee/ In a way pertaining to software.  "The
        system is softwarily unreliable."  The adjective "softwary" is
        *not* used.  See {hardwarily}.

softy

        (IBM) {Hardware} hackers' term for a {software} expert who is
        largely ignorant of the mysteries of hardware.

        (1995-01-11)

SOH

        {Start Of Header}

SOHIO

        An early system on the {IBM 705}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-11)

SoHo

        {small-office/home-office.}

SOIF

        {Summary Object Interchange Format}

SOJ

        {Small Outline J}

SOL

        1. <language> {Simulation Oriented Language}.

        2. {Second-Order lambda-calculus}.

        3. Semantic Operating Language.  Language for manipulating
        semantic networks for building cognitive models, particularly
        for natural language understanding.  "Explorations in
        Cognition", D.A. Norman et al, W.H.  Freeman 1974.

        4. Shit Outta Luck.

Solaris

        <operating system> {Sun Microsystems, Inc.}'s version of the
        {Unix} {operating system}.  As well as the core operating
        system, Solaris inludes networking software, the {Java Virtual
        Machine}, the {CDE}/Desktop that includes an {X11}-based
        {windowing environment} and {graphical user interface}.

        Solaris 1.x was a retroactive (marketing?) name for {SunOS}
        4.1.x (where x>=1).

        Solaris 2.x (which is what most people mean by "Solaris")
        includes SunOS5.x, which is an SVR4-derived Unix,
        {OpenWindows} 3.x, and {tooltalk}.

        Sun claim that Solaris is not just an operating system but an
        "operating environment".

        Current version as of 1999-03-02: 2.7 ("Solaris 7").

        {Home (http://www.sun.com/solaris/)}.

        (1999-03-26)

solid-state storage device

        {RAM disk}

SOLO

        [SOL (Semantic Operating Language) + LOGO].  A variant of
        {LOGO} with primitives for dealing with {semantic network}s
        and {pattern matching} rather than lists.

        ["A User-Friendly Software Environment for the Novice
        Programmer", M. Eisenstadt <marc@open.ac.uk>, CACM
        27(12):1056-1064 (1983)].

solution

        <jargon> A {marketroid} term for something he wants to sell
        you without bothering you with the often dizzying distinctions
        between {hardware}, {software}, {services}, {applications},
        {file formats}, companies, brand names and {operating
        systems}.

        "{Flash} is a perfect image-streaming solution."  "What is
        it?"  "Um...  about a thousand dollars."

        See also: {technology}.

        (1998-07-07)

Solution Based Modelling

        (SBM) A software development process described in the book
        "Developing Object-Oriented Software for the Macintosh"
        written by Neal Goldstein and Jeff Alger, published by Addison
        Wesley in 1992.

Solve

        Parallel object-oriented language.  "Message Pattern
        Specifications: A New Technique for Handling Errors in
        Parallel Object- Oriented Systems", J.A. Purchase et al,
        SIGPLAN Notices 25(10):116-125 (OOPSLA/ECOOP '90) (Oct 1990).

SOM

        System Object Model.  An implementation of CORBA by IBM.

Somar DumpAcl

        <tool> A utilty which provides a concise report of {Windows
        NT} file system permissions, to help find holes in system
        security.

        (1995-04-10)

Somar Software

        <company> The distributors of {Somar DumpAcl} and other
        utilities for {Windows NT}.

        {Home (http://www.somar.com/)}

        Address: Washington, DC, USA.

        (1995-04-10)

some random X

        <jargon> Used to indicate a member of class X, with the
        implication that Xs are interchangeable.  "I think some random
        cracker tripped over the guest timeout last night."

        See also {J. Random}.

        (1995-03-03)

Sonata

        <operating system> The code name for the major {Mac OS}
        release due in mid-1999.

        {(http://devworld.apple.com/mkt/informed/appledirections/mar97/roadmap.
html)}.

        (1997-10-15)

SONET

        {Synchronous Optical NETwork}

Sony Playstation

        {Playstation}

SORCERER

        <tool> A simple tree {parser generator} by Terence Parr
        <parrt@s1.arc.umn.edu>.

        SORCERER is suitable for translation problems lying between
        those solved by {code generator} generators and by full
        source-to-source translator generators.  SORCERER generates
        simple, flexible, top-down, tree {parser}s that, in contrast
        to code generators, may execute actions at any point during a
        tree walk.  SORCERER accepts {extended BNF} notation, allows
        {predicate}s to direct the tree walk with {semantic} and
        {syntactic} context information, and does not rely on any
        particular intermediate form, parser generator, or other
        pre-existing application.

        SORCERER is included in the {Purdue Compiler-Construction Tool
        Set}.

        Version: 1.00B

        {(ftp://marvin.ecn.purdue.edu/pub/pccts/sorcerer/)}

        E-mail: <parrt@acm.org> ("e-mail sor.tar.Z.uu" in subject).

        Mailing list: pccts-users-request@ahpcrc.umn.edu (message
        body: "subscribe pccts-users YOUR-NAME", where YOUR-NAME can
        be your name or e-mail address).

        (1994-02-15)

sorcerer's apprentice mode

        <networking> (From Johann Wolfgang von Goethe's "Der
        Zauberlehrling", via the Walt Disney film "Fantasia") A {bug}
        in a {protocol} where, under some circumstances, the receipt
        of a message causes multiple messages to be sent, each of
        which, when received, triggers the same bug.  Used especially
        of such behaviour caused by {bounce message} loops in
        {electronic mail} software.

        Compare {broadcast storm}, {network meltdown}, {software
        laser}, {ARMM}.

        {Der Zauberlehrling
        (http://www.unix-ag.uni-kl.de/~conrad/lyrics/zauber.html)}.

        (1999-10-08)

sort

        1. <application, algorithm> To arrange a collection of items
        in some specified order.  The items - {records} in a file or
        data structures in memory - consist of one or more {fields} or
        members.  One of these fields is designated as the "sort key"
        which means the records will be ordered according to the value
        of that field.  Sometimes a sequence of key fields is
        specified such that if all earlier keys are equal then the
        later keys will be compared.  Within each field some ordering
        is imposed, e.g. ascending or descending numerical, {lexical
        ordering}, or date.

        Sorting is the subject of a great deal of study since it is a
        common operation which can consume a lot of computer time.
        There are many well-known sorting {algorithms} with different
        time and space behaviour and programming {complexity}.

        Examples are {quicksort}, {insertion sort}, {bubble sort},
        {heap sort}, and {tree sort}.  These employ many different
        data structures to store sorted data, such as {arrays},
        {linked lists}, and {binary trees}.

        2. <tool> The {Unix} utility program for sorting lines of
        files.

        {Unix manual page}: sort(1).

        (1997-02-12)

sorting

        See {sort}.

SOS

        1. {Scheme Object System}.

        2. An infamously {losing} text editor.  Once, back in the
        1960s, when a text editor was needed for the {PDP-6}, a hacker
        crufted together a {quick-and-dirty} "stopgap editor" to be
        used until a better one was written.  Unfortunately, the old
        one was never really discarded when new ones (in particular,
        {TECO}) came along.  SOS is a descendant ("Son of Stopgap") of
        that editor, and many {PDP-10} users gained the dubious
        pleasure of its acquaintance.  Since then other programs
        similar in style to SOS have been written, notably the early
        font editor BILOS /bye'lohs/, the Brother-In-Law Of Stopgap
        (the alternate expansion "Bastard Issue, Loins of Stopgap" has
        been proposed).

        3. The {PDP-10} instruction to decrease a value.  Oppose
        {AOS}.

sound

        1. {audio}.

        2. <logic> An {inference system} A is sound with respect to
        another system B if A can only reach conclusions which are
        true in B.  A {type inference} system is considered sound with
        respect to a {semantics} if the type inferred for an
        expression is the same as the type inferred for the meaning of
        that expression under the semantics.

        The dual to soundness is {complete}ness.

        (1995-03-01)

Sound Blaster

        <hardware> The best known family of {sound cards} for the {IBM
        PC} from {Creative Labs}.

        [Features?  Models?  Reference?]

        (1998-04-28)

sound card

        A plug-in optional circuit card for an {IBM PC}.  It provides
        high-quality stereo sound output under program control.  A
        "{multimedia}" PC usually includes a sound card.  One of the
        best known is the {Sound Blaster}.

        [Other kinds?]

        (1995-03-01)

soundex

        <algorithm, text> An {algorithm} for encoding a word so that
        similar sounding words encode the same.  The first letter is
        copied unchanged then subsequent letters are encoded as
        follows:

                bfpv      -> "1"
                cgjkqsxz -> "2"
                dt        -> "3"
                l         -> "4"
                mn       -> "5"
                r         -> "6"

        Other characters are ignored and repeated characters are
        encoded as though they were a single character.  Encoding
        stops when the resulting string is four characters long,
        adding trailing "0"s if it is shorter.  For example, "SMITH"
        or "SMYTHE" would both be encoded as "S530".

        (1995-01-05)

source

        {source code}

source code

        <language, programming> (Or "source", or rarely "source
        language") The form in which a computer program is written by
        the programmer.  Source code is written in some formal
        programming language which can be compiled automatically into
        {object code} or {machine code} or executed by an
        {interpreter}.

        (1995-01-05)

source language

        {source code}

source of all good bits

        A person from whom (or a place from which) useful information
        may be obtained.  If you need to know about a program, a
        {guru} might be the source of all good bits.  The title is
        often applied to a particularly competent secretary.

source route

        <messaging> An {electronic mail address} which specifies the
        route the message should take as a sequence of {hostname}s.
        It is called a source route because the route is determined at
        the source of the message rather than at each stage as is now
        more common.  The most common kind of source route is a {UUCP}
        style {bang path}, "foo!bar!baz!fred'.  The {RFC 822} syntax,
        "@foo:@bar:fred@baz", is seldom seen because most systems
        which understand RFC 822 also perform automatic routing based
        on the destination hostname.  A third, intermediate, form is
        sometimes seen: "fred%baz%bar@foo.com".

source routing

        {source route}

SP

        Simplicity and Power.

        A {Prolog}-like language.

        ["Simplicity and Power - Simplifying Ideas in Computing",
        J.G. Wolff, Computer J 33(6):518-534 (Dec 1990)].

        (1994-12-01)

SP2

        {SP/2}

        [Which is correct?]

SP/2

        Scalable POWERparallel 2.

        A line of {RISC}-based processors from {IBM} using {symmetric
        multi-processing}.  SP/2 replaced SP/1.

        The SP2 is a classical {MPP} design, based on a {Shared
        Nothing} architecture.  The SP2 is an example of the
        {Distributed Memory Processor} (DMP) parallel model, with
        individual nodes interconnected over a {LAN}, or a
        High-Performance Switch (HPS).  SP2 systems can have from 2 to
        512 nodes.  Each node is a {RISC system/6000} running {IBM}'s
        {AIX} {operating system}.

        The SP2 supports applications in both technical and commercial
        environments.  In terms of commercial applications, the SP2 is
        typically being used in support of, {MIS}/{DSS} including
        {data mining}, {business applications} e.g. {SAP}, {Alternative
        Mainframe}/{Mainframe Offload}, {LAN Server Consolidation}.

        (1995-03-07)

space

        <character> The space character, {ASCII} 32.

        See {octal forty}.

space-cadet keyboard

        A now-legendary device used on {MIT} {Lisp} machines, which
        inspired several still-current jargon terms and influenced the
        design of {EMACS}.  It was equipped with no fewer than *seven*
        shift keys: four keys for {bucky bits} ("control", "meta",
        "hyper", and "super") and three like regular shift keys,
        called "shift", "top", and "front".  Many keys had three
        symbols on them: a letter and a symbol on the top, and a Greek
        letter on the front.  For example, the "L" key had an "L" and
        a two-way arrow on the top, and the Greek letter lambda on the
        front.  By pressing this key with the right hand while playing
        an appropriate "chord" with the left hand on the shift keys,
        you could get the following results:

         L              lowercase l

         shift-L        uppercase L

         front-L        lowercase lambda

         front-shift-L  uppercase lambda

         top-L          two-way arrow

        (front and shift are ignored) And of course each of these
        might also be typed with any combination of the control, meta,
        hyper, and super keys.  On this keyboard, you could type over
        8000 different characters!  This allowed the user to type very
        complicated mathematical text, and also to have thousands of
        single-character commands at his disposal.  Many hackers were
        actually willing to memorise the command meanings of that many
        characters if it reduced typing time (this attitude obviously
        shaped the interface of {Emacs}).  Other hackers, however,
        thought that many {bucky bit}s was overkill, and objected that
        such a keyboard can require three or four hands to operate.

        See {cokebottle}, {double bucky}, {meta bit}, {quadruple
        bucky}.

        Note: early versions of this entry incorrectly identified the
        space-cadet keyboard with the "Knight keyboard".  Though both
        were designed by Tom Knight, the latter term was properly
        applied only to a keyboard used for {ITS} on the {PDP-10} and
        modelled on the Stanford keyboard (as described under {bucky
        bits}).  The true space-cadet keyboard evolved from the Knight
        keyboard.

        (1994-12-05)

space complexity

        <complexity> The way in which the amount of storage space
        required by an {algorithm} varies with the size of the problem
        it is solving.  Space complexity is normally expressed as an
        order of magnitude, e.g. O(N^2) means that if the size of the
        problem (N) doubles then four times as much working storage
        will be needed.

        See also {computational complexity}, {time complexity}.

        (1996-05-08)

space leak

        A data structure which grows bigger, or lives longer, than
        might be expected.  Such unexpected memory use can cause a
        program to require more {garbage collection}s or to run out of
        {heap}.  Space leaks in {functional program}s usually result
        from excessive laziness.  For example, the {Haskell} function

                sum []     = 0
                sum (x:xs) = x + sum xs

        when applied to a list will build a chain of closures for the
        additions and only when it reaches the end of the list will it
        perform the additions and free the storage.  Another example
        is the function

                mean l = sum l / length l

        The sum function forces the entire list l to be evaluated and
        built in the heap.  None of it can be garbage collected until
        the length function has consumed it.

SPACEWAR

        <games> A space-combat simulation game, inspired by
        E. E. "Doc" Smith's "Lensman" books, in which two spaceships
        duel around a central sun, shooting torpedoes at each other
        and jumping through hyperspace.  This game was first
        implemented on the PDP-1 at MIT in 1960--61.

        SPACEWAR aficionados formed the core of the early hacker
        culture at {MIT}.  Nine years later, a descendant of the game
        motivated {Ken Thompson} to build, in his spare time on a
        scavenged {PDP-7}, the {operating system} that became {Unix}.
        Less than nine years after that, SPACEWAR was commercialised
        as one of the first video games; descendants are still
        {feep}ing in video arcades everywhere.

        ["SPACEWAR" or "Space Travel"?]

        (1994-11-07)

SPADE

        Specification Processing And Dependency Extraction.
        Specification language.  G.S. Boddy, ICL Mainframes Div,
        FLAG/UD/3DR.003

spaghetti code

        <programming> A pejorative term for code with a complex and
        tangled {control structure}, especially one using many
        {GOTOs}, {exceptions}, or other "unstructured" branching
        constructs.  The synonym "kangaroo code" has been reported,
        doubtless because such code has so many jumps in it.

        (1997-02-17)

spaghetti inheritance

        [encountered among users of {object-oriented} languages that
        use inheritance, such as {Smalltalk}] A convoluted
        {class}-subclass graph, often resulting from carelessly
        deriving subclasses from other classes just for the sake of
        reusing their code.  Coined in a (successful) attempt to
        discourage such practice, through guilt-by-association with
        {spaghetti code}.

spam

        1. <messaging> (From the Monty Python "Spam" song) To post
        irrelevant or inappropriate messages to one or more {Usenet}
        {newsgroups} or {mailing lists} in deliberate or accidental
        violation of {netiquette}.

        It is possible to spam a newsgroup with one well- (or ill-)
        planned message, e.g. asking "What do you think of abortion?"
        on soc.women.  This can be done by {cross-post}ing, e.g. any
        message which is crossposted to alt.rush-limbaugh and
        alt.politics.homosexuality will almost inevitably spam both
        groups.  (Compare {troll} and {flame bait}).

        Posting a message to a significant proportion of all
        newsgroups is a sure way to spam Usenet and become an object
        of almost universal hatred.  Canter and Siegel spammed the net
        with their Green card post.

        If you see an article which you think is a deliberate spam, DO
        NOT post a {follow-up} - doing so will only contribute to the
        general annoyance.  Send a polite message to the poster by
        private e-mail and CC it to "postmaster" at the same address.
        Bear in mind that the posting's origin might have been forged
        or the apparent sender's account might have been used by
        someone else without his permission.

        {Usenet} newsgroup:
        {news.admin.net-abuse(news:news.admin.net-abuse)}.

        See also {netiquette}.

        2. (A narrowing of sense 1, above) To indiscrimately send
        large amounts of unsolicited {e-mail} meant to promote a
        product or service.  Spam in this sense is sort of like the
        electronic equivalent of junk mail sent to "Occupant".

        In the 1990s, with the rise in commercial awareness of the
        net, there are actually scumbags who offer spamming as a
        "service" to companies wishing to advertise on the net.  They
        do this by mailing to collections of {e-mail} addresses,
        Usenet news, or mailing lists.  Such practises have caused
        outrage and aggressive reaction by many net users against the
        individuals concerned.

        3. (Apparently a generalisation of sense 2, above) To abuse
        any network service or tool by for promotional purposes.

        "AltaVista is an {index}, not a promotional tool.  Attempts to
        fill it with promotional material lower the value of the index
        for everyone.  [...] We will disallow {URL} submissions from
        those who spam the index.  In extreme cases, we will exclude
        all their pages from the index." -- {Altavista}.

        4. <jargon, programming> To crash a program by overrunning a
        fixed-size {buffer} with excessively large input data.

        See also {buffer overflow}, {overrun screw}, {smash the stack}.

        (1997-04-08)

spamdex

        <World-Wide Web> (Presumably from "{spam}", "index") {word
        spamming}.

        "Spamdexing has come a long way from the halcyon days of the
        summer of 1995.  Back then, all one needed to do was add the
        word 'sex' a thousand times at the end of a Web page to
        attract attention from the likes of Lycos.  The search-engine
        operators caught on fast" -- {Andrew Leonard, Hotwired 1996
        (http://www.packet.com/packet/leonard/96/32/index3a.html)}.

        (1997-04-09)

spamming

        {spam}

spanning tree algorithm

        An IEEE 802.1 standard under consideration which will provide
        distributed routing over multiple LANs connected by bridges.

SPAR

        Early system on Datatron 200 series.  Listed in CACM 2(5):16
        (May 1959).

SPARC

        1. <processor> {Scalable Processor ARChitecture}.

        2. <database> {ANSI/SPARC Architecture}.

        (1999-02-27)

SPARC International, Inc.

        <body> An organisation established to promote the {Scalable
        Processor ARChitecture} (SPARC).  Their main service is
        conformance testing.  They also produce the "SPARC flash"
        newsletter and publish lists of SPARC compliant machines
        tested by SPARC International to be {binary compatible} with
        other compliant machines.

        {Home (http://www.sparc.com/)}

        SPARC(R) is a registered trademark of SPARC International,
        Inc. in the United States and other countries.

        (1995-01-04)

SPARCStation

        <computer> A family of {workstations} from {Sun Microsystems}
        based on the {SPARC} architecture.  Models include the
        {SPARCStation 1}, 1+, SLC, {SPARCStation ELC}, IPX,
        {SPARCStation 5}, {SPARCStation 10} and {SPARCStation 20}.

        (1994-11-23)

SPARCstation 10

        <computer> A {SPARCStation} with a 4-way associative {data
        cache} and a five-way associative {instruction cache}.  The
        10/31, 10/41 and 10/51 also have a {secondary cache} not
        present on earlier {SPARCStations}.

        (1994-12-02)

SPARCstation 20

        <computer> A {SPARCStation} based on the {HyperSPARC}
        processor.  The 20 is compatible with the earlier
        {SPARCstation 10}.  It has a {clock rate} of 100MHz and
        delivers a {SPECfp92} of 127.6.

        The SPARCstation 20 Model 71 and 712MP uses the 75MHz
        {SuperSPARC} processors that give a 35% and 14% boost to
        SPECint92 and SPECfp92 respectively compared to the 61/612MP.
        UK prices range from 15,450 - 20,500 for 71 and 21,700 -
        25,000 for the 712.  UK availability was planned for April
        1995.

        (1994-12-02)

SPARCsystem 4

        <computer> A computer built with the {MicroSPARC ii} 70MHz
        {CPU} as used in the {SPARC 5} Model 70.  The SPARCsystem 4 is
        basically a cheaper, cut-down SPARC 5.  It has an 8-bit {pixel
        accelerator} instead of the SBus Turbo GX card.  Memory
        expansion is limited to 160 MB.  Availability was planned for
        March/April 1995.

        (1995-02-07)

SPARC Xterminal 1

        <computer> {Sun}'s lowest cost networked {Unix} desktop, it is
        board-upgradeable to a {SPARC 4}.  It comes with a choice of
        {frame buffers}: 8-bit colour, {Turbo GX}, or Turbo GX plus.
        This product was expected to replace the {SPARCclassic X}.  UK
        availability was planned for March 1995.

        (1995-02-08)

SPARK

        An annotated subset of {Ada} from {PVL} Ltd.

        (1994-11-23)

SPARKS

        FORTRAN superset, used in Fundamentals of Data Structures, E.
        Horowitz & S. Sahni, Computer Science Press 1976.

sparse

        A sparse {matrix} (or {vector}, or {array}) is one in which
        most of the elements are zero.  If storage space is more
        important than access speed, it may be preferable to store a
        sparse matrix as a list of (index, value) pairs or use some
        kind of {hash} scheme or {associative memory}.

        (1995-01-16)

Spatial Technologies

        <company> Distributors of the {ACIS} {solid modelling} engine.

        [More info?]

        (1999-06-29)

spawn

        <operating system> To create a {child process} in a
        {multitasking} {operating system}.  E.g. {Unix}'s {fork}
        {system call} or one of the spawn() library routines provided
        by most {MS-DOS}, {Novell NetWare} and {OS/2} {C} compilers -
        spawnl(), spawnle(), etc.

        (1995-03-28)

SPC

        1. <business> {Statistical Process Control}.  Something to do
        with {quality management}.

        [What is it?]

        2. <body> {Software Productivity Centre}.

        3. <company> {Software Publishing Corporation}.

        (1998-12-22)

SPD

        {Serial Presence Detect}

SPDL

        Standard Page Description Language

        A draft within the ODA standard.

        (1995-03-28)

SPE

        {Software Practice and Experience}

Speakeasy

        Simple array-oriented language with numerical integration and
        differentiation, graphical output, aimed at statistical
        analysis.

        ["Speakeasy", S. Cohen, SIGPLAN Notices 9(4), (Apr 1974)].

        ["Speakeasy-3 Reference Manual", S. Cohen et al. 1976].

speaker

        1. <hardware> {loudspeaker}.

        2. The person who is (assumed to be) talking.

        (1996-12-01)

SPEC

        <benchmark, body> Standard Performance Evaluation Corporation.

        A non-profit corporation registered in California formed to
        "establish, maintain and endorse a standardized set of
        relevant {benchmarks} that can be applied to the newest
        generation of high-performance computers" (from SPEC's
        bylaws).  The founders believe that the user community will
        benefit greatly from an objective series of
        applications-oriented tests, which can serve as common
        reference points and be considered during the evaluation
        process.

        SPEC develops suites of {benchmark}s intended to measure
        computer performance.  These are available to the public for a
        fee covering development and administration costs.

        The current (14 Nov 94) SPEC benchmark suites are: {CINT92}
        (CPU intensive integer benchmarks); {CFP92} (CPU intensive
        floating-point benchmarks); SDM (UNIX Software Development
        Workloads); SFS (System level file server (NFS) workload).

        {Results (ftp://ftp.cdf.toronto.edu/pub/spectable)}

        SPEC also publishes a quarterly report of SPEC news and
        results, The SPEC Newsletter.  Some issues are {here
        (http://performance.netlib.org/performance/html/spec.html)}.

        There is a {FAQ} about SPEC {here
        (http://performance.netlib.org/performance/html/specfaq.html)}

        (1994-11-14)

Spec

        A specification language.  It expresses {black box} interface
        specifications for large distributed systems with {real-time}
        constraints.  It incorporates conceptual models, {inheritance}
        and the event model.  It is a descendant of {MSG.84}.

        ["An Introduction to the Specification Language Spec",
        V. Berzins et al, IEEE Software 7(2):74-84 (Mar 1990)].

SPECbase_fp92

        A variant of {SPECfp92} that reports "baseline" results, using
        stricter run rules.

        (1994-11-14)

SPECbase_int92

        A variant of {SPECint92} that reports "baseline" results,
        using stricter run rules.

        (1994-11-14)

SPECbaserate

        A variant of {SPECrate} that reports "baseline" results, using
        stricter run rules.

        See {SPECrate_base_fp92}, {SPECrate_base_int92}.

        (1994-11-14)

SPEC CFP92

        <benchmark> A {benchmark} suite from {SPEC} containing 14
        programs performing {floating-point} computations.  12 are
        written in {Fortran} and two in {C}.  They can be used to
        estimate the performance of CPU, memory system, and compiler
        code generation.

        The individual programs are Circuit Design, Simulation (2x),
        Quantum Chemistry (3x), Electromagnetism, Geometric
        Translation, Optics, Robotics, Medical Simulation, Quantum
        Physics, Astrophysics, NASA Kernels.

        The benchmark suite can be used either for speed measurement,
        resulting in {SPEC ratio}s, or for throughput measurement,
        resulting in {SPEC rate}s

        (1994-11-15)

SPEC CINT92

        <benchmark> A {benchmark} suite from {SPEC}, which contains
        six benchmarks in {C} performing integer computations. They
        can be used to estimate the performance of CPU, memory system,
        and compiler code generation.

        The individual programs are Logic Design (2x), Interpreter,
        Data Compression, Spreadsheet.  The approximate size of the
        suite is 85500 lines of source code without comments.

        The benchmark suite can be used either for speed measurement,
        resulting in {SPEC ratio}s, or for throughput measurement,
        resulting in {SPEC rate}s

        (1994-11-15)

SPECfp92

        <benchmark> A {benchmark} result derived from the results of a
        set of CPU intensive floating-point benchmarks from {SPEC}
        (the {geometric mean} of the 14 {SPEC ratio}s of {CFP92}).
        SPECfp92 can be used to estimate a machine's single-tasking
        performance on {floating-point} code.

        {Results (ftp://ftp.nosc.mil/pub/aburto/specfp92.tbl)}

        (1994-11-14)

SPECIAL

        A SRI specification language.  [HDM?]

        ["SPECIAL - A Specification and Assertion Language",
        L. Robinson et al, TR CSL-46, SRI, Jan 1987].

special-case

        To write unique code to handle input to or situations arising
        in a program that are somehow distinguished from normal
        processing.  This would be used for processing of mode
        switches or interrupt characters in an interactive interface
        (as opposed, say, to text entry or normal commands), or for
        processing of {hidden flag}s in the input of a batch program
        or {filter}.

Special Interest Group

        (SIG) One of several technical areas, sponsored by the
        {Association for Computing Machinery}.  Well-known SIGs
        include SIGPLAN (the Special Interest Group on Programming
        Languages), SIGARCH (the Special Interest Group for Computer
        Architecture) and SIGGRAPH (the Special Interest Group for
        Computer Graphics).

        (1994-10-27)

specialisation

        A reduction in generality, usually for the sake of increased
        efficiency.  If a piece of code is specialised for certain
        values of certain variables (usually function arguments), this
        is known as "{partial evaluation}".  In a language with
        {overloading} (e.g. {Haskell}), an overloaded function might be
        specialised to a non-overloaded instance at compile-time if
        the types of its arguments are known.

specific markup

        In computerised document preparation, a method of adding
        formatting commands to the text to control layout, such as new
        line, new page, centre text etc.  Compare {generic markup}.

SPECint92

        <benchmark> A {benchmark} result derived from the results of a
        set of integer benchmarks from {SPEC} (geometric mean of the 6
        {SPEC ratio}s of {CINT92}) which can be used to estimate a
        machine's single-tasking performance on integer code.

        SPECint92 obsoletes SPECint89.

        {Results (ftp://ftp.nosc.mil/pub/aburto/specin92.tbl)}

        See also {SPECbase_int92}.

        (1994-11-14)

SPECmark

        <benchmark> The average of a set of {floating-point} and
        integer {SPEC} {benchmark} results.

        While the old average {SPECmark89} has been popular with the
        industry and the press, {SPEC} has intentionally *not* defined
        an average "SPECmark92" over all {CPU} {benchmark}s of the
        1992 suites ({CINT92} and {CFP92}), for the following reasons:
        With 6 integer ({CINT92}) and 14 {floating-point} ({CFP92})
        benchmarks, the average would be biased too much towards
        floating-point.  Customers' workloads are different, some
        integer-only, some floating-point intensive, some mixed.
        Current processors have developed their strengths in a more
        diverse way (some more emphasizing integer performance, some
        more floating-point performance) than in 1989.

        Some SPECmark results are available {here
        (ftp://ftp.cdf.toronto.edu/pub/spectable)}.

        See also {SPECint92}, {SPECfp92}, {SPECrate_int92},
        {SPECrate_fp92}.

        (1994-11-15)

SPECmark89

        <benchmark> An old {SPECmark} {benchmark} result derived from
        a set of {floating-point} and integer {benchmark}s.  It is the
        {geometric mean} of ten {SPEC ratio}s of the outdated 1989
        {SPEC} benchmark suite.  The use of SPECmark89 is strongly
        discouraged, having been superceded by {CINT92} and {CFP92}.

        (1994-11-29)

SPECOL

        ["SPECOL - A Computer Enquiry Language for the
        Non-Programmer", B.T. Smith, Computer J 11:121 (1968)].

SPEC rate

        <benchmark> Results of the throughput measurement using {SPEC}
        {benchmark} suites {CINT92} and {CFP92}.  With the throughput
        measurement method, several copies of a given benchmark are
        executed.  The method is particularly suitable for
        {multiprocessor} systems.

        The results, called SPEC rate, express how many jobs of a
        particular type (characterised by the individual benchmark)
        can be executed in a given time (The SPEC reference time
        happens to be a week, the execution times are normalized with
        respect to a {VAX 11/780}).  The SPEC rates therefore
        characterise the capacity of a system for compute-intensive
        jobs of similar characteristics.

        See also {SPEC ratio}.

        (1994-11-14)

SPECrate_base_fp92

        <benchmark> A variant of {SPECrate_fp92} that reports
        "baseline" results, using stricter run rules.

        (1994-11-15)

SPECrate_fp92

        <benchmark> A {benchmark} result derived from the results of a
        set of {floating-point} benchmarks (the {geometric mean} of 14
        {SPEC rate}s from {CFP92}) run multiple times simultaneously,
        which can be used to estimate a machine's overall
        {multi-tasking} throughput for {floating-point} code.  It is
        typically used on {multiprocessor} machines.

        SPECrate_fp92 obsoletes SPECfpThruput89.

        (1994-11-14)

SPECrate_int92

        <benchmark> The integer {SPECrate} derived from the results of
        a set of integer benchmarks (the {geometric mean} of six {SPEC
        rate}s from {CINT92}) run multiple times simultaneously, and
        can be used to estimate a machine's overall {multi-tasking}
        throughput for integer code.  It is typically used on
        {multiprocessor} machines.

        SPECrate_int92 obsoletes SPECintThruput89.

        See also {SPECbaserate}.

        (1994-11-14)

SPEC ratio

        <benchmark> Results for each individual {benchmark} of the
        {SPEC} benchmark suites, for example {CINT92} and {CFP92},
        expressed as the ratio of the wall clock time to execute one
        single copy of the benchmark, compared to a fixed "SPEC
        reference time", which was chosen early-on as the execution
        time on a {VAX 11/780}.

        See also {SPEC rate}.

        (1994-11-14)

Spectrum

        {ZX Spectrum}

speculative evaluation

        <parallel> A technique used in {parallel processing} where
        some evaluation may be started before it is known whether it
        is needed (Eager evaluation).  This may result in some wasted
        processing and may introduce unnecessary non-terminating
        processes but it can reduce the overall run-time by making
        some needed results available earlier than they would be
        otherwise.

        Opposite: {conservative evaluation}.

        (1995-05-05)

speculative execution

        <processor> A technique allows a {superscalar} processor to
        keep its {functional units} as busy as possible by executing
        instructions before it is known that they will be needed.

        The {Intel P6} uses speculative execution.

        Compare {branch prediction}, {speculative evaluation}.

        (1995-05-05)

Speech Application Programming Interface

        <programming, standard> (SAPI) {Microsoft}'s standard {API}
        for speech synthesis and {speech recognition} in {Windows 95}.
        The idea is to let developers try out and use various
        low-level speech software from any number of verndors, while
        retaining the same API.

        Mike Rozak is the lead of the SAPI project at Microsoft.
        Numerous major speech vendors have announced SAPI-support
        plans.  {SRAPI}, the competing speech recognition API by
        {Lotus}/WordPerfect, is fast becoming obsolete.

        (1996-03-04)

speech recognition

        <application> (Or voice recognition) The identification of
        spoken words by a machine.  The spoken words are digitised
        (turned into sequence of numbers) and matched against coded
        dictionaries in order to identify the words.

        Most systems must be "trained," requiring samples of all the
        actual words that will be spoken by the user of the system.
        The sample words are digitised, stored in the computer and
        used to match against future words.  More sophisticated
        systems require voice samples, but not of every word.  The
        system uses the voice samples in conjunction with dictionaries
        of larger vocabularies to match the incoming words.  Yet other
        systems aim to be "speaker-independent", i.e. they will
        recognise words in their vocabulary from any speaker without
        training.

        Another variation is the degree with which systems can cope
        with connected speech.  People tend to run words together,
        e.g. "next week" becomes "neksweek" (the "t" is dropped).  For
        a voice recognition system to identify words in connected
        speech it must take into account the way words are modified by
        the preceding and following words.

        It has been said (in 1994) that computers will need to be
        something like 1000 times faster before large vocabulary (a
        few thousand words), speaker-independent, connected speech
        voice recognition will be feasible.

        (1995-05-05)

Speech Recognition Application Program Interface

        <programming> (SRAPI) {Novell, Inc.}'s high level {API} for
        {speech recognition} which will be rolled out with
        {WordPerfect} 7.0 and {Perfect Office} 7.0.  SRAPI is in
        competition with {SAPI} from {Microsoft}, a high level API
        which currently addresses command and control (but not yet
        dictation).

        [Byte; March 1996; page 30; "Battle of the Dictaion APIs"].

        (1996-03-12)

speech synthesis

        The generation of an sound waveform of human speech from a
        textual or phonetic description.  See also {speech
        recognition}.

        There are demonstrations which {say a number
        (http://www.cs.yale.edu/cgi-bin/saynumber.au)} or {say a
        phrase (http://wwwtios.cs.utwente.nl/say/form/)}.

SPEED

        Early system on LGP-30.  Listed in CACM 2(5):16 (May 1959).

Speedcoding

        John Backus, 1953.  A pseudocode interpreter for math on IBM
        701, IBM 650.  Sammet 1969, p.130.

Speedcoding 3

        Listed in CACM 2(5):16 (May 1959).

SPEEDEX

        Early system on IBM 701.  Listed in CACM 2(5):16 (May 1959).

speedometer

        A pattern of lights displayed on a linear set of LEDs (today)
        or nixie tubes (yesterday, on ancient mainframes).  The
        pattern is shifted left every N times the operating system
        goes through its {main loop}.  A swiftly moving pattern
        indicates that the system is mostly idle; the speedometer
        slows down as the system becomes overloaded.  The speedometer
        on Sun Microsystems hardware bounces back and forth like the
        eyes on one of the Cylons from the wretched "Battlestar
        Galactica" TV series.

        Historical note: One computer, the GE 600 (later Honeywell
        6000) actually had an *analog* speedometer on the front panel,
        calibrated in instructions executed per second.

spell

        {incantation}

spelling flame

        <messaging> A {Usenet} posting ostentatiously correcting a
        previous article's spelling, possibly as a way of casting
        scorn on the point the article was trying to make, instead of
        actually responding to that point (compare {dictionary
        flame}).  Of course, people who are more than usually slovenly
        spellers are prone to think *any* correction is a spelling
        flame.  It's an amusing comment on human nature that spelling
        flames themselves often contain spelling errors.

        (1994-11-22)

Sperry Corporation

        <company> The company which merged with the {Burroughs
        Corporation} to form {Unisys Corporation}.  Divisions included
        {Sperry Univac}, Sperry Flight Systems, and others.  Some of
        these were sold off after the merger.

        (1995-03-27)

Sperry Univac

        <company> One of the divisions of {Sperry Corporation} at the
        time that company merged with the {Burroughs Corporation} to
        form {Unisys Corporation}.

        [Connection with the {Univac} computer?]

        (1994-11-22)

SPG

        System Program Generator.  A compiler-writing language.

        ["A System Program Generator", D. Morris et al, Computer J
        13(3) (1970)].

SPGA
        
        {Staggered Pin Grid Array}

Spice Lisp

        <language> A flavour of {Lisp}, the sources of which (in Lisp)
        are available from {CMU}.

        (1998-03-14)

SPID

        Service Provider ID

spider

        <World-Wide Web> (Or "robot", "crawler") A program that
        automatically explores the {World-Wide Web} by retrieving a
        document and recursively retrieving some or all the documents
        that are referenced in it.  This is in contrast with a normal
        {web browser} operated by a human that doesn't automatically
        follow links other than {inline images} and {URL redirection}.

        The algorithm used to pick which references to follow strongly
        depends on the program's purpose.  {Index}-building spiders
        usually retrieve a significant proportion of the references.
        The other extreme is spiders that try to validate the
        references in a set of documents; these usually do not
        retrieve any of the links apart from redirections.

        The {standard for robot exclusion} is designed to avoid some
        problems with spiders.

        Early examples are {Lycos}, {WebCrawler}, and {Yahoo!}.

        {Home
        (http://info.webcrawler.com/mak/projects/robots/robots.html)}.

        (1999-08-26)

Spiderweb

        <tool> A program for creating versions of {Knuth}'s {WEB}
        self-documenting programs ("{literate programming}").

        {(ftp://princeton.edu/)}.

        (1999-08-26)

spiffy

        /spi'fee/ 1. Said of programs having a pretty, clever, or
        exceptionally well-designed interface. "Have you seen the
        spiffy {X} version of {empire} yet?"  This was common
        mainstream slang during the 1940s.

        2. Said sarcastically of a program that is perceived to have
        little more than a flashy interface going for it.  Which
        meaning should be drawn depends delicately on tone of voice
        and context.

spike

        <jargon> To defeat a selection mechanism by introducing a
        (sometimes temporary) device that forces a specific result.
        The word is used in several industries; telephone engineers
        refer to spiking a relay by inserting a pin to hold the relay
        in either the closed or open state, and railroaders refer to
        spiking a track switch so that it cannot be moved.  In
        programming environments it normally refers to a temporary
        change, usually for testing purposes (as opposed to a
        permanent change, which would be called {hard-coded}).

        (1999-10-18)

spill

        {register spilling}

spin

        Equivalent to {buzz}.  More common among {C} and {Unix}
        programmers.

spiral model

        <programming> A {software life-cycle} model which supposes
        incremental development, using the {waterfall model} for each
        step, with the aim of managing risk.  In the spiral model,
        developers define and implement features in order of
        decreasing priority.

        [Barry Boehm, "A Spiral Model of Software Development and
        Enhancement", ACM SIGSOFT Software Engineering Notes, August
        1986].

        [Barry Boehm "A Spiral Model of Software Development and
        Enhancement" IEEE Computer, vol.21, #5, May 1988, pp 61-72].

        [Better explanation?]

        (1997-11-23)

SPIT

        Language for IBM 650.  (See IT).

SPITBOL

        SPeedy ImplemenTation of snoBOL.  "Macro SPITBOL - A SNOBOL4
        Compiler", R.B.K. Dewar et al, Soft Prac & Exp 7:95-113, 1971.
        Current versions: SPITBOL-68000, Sparc SPITBOL from Catspaw
        Inc, (719)539-3884.

SP/k

        <language> (Subset PL/I, k=1..8) A series of {PL/I} subsets,
        simplified for student use.

        ["SP/k: A System for Teaching Computer Programming", R.C. Holt
        et al, CACM 20(5):301-309, May 1977].

        (1997-12-27)

SPL

        1. Synchronous Programming Language.  A DSP language.
        "Introduction to the SPL Compiler", Computalker Consultants,
        1986.

        2. Space Programming Language.  Realtime language used by the
        US Air Force for aerospace software.  Aka SPL/J6.  Similar to
        JOVIAL.  "Space Programming Language Development", SAMSO TP
        70-325, System Development Corp (Sep 1970).  (See CLASP).

        3. System Programming Language.  HP, 1977.  An ALGOL-like
        language for the HP3000 computer allowing inline assembly
        code.  MPE, the OS for the HP3000 was written in SPL.
        Pub.No.30000-90024, HP.  See also {SPLash!}.

        4. Systems Programming Language.

        PRIME Computer, 80's.  A variant of PL/I used on PRIME
        computers.  PL/I subset G, less I/O plus a few extensions.
        SPL User's Reference Guide, Prime.  (See PL/P.)

        5. Systems Programming Language.

        A PL/I subset/extension for the P1000.

        D.B. Wortman, U Toronto.

        Philips Data Sys, Netherlands, 1971.

        Symbolic constants, pointer arithmetic, inline assembly code.
        Used to implement compilers, operating systems, and database.

        ["Experiences With SPL", J. Klunder in Machine Oriented Higher
        Level Languages, W. van der Poel, N-H 1974, pp. 385-393].

        [Can 4 and 5 be the same?]

        6. Student Programming Language.

        A translator-interpreter for a dialect of {PL/I}.

        7. {Set Priority Level}

        (1995-02-07)

SPL/1

        {SPL/I}

SPLash!

        1. Software Research Northwest, 1987.  Compiler for SPL[3].

        2. Systems Programming LAnguage for Software Hackers.
        Mentioned in TeX for the Impatient, Paul W. Abrahams, A-W
        1990.

splash screen

        <programming> An initial screen displayed by interactive
        software, usually containing a logo, version information,
        author credits and/or a {copyright} notice.

        The term originated among {Macintosh} users and spread, the
        synonym {banner} was once also used.

        (1998-04-28)

splat

        1. Name used in many places (DEC, IBM, and others) for the
        asterisk ("*") character (ASCII 0101010).  This may derive
        from the "squashed-bug" appearance of the asterisk on many
        early line printers.

        2. Name used by some {MIT} people for the "#" character (ASCII
        35).

        3. (Rochester Institute of Technology) The {feature key} on a
        Mac (same as {alt}).

        4. An obsolete name used by some people for the
        {Stanford}/{ITS} {extended ASCII} circle-x character.  This
        character is also called "blobby" and "frob", among other
        names; it is sometimes used by mathematicians as a notation
        for "tensor product".

        5. An obsolete name for the semi-mythical {Stanford} {extended
        ASCII} circle-plus character.

        See also {ASCII}.

        (1995-01-19)

SPL/I

        Signal Processing Language One.

        (Or "SPL/1") A language designed by {Intermetrics} for
        acoustic {signal processing}.  It has graphics and
        multiprocessing features.

        ["SPL/I Language Reference Manual", M.S. Kosinski,
        Intermetrics Report 172-1 (July 1976)].

        (1995-01-19)

SPLINTER

        A {PL/I} {interpreter} with debugging features.

        [Sammet 1969, p.600].

        (1995-01-19)

split

        {chunker}

Split-C

        Parallel extension of {C} for distributed memory
        multiprocessors.  Aims to provide efficient low-level access
        to the underlying machine.

        {CM5 (ftp://ftp.cs.berkeley.edu/ucb/CASTLE/Split-C)}.
        Mail-list: split-c@boing.cs.berkeley.edu.

splot

        <graphics, tool> A graph plotting package from {Stanford
        University} which produces {encapsulated PostScript}.

        splot is more flexible than {gnuplot} in producing histograms,
        and you can set {font} and symbol sizes individually.

        (1997-09-26)

SPLX

        <language> Specification Language for Parallel cross-product
        of processes and sequential modules.

        ["Parallel Module Specification on SPLX", C.F. Nourani,
        SIGPLAN Notices 27(1):114-115, Jan 1992].

        (1997-09-26)

SPM

        {Sequential Parlog Machine}

SPMD

        {single processor/multiple data}

SPML

        {server-parsed HTML}

spod

        <chat> (Great Britain) A lower form of life found on {chat}
        systems and {MUD}s.  The spod has few friends in {RL} and uses
        chat instead, finding communication easier and preferable over
        the {net}.  He has all the negative traits of the {computer
        geek} without having any interest in computers per se.
        Lacking any knowledge of, or interest in, how networks work,
        and considering his access a God-given right, he is a major
        irritant to {sysadmins}, clogging up lines in order to reach
        new {MUD}s, following passed-on instructions on how to sneak
        his way onto {Internet} ("Wow!  It's in America!") and
        complaining when he is not allowed to use busy routes.  A true
        spod will start any conversation with "Are you male or
        female?" (and follow it up with "Got any good
        numbers/IDs/passwords?") and will not talk to someone
        physically present in the same terminal room until they log
        onto the same computer that he is using and enter {chat}.

        Compare {newbie}, {tourist}, {weenie}, {twink}, {terminal
        junkie}, {dweeb}.

        (1998-01-18)

spoiler

        1. A remark which reveals important plot elements
        from books or movies, thus denying the reader (of the article)
        the proper suspense when reading the book or watching the
        movie.

        2. Any remark which telegraphs the solution of a problem or
        puzzle, thus denying the reader the pleasure of working out
        the correct answer (see also {interesting}).  Either sense
        readily forms compounds like "total spoiler", "quasi-spoiler"
        and even "pseudo-spoiler".

        By convention, {Usenet} news articles which are spoilers in
        either sense should contain the word "spoiler" in the Subject:
        line, or guarantee via various tricks that the answer appears
        only after several screens-full of warning, or conceal the
        sensitive information via {rot13}, or some combination of
        these techniques.

        (1995-01-18)

sponge

        A special case of a {Unix} {filter} that reads its entire
        input before writing any output; the canonical example is a
        sort utility.  Unlike most filters, a sponge can conveniently
        overwrite the input file with the output data stream.  If a
        file system has {file versioning} (as {ITS} did and {VMS} does
        now) the sponge/filter distinction loses its usefulness,
        because directing filter output would just write a new
        version.

        See also {slurp}.

        (1995-01-18)

spoo

        Variant of {spooge}, sense 1.

spoof

        See {spoofing}.

spoofing

        A technique used to reduce network overhead, especially in
        {wide area network}s (WAN).

        Some network {protocol}s send frequent packets for management
        purposes.  These can be {routing} updates or {keep-alive}
        messages.  In a {WAN} this can introduce significant overhead,
        due to the typically smaller {bandwidth} of WAN connections.

        Spoofing reduces the required bandwidth by having devices,
        such as {bridge}s or {router}s, answer for the remote devices.
        This fools (spoofs) the {LAN} device into thinking the remote
        LAN is still connected, even though it's not.  The spoofing
        saves the WAN bandwidth, because no packet is ever sent out on
        the WAN.

        LAN {protocol}s today do not yet accommodate spoofing easily.

        ["Network Spoofing" by Jeffrey Fritz, BYTE, December 1994,
        pages 221 - 224].

        (1995-01-13)

spooge

        /spooj/ Inexplicable or arcane code, or random and probably
        incorrect output from a computer program.

        (1995-01-12)

SPOOL

        <operating system> Acronym for {Simultaneous Peripheral
        Operation On-Line}; but see also {spool}.

        (1996-05-20)

Spool

        <language> An {object-oriented} {logic programming} language.

        ["An Experience with a Prolog Based Language", K. Fukunaga et
        al, SIGPLAN Notices 21(11):224-231 (Nov 1986) (OOPSLA '86)].

        (1995-03-25)

spool

        <operating system> To send files to some device or program (a
        "{spooler}" or {demon}) that puts them in a {queue} for later
        processing of some kind.  Without qualification, the spooler
        is the "print spooler" controlling output of jobs to a
        {printer}; but the term has been used in connection with other
        {peripherals} (especially {plotters} and graphics devices) and
        occasionally even for input devices.

        The term "SPOOL" has been attributed to {IBM} as an acronym
        for {Simultaneous Peripheral Operation On-Line} but it's
        widely thought to have been contrived for effect.

        [No connection with "spool of magnetic tape"?]

        (1996-05-20)

spooler

        <operating system, tool> Software or hardware to which data is
        {spool}ed and which processes that data (e.g. prints it) in the
        {background}.

        (1995-03-25)

spool file

        Any file to which data is {spool}ed to await the next stage of
        processing.  Especially used in circumstances where spooling
        the data copes with a mismatch between speeds in two devices
        or pieces of software.  For example, when you send mail under
        Unix, it's typically copied to a spool file to await a
        transport {demon}'s attentions.

SpoolView

        <tool> A printing system for {Unix}.  SpoolView can control
        several {printers} connected to a {TCP/IP} network.  Different
        printers can be loaded with different paper and forms.

        After submitting a print request, the user can change the
        printer, form, number of copies or priority.

        Administrators can register new printers, change paper forms
        on printers, cancel requests, suspend printers.

        {Light Infocon S.A. (http://www.light.com.br/)}.

        (1998-12-21)

spreadsheet

        <application, tool> (Or rarely "worksheet") A type of
        {application program} which manipulates numerical and string
        data in rows and columns of cells.  The value in a cell can be
        calculated from a formula which can involve other cells.  A
        value is recalculated automatically whenever a value on which
        it depends changes.  Different cells may be displayed with
        different formats.

        Some spreadsheet support three-dimensional matrices and cyclic
        references which lead to iterative calculation.

        An essential feature of a spreadsheet is the copy function
        (often using {drag-and-drop}).  A rectangular area may be
        copied to another which is a multiple of its size.  References
        between cells may be either absolute or relative in either
        their horizontal or vertical index.  All copies of an absolute
        reference will refer to the same row, column or cell whereas a
        relative reference refers to a cell with a given offset from
        the current cell.

        Many spreadsheets have a "What-if" feature.  The user gives
        desired end conditions and assigns several input cells to be
        automatically varied.  An area of the spreadsheet is assigned
        to show the result of various combinations of input values.

        Spreadsheets usually incorporate a {macro language}, which
        enables third-party writing of worksheet applications for
        commercial purposes.

        In the 1970s, a {screen editor} based calculation program
        called {Visi-Calc} was introduced.  It was probably the first
        commercial spreadsheet program.  Soon {Lotus Development
        Corporation} released the more sophisticated {Lotus 1-2-3}.
        Clones appeared, (for example {VP-Planner} from {Paperback
        Software} with {CGA} graphics, {Quattro} from {Borland}) but
        Lotus maintained its position with world-wide marketing and
        support - and lawyers!  For example, Borland was forced to
        abandon its Lotus-like {pop-up menu}.

        While still developing 1-2-3, Lotus introduced {Symphony},
        which had simultaneously active windows for the spreadsheet,
        graphs and a {word processor}.

        {Microsoft} produced {MultiPlan} for the {Macintosh}, which
        was followed by {Excel} for Macintosh, long before {Microsoft
        Windows} was developed.

        When {Microsoft Windows} arrived Lotus was still producing the
        {text-based} 1-2-3 and Symphony.  Meanwhile, {Microsoft}
        launched its {Excel} spreadsheet with interactive graphics,
        graphic charcters, mouse support and {cut-and-paste} to and
        from other Windows applications.  To compete with Windows
        spreadsheets, Lotus launched its {Allways} add-on for 1-2-3 -
        a post-processor that produced Windows-quality graphic
        characters on screen and printer.  The release of Lotus 1-2-3
        for Windows was late, slow and buggy.

        Today, Microsoft, Lotus, Borland and many other companies offer
        Windows-based spreadsheet programs.

        The main end-users of spreadsheets are business and science.

        Spreadsheets are an example of a non-algorithmic programming
        language.

        [Dates?]

        (1995-03-28)

spread spectrum communications

        <communications> (Or "spread spectrum") A technique by which a
        signal to be transmitted is modulated onto a {pseudo-random},
        noise-like, wideband {carrier signal}, producing a
        transmission with a much larger {bandwidth} than that of the
        data {modulation}.

        Reception is accomplished by {cross correlation} of the
        received wide band signal with a synchronously generated
        replica of the carrier.

        Spread-spectrum communications offers many important benefits:

        Low probability of detection, interception or determination of
        the transmitter's location.  To an observer who does not
        possess information about the carrier, the transmission is
        indistinguishable from other sources of noise.

        High immunity against interference and jamming (intentional
        interference).  The presence of (narrowband) interference
        signals only decreases the channel's {signal-to noise ratio}
        and therefore its {error rate}, which can be dealt with by
        using {error correcting codes}.  A jammer would have to use
        wideband interference signals, which would require very high
        power (again assuming that the jammer does not know the
        characteristics of the carrier).

        High immunity against adverse effects of multipath
        transmission.  In the presence of multiple paths between
        transmitter and receiver (e.g. by reflected signals), signals
        of certain frequencies can be cancelled at certain locations
        when the difference in path delays between multiple
        propagation paths cause the signals to arrive out of phase.
        This effect is particularly troublesome in narrowband mobile
        communications, where it causes "blind spots" - locations
        where no signal can be received.

        Transmitter/receiver pairs using independent random carriers
        can operate in the same frequency range with minimal
        interference.  These are called {Code Division Multiple
        Access} (CDMA) systems.  Increasing the number of T/R pairs
        again only gradually increases each channel's error rate.  In
        contrast, narrowband systems can only accomodate a fixed
        number of channels determined by available bandwidth and
        channel width (data rate).

        When the data modulation cannot be distinguished from the
        carrier modulation, and the carrier modulation is random to an
        unwanted observer, the spread spectrum system assumes
        cryptographic capabilities, with the carrier modulation taking
        on the function of a key in a {cipher} system.  The most
        important practical modes of spread spectrum coding are Direct
        Sequence (DS) and Frequency Hopping (FH).  In DS, a pseudo
        random sequence is phase-shift-keyed (PSK) onto the carrier.
        In FH, a {frequency synthesizer} is driven by a pseudo random
        sequence of numbers to generate output frequencies that "hop
        around" in the desired frequency range.

        Spread Spectrum development began during World War II, with
        the earliest studies dating from the 1920s.  Most papers
        remained classified until the 1980s.  The technique is used
        extensively in military communications today.  Commercial
        applications include {cellular telephony} and mobile
        networking.

        ["Spread Spectrum Communications", Charles E. Cook et al
        (Ed.), IEEE Press, New York, 1983. ISBN 0-87942-170-3].

        (1996-02-06)

SPRING

        {String PRocessING language}

SPRINT

        List processing language involving stack operations.  "SPRINT
        - A Direct Approach to List Processing Languages", C.A. Kapps,
        Proc SJCC 30 (1967).  Sammet 1969, p 462.

Sprintnet

        A public {packet-switched} network using the {ITU-T} {X.25}
        {protocol}s, that provides {dial-up} access to services like
        {Delphi}, {Portal}, {GEnie} and {Compuserve}.

        (1994-10-17)

Sprite

        <operating system> An {operating system} from {Berkeley}
        supporting {multiprocessing} and distributed files.

        [Details?  References?]

        (1994-10-17)

sprite

        <graphics, file format> A small {bitmap} image, often used in
        animated games but also sometimes used as a synonym for
        {icon}.

        (1997-06-29)

sprocket feed

        <printer> (Or "tractor feed", "pin feed") A method some
        {printers} use to move paper by rotating wheels with pins or
        studs (tractors) that engage holes along the sides of the
        (usually fanfold) paper.  A sprocket feed printer does not
        slip unless the paper jams, but cannot feed standard typing
        paper or work with a {sheet feeder} like {friction feed}.

        Some paper for sprocket feed printers has the edge strips with
        the holes in detachable from the rest of the paper.  These
        strips are known as {chad} (and other names).

        (1997-06-29)

SPS

        Symbolic Programming System.  Assembly language for IBM 1620.

SPSS

        {Statistical Package for the Social Sciences}

SPSS, Inc.

        <company> A company selling a variety of {software} under the
        general description of "Statistical Product and Service
        Solutions".

        The company was founded to distribute and support the
        {Statistical Package for the Social Sciences}, but now
        supplies software or four broad markets: {data mining},
        survey/market research, quality improvement, and scientific
        research.

        {Home (http://www.spss.com/)}.

        (1999-07-20)

SPUR

        An early system on the {IBM 650}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-12-01)

SPX

        1. <networking> {Sequenced Packet Exchange}.

        2. <application> A graphics program for the {Atari} microcomputer.

        {(ftp://src.doc.ic.ac.uk/computing/systems/atari/umich/Graphics/spx_v18
.lzh)}.

        3. {Simplex}.

        (1997-03-04)

spx

        <filename extension> The {filename extension} for {Screen
        Peace} eXtension files.

        (1995-03-14)

\sqcap

        {LaTeX} inverted square U.  The symbol for {greatest lower
        bound}.

        (1994-12-01)

\sqcup

        {LaTeX} square U.  The symbol for {least upper bound}.

        (1994-12-01)

SQE

        {Signal Quality Error}

        {IEEE 802.3}, {Ethernet}.  Equivalent to {D/I/X} "{Collision
        Presence Test}".

        (1995-04-14)

SQL

        <language, database, standard> /S Q L/ An industry-standard
        language for creating, updating and querying {relational
        database management systems}.

        SQL was developed by {IBM} in the 1970s for use in {System R}.
        It is the {de facto standard} as well as being an {ISO} and
        {ANSI} {standard}.  It is often embedded in general purpose
        programming languages.

        The first SQL standard, in 1986, provided basic language
        constructs for defining and manipulating {tables} of data; a
        revision in 1989 added language extensions for {referential
        integrity} and {generalised integrity constraints}.  Another
        revision in 1992 provided facilities for {schema} manipulation
        and {data administration}, as well as substantial enhancements
        for data definition and data manipulation.

        Development is currently underway to enhance SQL into a
        computationally complete language for the definition and
        management of {persistent}, complex objects.  This includes:
        generalisation and specialisation hierarchies, {multiple
        inheritance}, user defined data types, {triggers} and
        {assertions}, support for {knowledge based systems},
        {recursive query expressions}, and additional data
        administration tools.  It also includes the specification of
        {abstract data types} (ADTs), object identifiers, {method}s,
        {inheritance}, {polymorphism}, {encapsulation}, and all of the
        other facilities normally associated with object data
        management.

        The emerging {SQL3} standard is expected to be complete in
        1998.

        According to Allen G. Taylor, SQL does *not* stand for
        "Structured Query Language".  That, like "SEQUEL" (and its
        pronunciation /see'kw*l/), was just another unofficial name
        for a precursor of SQL.

        {SQL Standards (http://www.jcc.com/sql_stnd.html)}.

        {An SQL parser
        (ftp://ftp.uu.net/published/oreilly/nutshell/lexyacc/)} is
        described in "Lex & Yacc", by Levine, Mason & Brown published
        by O'Reilly.

        {The 1995 SQL Reunion: People, Projects, and Politics
        (http://www.mcjones.org/System_R/SQL_Reunion_95/)}.

        ["A Guide to the SQL Standard", C.J. Date, A-W 1987].

        ["SQL for Dummies", Allen G. Taylor, IDG Books Worldwide].

        (1998-12-01)

SQL2

        <database, standard, language> An extended version of the
        {SQL} {standard}.

        (1995-03-20)

SQL3

        <database, standard, language> A draft {standard} for another
        extension of {SQL}.  The latest SQL3 Working Draft addresses
        the requirement for {object}s and "object identifiers" in SQL
        and also specifies supporting features such as
        {encapsulation}, {subtype}s, {inheritance}, and
        {polymorphism}.

        In the USA, SQL3 is being processed as both an {ANSI} Domestic
        ("D") project and as an {ISO} project.  It is expected to be
        complete in 1998.

        {November 1992 paper
        (ftp://speckle.ncsl.nist.gov/isowg3/dbl/BASEdocs/sql3overview.txt)}.

        Working draft: {plain text
        (ftp://gatekeeper.dec.com/pub/standards/sql/x3h2-93-091.txt)},
        {PostScript
        (ftp://gatekeeper.dec.com/pub/standards/sql/x3h2-93-091.ps)}.

        [ISO/IEC SQL Revision.  ISO-ANSI Working Draft Database
        Language SQL (SQL3), Jim Melton - Editor, document ISO/IEC
        JTC1/SC21 N6931, {ANSI}, July 1992].

        [Current Status?]

        (1995-03-20)

SQL Access Group

        <body> The origanisaton which defined {Call-Level Interface},
        on which {ODBC} is based.  It is now part of {X/Open}.

        [Address, details?]

        (1995-11-05)

SQL/DS

        A database package from IBM including a relational DBMS.

SQL Module Language

        A language used to interface other languages ({Ada}, {C},
        {COBOL}) to {SQL}-based {DBMS}es.  It is an {ANSI} {standard}.

        Version: Ada/{SAME} by {Informix}.

        (1994-11-23)

SQL Server

        <database> (Note capitalised)

        1. {Sybase SQL Server}.

        Sybase SQL Server Professional for {Solaris} and {Windows NT}.

        2. {Microsoft SQL Server}.

        [What is the connection between these two?]

        (1997-12-07)

SQL server

        <database> (Note not capitalised) Any {database management
        system} (DBMS) that can respond to queries from {clients}
        formatted in the {SQL} language.

        Two popular examples are {Microsoft SQL Server} and {Sybase
        SQL Server}.

        (1997-12-07)

SQLWindows

        <programming, product> A package used to graphically develop
        {MS-Windows} {client-server} applications.  Sold by {Gupta}
        Corporation.

        {Home (http://www.wji.com/gupta/w1000030.html)}.
        {Demos FTP (ftp://wji.com/gupta/sqlw.demodisk/)}.

        (1995-07-05)

SQR

        <database, language> A {fourth generation language} for the
        creation of reports from {databases}.  SQR is interpreted to
        dynamically generate {SQL} queries and format the results.

        Originally a {Sybase} product, it was then sold to MITI, who
        subsequently changed their name to {SQRIBE}.

        SQR Server supports {native} database access for all major
        {DBMS}s and the use of {platform} independent {Java} code.

        (1998-09-19)

SQRIBE

        <company> The company formerly known as MITI which bought
        {SQR} from {Sybase}.

        {Home (http://www.sqribe.com/)}.

        (1998-09-24)

\sqsubseteq

        {LaTeX} name for a symbol like a capital E without the bottom
        half of its vertical line.

        In {domain theory},

                x \sqsubseteq y

        means x is no more defined that y.  This expression only has
        meaning if x and y are {comparable} elements of some
        {partially ordered set}.

        (1994-11-24)

Square

        <language> A {query language}, a precursor to {SQL}.

        ["Specifying Queries as Relational Expressions: The SQUARE
        Data Sublanguage", R.E. Boyce et al, CACM 18(11):621-628 (Nov
        1975)].

        (1995-05-02)

square-headed boyfriend

        {square-headed girlfriend}

square-headed girlfriend

        <humour> A computer.

        (1999-01-15)

square tape

        <storage> {Mainframe} magnetic tape cartridges for use with
        {IBM 3480} or compatible tape drives; or {QIC} tapes used on
        {workstation}s and {microcomputer}s.  The term comes from the
        square (actually rectangular) shape of the cartridges;
        contrast {round tape}.

Squeak

        "Squeak: A Language for Communicating with Mice", L. Cardelli
        et al, Comp Graphics 19(3):199-204 (July 1985) (See
        Newsqueak).

Squiggol

        {Bird-Meertens Formalism}

squirt the bird

        <jargon, communications> To transmit a signal up to a
        satellite.  "Crew and talent are ready, what time do we squirt
        the bird?"

        (1997-04-29)

SR

        <language> Synchronizing Resources.

        A language for concurrent programming.

        "Resources" encapsulate processes and variables they share.
        Each Resource can be separately compiled.  "Operations"
        provide the primary mechanism for process interaction.

        SR provides a novel integration of the mechanisms for invoking
        and servicing operations.  Consequently, it supports local and
        {remote procedure call}, {rendezvous}, {message passing},
        {dynamic process creation}, {multicast}, {semaphore}s and
        {shared memory}.

        Version 2.2 has been ported to {Sun 3}, {Sun 4}, {Decstation},
        {SGI Iris}, {HP PA}, {HP 9000/300}, {NeXT}, {Sequent
        Symmetry}, {DG AViiON}, {RS/6000}, {Multimax}, {Apollo} and
        others.

        {(ftp://cs.arizona.edu/sr/sr.tar.Z)}

        E-mail: <sr-project@cs.arizona.edu>.  Mailing list:
        info-sr-request@cs.arizona.edu.

        ["An Overview of the SR Language and Implementation", G.
        Andrews, ACM TOPLAS 10:51-86 (Jan 1988)].

        ["The SR Programming Language: Concurrency in Practice",
        G.R. Andrews et al, Benjamin/Cummings 1993, ISBN
        0-8053-0088-0].

        (1992-09-01)

sr

        <networking> The {country code} for Suriname.

        (1999-01-27)

SRAM

        {static random access memory}

SRAPI

        {Speech Recognition Application Program Interface}

SRC Modula-3

        Version 2.11

        compiler(->C), run-time, library, documentation

        The goal of Modula-3 is to be as simple and safe as it
                can be while meeting the needs of modern systems
                programmers.  Instead of exploring new features, we
                studied the features of the Modula family of languages
                that have proven themselves in practice and tried to
                simplify them into a harmonious language.  We found
                that most of the successful features were aimed at one
                of two main goals: greater robustness, and a simpler,
                more systematic type system.  Modula-3 retains one of
                Modula-2's most successful features, the provision for
                explicit interfaces between modules.  It adds objects
                and classes, exception handling, garbage collection,
                lightweight processes (or threads), and the isolation
                of unsafe features.

        conformance:    implements the language defined in SPwM3.

        ports: i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix
        68020/HP-UX RS/6000/AIX IBMRT/4.3 68000/NEXTSTEP i860/SVR4
        SPARC/SunOS 68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix

        Mailing list:   comp.lang.modula3

        E-mail: Bill Kalsow <kalsow@src.dec.com>

        From DEC/SRC, Palo Alto, CA.  "Modula-3 Report (revised)"
        Luca Cardelli et al.

        {(ftp://gatekeeper.dec.com/DEC/Modula-3/)}

        (1992/02/09)

SRDL

        Small {algebraic specification language}, allows {distfix
        operator}s.

        ["A Constructive Method for Abstract Algebraic Software
        Specification", H.  Klaeren, Theor Computer Sci 30,
        pp.134-204, 1984].

SR flip-flop

        <hardware> (Or "RS flip-flop") A "set/reset" {flip-flop} in
        which activating the "S" input will switch it to one stable
        state and activating the "R" input will switch it to the other
        state.

        The outputs of a basic SR flip-flop change whenever its R or S
        inputs change appropriately.  A clocked SR flip-flop has an
        extra clock input which enables or disables the other two
        inputs.  When they are disabled the outputs remain constant.

        If we connect two clocked SR flip-flops so that the Q and /Q
        outputs of the first, "master" flip-flop drive the S and R
        inputs of the second, "slave" flip-flop, and we drive the
        slave's clock input with an inverted version of the master's
        clock, then we have an {edge-triggered} RS flip-flop.  The
        external R and S inputs of this device are latched on one edge
        (transition) of the clock (e.g. the falling edge) and the
        outputs will only change on the next opposite (rising) edge.

        If both R and S inputs are active (when enabled), a {race
        condition} occurs and the outputs will be in an indeterminate
        state.  A {JK flip-flop} avoids this possibility.

        {(http://www.play-hookey.com/digital/logic4.html)}.

        (1997-05-15)

SRI

        {SRI International}

SRI International

        <company> One of the world's largest contract research firms.
        Founded in 1946 in conjuction with {Stanford University} as
        the Stanford Research Institute, they later became fully
        independent and were incorporated as a non-profit organisation
        under U.S. and California laws.

        SRI does research and development in many areas, independently
        and for hire.  They produce and sell reports on the
        independent research.

        {Home (http://www.sri.com/)}.

        Address: Palo Alto, California, USA; Cambridge, UK.

        (1995-01-26)

SRL

        1. Bharat Jayaraman.

        ["Towards a Broader Basis for Logic Programming",
        B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

        2. {Schema Representation language}.

        3. {Structured Robot Language}.

        C. Blume & W. Jacob, U Karlsruhe.

        (1995-01-26)

SRP

        A {data link layer} {protocol}.

SS7

        {Signalling System 7}

SSA

        {Serial Storage Architecture}

SSADM

        A software engineering method and toolset required by some UK
        government agencies.

SSBA

        {Suite Synthetique des Benchmarks de l'AFUU}

ssh

        <operating system> 1. {Steve's Shell}.

        2. {Secure Shell}.

        (1997-01-07)

SSI

        1. <electronics> {small scale integration}.

        2. <computer> A kind of {PDP-11}(?).

        [What kind?]

        3. <World-Wide Web> {server-side include}.

        (1996-09-08)

SSII

        {Societe de Service en Ingenierie Informatique}

SSL

        1. <language> {Synthesizer Specification Language}.

        2. <language> {Syntax/Semantic Language} (S/SL).

        3. <networking, World-Wide Web> {Secure Sockets Layer}.

        (1996-09-08)

S/SL

        {Syntax/Semantic Language}

SSLeay

        <networking, security, protocol> A free implementation of
        {Netscape}'s {Secure Socket Layer} {protocol}, coded from
        scratch, using only the publically available documentation of
        the various protocols, by Eric Young <eay@mincom.oz.au>.

        SSLeay supports the {DES}, {RSA}, {RC4}, and {IDEA}
        {encryption} {algorithms}.

        [Home?]

        (1996-08-25)
SSMA

        <chat> some such meaningless acronym.

        (1998-10-30)

st

        <networking> The {country code} for Sao Tome and Principe.

        (1999-01-27)

STAB

        <language> A descendent of {BCPL}.

        (1996-08-25)

STAB-11

        ["The Translation and Interpretation of STAB-11", A.J.T. Colin
        et al, Soft Prac & Exp 5(2):123-138, Apr 1975].

        (1996-08-25)

STAC

        1. <language> {Storage Allocation and Coding Program}.

        2. <company> The company responsible for {Stacker} and {stac
        compression}.

        {Home (http://www.stac.com/)}.

        (1998-06-08)

stac compression

        <communications> A {data compression} technique from {STAC},
        used with {modems}.  Stac compression is capable of
        compressing data by a factor of about four.

        [Details?]

        (1998-06-08)

stack

        <programming> A data structure for storing items which are to
        be accessed in last-in first-out order.

        The operations on a stack are to create a new stack, to "push"
        a new item onto the top of a stack and to "pop" the top item
        off.  Error conditions are raised by attempts to pop an empty
        stack or to push an item onto a stack which has no room for
        further items (because of its implementation).

        Most processors include support for stacks in their
        {instruction set architecture}s.  Perhaps the most common use
        of stacks is to store subroutine arguments and return
        addresses.  This is usually supported at the {machine code}
        level either directly by "jump to subroutine" and "return from
        subroutine" instructions or by {auto-increment} and
        auto-decrement {addressing mode}s, or both.  These allow a
        contiguous area of memory to be set aside for use as a stack
        and use either a special-purpose {register} or a general
        purpose register, chosen by the user, as a {stack pointer}.

        The use of a stack allows subroutines to be {recursive} since
        each call can have its own calling context, represented by a
        stack frame or {activation record}.  There are many other
        uses.  The programming language {Forth} uses a data stack in
        place of variables when possible.

        Although a stack may be considered an {object} by users,
        implementations of the object and its access details differ.
        For example, a stack may be either ascending (top of stack is
        at highest address) or descending.  It may also be "full" (the
        stack pointer points at the top of stack) or "empty" (the
        stack pointer points just past the top of stack, where the
        next element would be pushed).  The full/empty terminology is
        used in the {Acorn Risc Machine} and possibly elsewhere.

        In a list-based or {functional language}, a stack might be
        implemented as a {linked list} where a new stack is an empty
        list, push adds a new element to the head of the list and pop
        splits the list into its head (the popped element) and tail
        (the stack in its modified form).

        At {MIT}, {pdl} used to be a more common synonym for stack,
        and this may still be true.  {Knuth} ("The Art of Computer
        Programming", second edition, vol. 1, p. 236) says:

          Many people who realised the importance of stacks and queues
          independently have given other names to these structures:
          stacks have been called push-down lists, reversion storages,
          cellars, dumps, nesting stores, piles, last-in-first-out
          ("LIFO") lists, and even yo-yo lists!

        (1995-04-10)

Stack Environment Control Dump machine

        (SECD machine) The first {abstract machine} for reducing
        {lambda-calculus} expressions, invented by P. J. Landin.  The
        machine has four {register}s holding pointers to {linked
        list}s operated as push-down {stack}s which hold the
        information required for the evaluation of an expression.  The
        registers point to (1) Stack which holds the arguments of
        partially evaluated expressions and results of completely
        evaluated ones, (2) Environment where the current expression
        being evaluated is stored, (3) Control which holds the machine
        instructions that manipulate the contents of the four
        registers that represent the expression being evaluated, (4)
        Dump on which the state of the machine is temporarily saved
        during the evaluation of expressions.  See also {Lispkit}.

stack frame

        {activation record}

stacking order

        <graphics> The relationship between {window}s that (partially)
        obscure each other.  A {window manager} will include commands
        to alter the stacking order by bringing a chosen window to the
        front (top) or back (bottom) of the stack.

        (1995-03-21)

stack loader

        <hardware, storage> (Or "autoloader") A {magnetic tape} drive
        that can automatically fetch tapes from a stack and load them.

        Compare {jukebox}.

        [Sequential or random access?]

        (1996-12-12)

stack overflow

        <programming> An error condition which results from attempting
        to {push} more items onto a {stack} than space has been
        allocated for.  Often, this will simply overwrite the adjacent
        memory locations causing hard-to-trace {bug}s.

        Stack overflow can result, for example, from an insufficient
        number of stack frames to handle hardware {interrupt}s.

        (1995-03-21)

stack pointer

        <architecture, programming> (SP) A {register} or variable
        pointing to the top of a {stack}.  If the stack is a "full"
        stack the SP points to the most recently {push}ed item, else
        if it is an "empty" stack, the PS points to the first empty
        location, where the next item will be pushed.

        (1995-03-21)

stack puke

        Some processor architectures are said to "puke their guts onto
        the stack" to save their internal state during {exception}
        processing.  The {Motorola 68020}, for example, regurgitates
        up to 92 bytes on a {bus fault}.  On a {pipeline}d machine,
        this can take a while.

        (1994-11-01)

stack traceback

        <programming> (The results of) determining the sequence of
        nested procedure calls a program has made up to a certain
        point in its execution.  A traceback may also show values of
        procedure arguments and {local variable}s stored on the stack.

        (1995-03-21)

STAGE2

        A {macro} language.

        ["The Mobile Programming System: STAGE2", W.M.  Waite, CACM
        13:415 (1970)].

        (1994-10-27)

Staggered Pin Grid Array

        <hardware> (SPGA) A style of {integrated circuit} socket or
        pin-out with a staggered grid of pins around the edge of the
        socket, positioned as several squares, one inside the other.

        SPGA is commonly used on {motherboards} for {processors},
        e.g. {Socket 5}, {Socket 7} and {Socket 8}.

        See also {PGA}.

        [Better description?]

        (1999-08-04)

staircase

        {jaggies}

staircasing

        {jaggies}

stale pointer bug

        <programming> (Or "aliasing bug") A class of subtle
        programming errors that can arise in code that does {dynamic
        allocation}, especially via {malloc} or equivalent.

        If several {pointers} address (are "aliases for") a given hunk
        of storage, it may happen that the storage is freed or
        reallocated (and thus moved) through one alias and then
        referenced through another, which may lead to subtle (and
        possibly intermittent) lossage depending on the state and the
        allocation history of the malloc {arena}.  This bug can be
        avoided by never creating aliases for allocated memory, or by
        use of a {higher-level language}, such as {Lisp}, which
        employs a {garbage collector}.

        The term "aliasing bug" is nowadays associated with {C}
        programming, it was already in use in a very similar sense in
        the {ALGOL 60} and {FORTRAN} communities in the 1960s.

        See also {smash the stack}, {fandango on core}, {memory leak},
        {memory smash}, {spam}.

        (1995-05-09)

Stallman, Richard M.

        {Richard Stallman}

stand-alone

        Capable of operating without other programs, libraries,
        computers, hardware, networks, etc.  Exactly what is absent is
        presumed to be obvious from context.

        "We only run Windows on stand-alone PCs because it's too
        dangerous to run it on networked ones."

        (1998-02-11)

standard

        <standard> Standards are necessary for {interworking},
        {portability}, and {reusability}.  They may be {de facto
        standards} for various communities, or officially recognised
        national or international standards.

        {Andrew Tanenbaum}, in his Computer Networks book, once said,
        "The nice thing about standards is that there are so many of
        them to choose from", a reference to the fact that competing
        standards become a source of confusion, division,
        obsolescence, and duplication of effort instead of an
        enhancement to the usefulness of products.

        Some bodies concerned in one way or another with computing
        standards are {IAB} ({RFC} and {STD}), {ISO}, {ANSI}, {DoD},
        {ECMA}, {IEEE}, {IETF}, {OSF}, {W3C}.

        (1999-07-06)

Standard Commands for Programmable Instruments

        <standard> (SCPI) A standard complementing {IEEE 488},
        developed by {Hewlett-Packard} and promoted by the {SCPI
        Consortium}.

        (1994-11-01)

Standard d'Echange et de Transfert

        <standard> (SET) A French {standard} for exchange of {CAD}
        data.

        (1998-03-07)

standard for robot exclusion

        <World-Wide Web> A proposal to try to prevent the havoc
        wreaked by many of the early {World-Wide Web} {robots} when
        they retrieved documents too rapidly or retrieved documents
        that had side effects (such as voting).  The proposed standard
        for robot exclusion offers a solution to these problems.

        {(http://info.webcrawler.com/mak/projects/robots/norobots.html)}

        (1996-03-23)

Standard for the exchange of product model data

        (STEP) A draft {ISO} {standard} for the exchange of {CAD}
        data.

        See also {PDES}.

        (1995-02-22)

Standard Generalised Markup Language

        <spelling> {ISO} spell it "{Standard Generalized Markup
        Language}".

        (1996-12-13)

Standard Generalized Markup Language

        <language, text> (SGML) A generic {markup} language for
        representing documents.  SGML is an International Standard
        that describes the relationship between a document's content
        and its structure.  SGML allows document-based information to
        be shared and re-used across applications and computer
        {platforms} in an open, vendor-neutral format.  SGML is
        sometimes compared to {SQL}, in that it enables companies to
        structure information in documents in an open fashion, so that
        it can be accessed or re-used by any SGML-aware application
        across multiple platforms.

        SGML is defined in "ISO 8879:1986 Information processing --
        Text and office systems -- Standard Generalized Markup
        Language (SGML)", an {ISO} standard produced by {JTC} 1/SC 18
        and amended by "Amendment 1:1988".

        Unlike other common document file formats that represent both
        content and presentation, SGML represents a document's content
        {data} and structure (interrelationships among the data).
        Removing the presentation from content establishes a neutral
        format.  SGML documents and the information in them can easily
        be re-used by publishing and non-publishing {applications}.

        SGML identifies document elements such as titles, paragraphs,
        tables and chapters as distinct objects, allowing users to
        define the relationships between the objects for structuring
        data in documents.  The relationships between document
        elements are defined in a DTD (Document Type Descriptor).
        This is roughly analogous to a collection of {field}
        definitions in a {database}.  Once a document is converted
        into SGML and the information has been 'tagged', it becomes a
        database-like document.  It can be searched, printed or even
        programmatically manipulated by SGML-aware applications.

        Companies are moving their documents into SGML for several
        reasons:

        Reuse - separation of content from presentation facilitates
        multiple delivery formats like {CD-ROM} and {electronic
        publishing}.

        Portability - SGML is an international, platform-independent,
        standard based on {ASCII} text, so companies can safely store
        their documents in SGML without being tied to any one vendor.

        Interchange - SGML is a core data standard that enables
        SGML-aware applications to inter-operate and share data
        seamlessly.

        A central SGML document store can feed multiple processes in a
        company, so managing and updating information is greatly
        simplified.  For example, when an aeroplane is delivered to a
        customer, it comes with thousands of pages of documentation.
        Distributing these on paper is expensive, so companies are
        investigating publishing on CD-ROM.  If a maintenance person
        needs a guide for adjusting a plane's flight surfaces, a
        viewing tool automatically assembles the relevant information
        from the document {repository} as a complete document.  SGML
        can be used to define attributes to information stored in
        documents such as security levels.

        There are few clear leaders in the SGML industry which, in
        1993, was estimated to be worth US $520 million and is
        projected to grow to over US $1.46 billion by 1998.

        A wide variety tools can be used to create SGML systems.  The
        SGML industry can be separated into the following categories:

        Mainstream Authoring consists of the key {word processing}
        vendors like {Lotus}, {WordPerfect} and {Microsoft}.

        SGML Editing and Publishing includes traditional SGML
        authoring tools like {ArborText}, {Interleaf}, {FrameBuilder}
        and {SoftQuad Author}/Editor.

        SGML Conversions is one of the largest sectors in the market
        today because many companies are converting legacy data from
        mainframes, or documents created with mainstream word
        processors, into SGML.

        Electronic Delivery is widely regarded as the most compelling
        reason companies are moving to SGML.  Electronic delivery
        enables users to retrieve information on-line using an
        intelligent document viewer.

        Document Management may one day drive a major part of the
        overall SGML industry.

        SGML Document Repositories is one of the cornerstone
        technologies that will affect the progress of SGML as a data
        standard.

        {"ISO 8879:1986//ENTITIES Added Latin 1//EN"
        (http://www.ucc.ie/info/net/isolat1.html)} defines some
        characters.  [How are these related to {ISO 8859}-1?].

        {ISO catalogue entry (http://www.iso.ch/cate/d16387.html)}

        SGML parsers are available from
        {VU, NL (ftp://star.cs.vu.nl/Sgml)},
        {FSU (ftp://mailer.cc.fsu.edu/pub/sgml)},
        {UIO, Norway (ftp://ifi.uio.no/pub/SGML/SGMLS)}.

        See also {sgmls}.

        {Usenet} newsgroup: {news:comp.text.sgml}.

        ["SGML - The User's Guide to ISO 8879", J.M. Smith et al,
        Ellis Harwood, 1988].

        [Example of some SGML?]

        (1997-09-30)

standard input/output

        <programming, operating system> The predefined input/output
        channels which every {Unix} process is initialised with.
        Standard input is by default from the terminal, and standard
        output and standard error are to the terminal.  Each of these
        channels (controlled via a {file descriptor} 0, 1, or 2 -
        stdin, stdout, stderr) can be redirected to a file, another
        device or a {pipe} connecting its process to another process.
        The process is normally unaware of such {I/O redirection},
        thus simplifying prototyping of combinations of commands.

        The {C} programming language library includes routines to
        perform basic operations on standard I/O.  Examples are
        "printf", allowing text to be sent to standard output, and
        "scanf", allowing the program to read from standard input.

        (1996-06-07)

Standard Instrument Control Library

        (SICL) A {platform}-independent {API} for software to control
        and test electronic instruments conforming to {IEEE 488}.

        (1995-01-05)

standard interpretation

        {standard semantics}

standard I/O

        {standard input/output}

Standard Lisp

        A subset of {Lisp 1.5} developed by A. Hearn primarily for
        implementing {REDUCE}.  It was replaced by {Portable Sandard
        LISP}.

        ["Standard LISP Report", J. Marti et al, SIGPLAN Notices
        14(10):48-58 (Oct 1979)].

        (1994-11-04)

Standard ML

        <language> (SML) Originally an attempt by Robin Milner
        <rm@lfcs.edinburgh.ac.uk> ca. 1984 to unify the dialects of
        {ML}, SML has evolved into a robust general-purpose language.
        Later versions have been maintained by D. B. MacQueen
        <dbm@research.att.com>, Lal George <george@research.att.com>,
        AJ. H. Reppy <jhr@research.att.com> and A. W. Appel
        <appel@princeton.edu>.

        SML is {functional}, with {imperative} features.  It is
        environment based and {strict}.  It adds to ML the
        {call-by-pattern} of {Hope}, {recursive data type}s,
        {reference type}s, typed {exception}s, and {module}s.  (The
        "core" language excludes the modules).

        Standard ML is {polymorphic}ally typed and its module system
        supports flexible yet secure large-scale programming.
        {Standard ML of New Jersey} is an optimising {native-code
        compiler} for Standard ML that is written in Standard ML.  It
        runs on a wide range of architectures. The distribution also
        contains: an extensive library - The Standard ML of New Jersey
        Library, including detailed documentation; {Concurrent ML}
        (CML); {eXene} - an elegant interface to {X11} (based on
        {CML}); {SourceGroup} - a {separate compilation} and "{make}"
        facility.

        Implementations: {SML/NJ}, {POPLOG ML}, {Poly/ML}, {Edinburgh
        SML}, {ANU ML}, {Micro ML}, {lazy sml2c}.

        {sml2c} compiles to {C}.  See also {ML Kit}.

        Version 0.93 runs on {68000}, {SPARC}, {MIPS}, {HPPA},
        {RS/6000}, {Intel 386}, {Intel 486} and {Macintosh}.

        {Manual
        (http://www.dcs.napier.ac.uk/course-notes/sml/manual.html)}.

        {FTP from ATT (ftp://research.att.com/dist/ml/)}.
        {FTP from Suny SB (ftp://sbcs.sunysb.edu/)}.

        Mailing list: sml-request@cs.cmu.edu.

        ["A Proposal for Standard ML", R. Milner, ACM Symp on LISP and
        Functional Prog 1984, pp. 184-197].

        (1995-12-24)

Standard ML of New Jersey

        (SML/NJ) An implementation of {SML} by {Andrew Appel} at
        {Princeton} <Appel@princeton.edu> and {Dave MacQueen} at
        {AT&T} <dbm@research.att.com>.  Version 0.93.

        ["Standard ML of New Jersey", A. Appel et al, "Proc Third Intl
        Symp on Prog Lang Impl and Logic Programming", LNCS Springer
        1991].

        Versions for Unix, Mac.  {(ftp://cs.yale.edu/pub/ml)},
        {(ftp://research.att.com/dist/ml)}.  Mailing list:
        sml@cs.cmu.edu.

standard semantics

        The standard interpretation of a term in some language yields
        the term's standard denotational semantics, i.e. its "meaning".
        This is usually given by a semantic function which maps a term
        in the abstract syntax to a point in some domain.  The domain
        is the interpretation of the term's type.  The semantic
        function also takes an environment - a function which maps the
        free variables of the term to their meaning.  We say that a
        domain point "denotes", or "is the denotation of", a term.  A
        non-standard semantics results from some other interpretation,
        e.g. an abstract interpretation.

Stanford Research Institute

        Former name of {SRI International}.

Stanford University

        A University in the city of Palo Alto, California, noted for
        work in computing, especially artificial intelligence.  See
        {SAIL}.

        {(ftp://anna.stanford.edu/)}, {(ftp://boole.stanford.edu/)},
        {(ftp://csli.stanford.edu/)}, {(ftp://fresnel.stanford.edu/)},
        {(ftp://sumex-aim.stanford.edu/)},
        {(ftp://gregorio.stanford.edu/)},
        {(ftp://hanauma.stanford.edu/)},
        {(ftp://helens.stanford.edu/)},
        {(ftp://interviews.stanford.edu/)},
        {(ftp://labrea.stanford.edu/)}, {(ftp://sail.stanford.edu/)},
        {(ftp://self.stanford.edu/)}, {(ftp://wilbur.stanford.edu/)}.

Staple

        Saint Andrews Applicative Persistent Language.  Language
        combining functional programming with persistent storage,
        developed at St. Andrews University in Scotland.  Tony Davie,
        <ad@cs.st-andrews.ac.uk>.

STAR 0

        Early system on Datatron 200 series.  Listed in CACM 2(5):16
        (May 1959).

StarBurst

        An active DBMS from IBM Almaden Research Center.

StarLISP

        {*LISP}

StarMOD

        {*MOD}

Starset

        Portable storage/retrieval language for distributed databases.
        "Starset programming Language", M.M. Gilula et al, Nauka,
        Moscow 1991, ISBN 5-02-006831-4.

STARSYS

        {Convergent Technologies Operating System}

start bit

        <protocol> A {bit} which signals the start of transmission of
        a character on a {serial line}.  For an {RS-423} signal, the
        line is normally at logical zero which there is no data and
        the start bit is a logical one.  The zero-one transition tells
        the receiver when to start sampling the signal to extract the
        data bits.

        [Is this upside-down?]

        (1995-02-02)

Start Of Header

        <character> (SOH) {mnemonic} for {ASCII} 1.

        [What header?]

        (1996-05-31)

Start Of Text

        <character> (STX) {Mnemonic} for {ASCII} 2.

        (1996-05-31)

state

        <storage, architecture, jargon, theory> How something is; its
        configuration, attributes, condition, or information content.
        The state of a system is usually temporary (i.e. it changes
        with time) and volatile (i.e. it will be lost or reset to some
        initial state if the system is switched off).

        A state may be considered to be a point in some {space} of all
        possible states.  A simple example is a light, which is either
        on or off.  A complex example is the electrical activation in
        a human brain while solving a problem.

        In computing and related fields, states, as in the light
        example, are often modelled as being {discrete} (rather than
        continuous) and the transition from one state to another is
        considered to be instantaneous.  Another (related) property of
        a system is the number of possible states it may exhibit.
        This may be finite or infinite.  A common model for a system
        with a finite number of discrete state is a {finite state
        machine}.

        (1996-10-13)

state diagram

        {state transition diagram}

stateless

        A stateless {server} is one which treats each request as an
        independent transaction, unrelated to any previous request.
        This simplifies the server design because it does not need to
        allocate storage to deal with conversations in progress or
        worry about freeing it if a client dies in mid-transaction.  A
        disadvantage is that it may be necessary to include more
        information in each request and this extra information will
        need to be interpreted by the server each time.

        An example of a stateless server is a {World-Wide Web} server.
        These take in requests ({URL}s) which completely specify the
        required document and do not require any context or memory of
        previous requests.

        Contrast this with a traditional {FTP} server which conducts
        an interactive session with the user.  A request to the server
        for a file can assume that the user has been authenticated and
        that the current directory and transfer mode have been set.

state machine

        {finite state machine}

state transition diagram

        A diagram consisting of circles to represent states and
        directed line segments to represent transitions between the
        states.  One or more actions (outputs) may be associated with
        each transition.  The diagram represents a {finite state
        machine}.

State University of New York

        <body> (SUNY) The public university system of New York State,
        USA, with campuses throughout the state.

        (1995-03-01)

static database management system

        <database> (static DBMS) A {database} consisting of
        "information-based relationships", one that is rigorously
        structured to facilitate retrieval and update in terms of
        inherent relationships.  This creates a static environment
        wherein the locations of the related records are already
        known.  Typical static DBMS are either hierarchical ({IMS},
        {System 2000}) or a {CODACYL} (network or plex) DBMS (such as
        {TOTAL}, {IDMS}, {IDS}, {DMS-2}).  These environments
        facilitate rapid, high volume processing of data.

        The opposite is a {dynamic database management system}.

        (1998-10-07)

static DBMS

        {static database management system}

static link

        <compiler> (Or "access link" or "environment link") A pointer
        from an {activation record} to the activation record for the
        textually enclosing {scope}.  A static link is only required
        in a statically (lexically) scoped language.

        The number of static links to follow may be determined
        statically (at compile time).  It is simply the difference in
        {lexical nesting depth} between the declaration and the
        reference.

        See also {display}.

        (1995-03-07)

static RAM

        {static random access memory}

static random access memory

        <storage> (SRAM) {Random access memory} in which each bit of
        storage is a bistable {flip-flop}, commonly consisting of
        cross-coupled inverters.  It is called "static" because it
        will retain a value as long as power is supplied, unlike
        {dynamic random access memory} (DRAM) which must be regularly
        refreshed.  It is however, still {volatile}, i.e. it will lose
        its contents when the power is switched off, in contrast to
        {ROM}.  SRAM is usually faster than DRAM but since each bit
        requires several transistors (about six) you can get less bits
        of SRAM in the same area.  It usually costs more per bit than
        DRAM and so is used for the most speed-critical parts of a
        computer (e.g. {cache} memory) or other circuit.

        (1995-04-22)

static scope

        {lexical scope}

Station Management

        <networking> (SMT) Station Management One of the 4 key {FDDI}
        component layers.  SMT is an overlay function that handles the
        management of the FDDI ring.  It handles neighbor
        identification, fault detection and reconfiguration, insertion
        and de-insertion from the ring, and traffic statistics
        monitoring.

        (1997-05-11)

Statistical Analysis System

        <language> (SAS) A statistical and matrix handling language
        with {PL/I}-like {syntax}.

        ["A User's Guide to SAS", A.J. Barr, SAS Inst 1976].

        (1994-12-12)

Statistical Package for the Social Sciences

        <statistics, tool> (SPSS) The flagship program of {SPSS,
        Inc.}, written in the late 1960s.

        ["SPSS X User's Guide", SPSS, Inc. 1986].

        [Details?]

        (1999-07-20)

statistical time division multiplexing

        <communications> (STDM, StatMUX) A system developed to
        overcome some inefficiencies of standard {time division
        multiplexing}, where {time slices} are still allocated to
        channels, even if they have no information to transmit.

        STDM uses a variable time slot length and by allowing channels
        to vie for any free slot space.  It employs a buffer memory
        which temporarily stores the data during periods of peak
        traffic.  This scheme allows STDM to waste no high-speed line
        time with inactive channels.  STDM requires each transmission
        to carry identification information (i.e. a channel
        identifier).  To reduce the cost of this overhead, a number of
        characters for each channel are grouped together for
        transmission.

        ["Data Communications, Computer Networks and Open Systems",
        Halsall & Fred, Addison Wesley, p160-161, 1995].

        ["Digital, Analog, and Data Communication", Sinnema &
        McGovern, Prentice Hall, p245, 1986].

        (1997-03-05)

statistics

        <statistics, mathematics> The practice, study or result of the
        application of mathematical {functions} to collections of
        {data} in order to summarise or {extrapolate} that data.

        The subject of statistics can be divided into descriptive
        statistics - describing data, and analytical statistics -
        drawing conclusions from data.

        (1997-07-16)

StatMUX

        {statistical time division multiplexing}

STB

        {set-top box}

STD

        1. {state transition diagram}.

        2. {Internet} standard.

        A subseries of {Request For Comments} (RFC) that specify
        {Internet} {standard}s.  The official list of Internet
        standards is {STD 1}.

        See also {For Your Information}.

        (1994-11-30)

STD 1

        <standard> The {Internet Architecture Board} official list of
        {Internet} {standards}.

        [Postel, J., "IAB Official Protocol Standards", STD 1, RFC
        1360, Internet Architecture Board, September 1992].

        (1995-02-07)

STD 13

        <networking, standard> One of the {STD}s defining the {Domain
        Name System}.

        (1997-12-15)

STD 15

        The {STD} defining {Simple Network Management Protocol}.

        (1994-11-14)

STD 2

        The document listing the current {Internet} {Assigned
        Numbers}.

        [Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC
        1340, USC/Information Sciences Institute, July 1992].

STD 9

        The {STD} defining {File Transfer Protocol} (FTP).

        (1995-02-07)

stderr

        {standard input/output}

stdin

        {standard input/output}

stdio

        {standard input/output}

stdio.h

        <programming> {standard input/output} {header file}.

        (1996-01-28)

STDM

        {statistical time division multiplexing}

stdout

        {standard input/output}

STDWIN

        A windowing interface from {CWI} with windows, menus, modal
        dialogs, mouse and keyboard input, scroll bars, drawing
        primitives, etc that is portable between {platform}s.  STDWIN
        is available for {Macintosh} and the {X Window System}.

steam-powered

        Old-fashioned or underpowered; archaic.  This term does not
        have a strong negative loading and may even be used
        semi-affectionately for something that clanks and wheezes a
        lot but hangs in there doing the job.

Steelman

        DoD, June 1978.  Fifth and last of the series of DoD
        requirements that led to Ada.  "Steelman Requirements for High
        Order Programming Languages", US Dept of Defense, June 1978.
        SIGPLAN Notices 13(12) (Dec 1978).  (See Strawman, Woodenman,
        Tinman, Ironman).

steganography

        <security> Hiding a secret message within a larger one in such
        a way that others can not discern the presence or contents of
        the hidden message.  For example, a message might be hidden
        within an {image} by changing the {least significant bits} to
        be the message bits.

        [{Chaffing and Winnowing: Confidentiality without Encryption,
        Ronald L. Rivest, MIT Lab for Computer Science, 1998-03-22
        (http://theory.lcs.mit.edu/~rivest/chaffing.txt)}].

        (1998-07-13)

stemmer

        <information science, human language> A program or {algorithm}
        which determines the morphological root of a given inflected
        (or, sometimes, derived) word form -- generally a written word
        form.

        A stemmer for English, for example, should identify the
        {string} "cats" (and possibly "catlike", "catty" etc.) as
        based on the root "cat", and "stemmer", "stemming", "stemmed"
        as based on "stem".

        English stemmers are fairly {trivial} (with only occasional
        problems, such as "dries" being the third-person singular
        present form of the verb "dry", "axes" being the plural of
        "ax" as well as "axis"); but stemmers become harder to design
        as the morphology, orthography, and {character encoding} of
        the target language becomes more complex.  For example, an
        Italian stemmer is more complex than an English one (because
        of more possible verb inflections), a Russian one is more
        complex (more possible noun declensions), a Hebrew one is even
        more complex (a {hairy} writing system), and so on.

        Stemmers are common elements in {query} systems, since a user
        who runs a query on "daffodils" probably cares about documents
        that contain the word "daffodil" (without the s).

        ({This dictionary} has a rudimentary stemmer which currently
        (April 1997) handles only conversion of plurals to singulars).

        (1997-04-09)

stemming

        {stemmer}

STENSOR

        L. Hornfeldt, Stockholm, mid-80's.  Symbolic math, especially
        General Relativity.  Implemented on top of SHEEP and MACSYMA.

STEP

        {Standard for the exchange of product model data}

Stephen Cole Kleene

        {Stephen Kleene}

Stephen Jobs

        <person> Stephen P. Jobs (born 24 February 1955).  The
        co-founder and ex-president of {Apple Computer}, leader of the
        team that produced the {Macintosh}.

        In 1979, when he was president of Apple, Steven Jobs saw a
        demonstration of {Smalltalk} at {Xerox}'s {Palo Alto Research
        Center}.  He and other Apple employees were "very impressed
        with the unique and revolutionary user-friendly design".

        The first {Macintosh} was released in January 1984.  Jobs
        described it as {insanely great}.

        Jobs was ousted from Apple in 1985 and founded {Next, Inc.}.
        In December 1996 he was re-employed by Apple when they bought
        NeXT.

        See also {lithium lick}, {Mathematica}.

        (1997-03-18)

Stephen Kleene

        <person> Professor Stephen Cole Kleene (1909-01-05 -
        1994-01-26) /steev'n (kohl) klay'nee/ An American
        mathematician whose work at the {University of
        Wisconsin-Madison} helped lay the foundations for modern
        computer science.  Kleene was best known for founding the
        branch of {mathematical logic} known as {recursion theory} and
        for inventing {regular expressions}.  The {Kleene star} and
        {Ascending Kleene Chain} are named after him.

        Kleene was born in Hartford, Conneticut, USA.  He received his
        bachelor of arts degree from Amherst College in 1930.  From
        1930 to 1935, he was a graduate student and research assistant
        at {Princeton University} where he received his doctorate in
        mathematics in 1934.  In 1935, he joined UW-Madison
        mathematics department as an instructor.  He became an
        assistant professor in 1937.

        From 1939 to 1940, he was a visiting scholar at Princeton's
        {Institute for Advanced Study} where he laid the foundation
        for recursive function theory, an area that would be his
        lifelong research interest.  In 1941 he returned to Amherst as
        an associate professor of mathematics.

        During World War II Kleene was a lieutenant commander in the
        United States Navy.  He was an instructor of navigation at the
        U.S. Naval Reserve's Midshipmen's School in New York, and then
        a project director at the Naval Research Laboratory in
        Washington, D.C.

        In 1946, he returned to Wisconsin, eventually becoming a full
        professor.  He was chair of mathematics, and computer sciences
        in 1962 and 1963 and dean of the College of Letters and
        Science from 1969 to 1974.  In 1964 he was named the Cyrus
        C. MacDuffee professor of mathematics.

        An avid mountain climber, Kleene had a strong interest in
        nature and the environment and was active in many conservation
        causes.  He led several professional organisations, serving as
        president of the {Association of Symbolic Logic} from 1956 to
        1958.  In 1961, he served as president of the International
        Union of the History and the Philosophy of Science.

        Kleene pronounced his last name /klay'nee/.  /klee'nee/ and
        /kleen/ are extremely common mispronunciations.  His first
        name is /steev'n/, not /stef'n/.  His son, Ken Kleene
        <kenneth.kleene@umb.edu>, wrote: "As far as I am aware this
        pronunciation is incorrect in all known languages.  I believe
        that this novel pronunciation was invented by my father."

        {(gopher://gopher.adp.wisc.edu/00/.data/.news-rel/.9401/.940126a)}.

        (1999-03-03)

Stepstone Corp

        <company> A company founded by Brad Cox, responsible for
        {Objective C}.

        Telephone: +1 (203) 426-1875.

        (1996-08-04)

stepwise refinement

        {top-down design}

stereogram

        A two-dimensional image which, when viewed correctly appears
        three-dimensional.  E.g. {SIRDS} or {SIRTS}.

        {(ftp://katz.anu.edu.au/pub/stereograms)}

        (1994-11-03)

Steve Jobs

        {Stephen Jobs}

Steve's Shell

        <operating system> (ssh) A {Unix} {shell} with many {csh}- and
        {ksh}-like features, by Steve Baker <ice@judy.indstate.edu>
        and Thomas Moore.

        Version 1.7 has been ported to {Sequent}, {Sun}, {NeXT},
        {Ultrix}, {BSDI} and is available from {comp.sources.unix}
        volume 26.

        (1993-04-15)

Steve Wozniak

        <person> Co-founder of {Apple Computer} with {Steve Jobs} on
        01 April 1976 and the inventor of the {Apple II} {personal
        computer}.

        (1998-04-05)

Sticks&Stones

        A {functional}, {polymorphic} {hardware description language}
        loosely based on {ML} by Lucca Cardelli.

        ["An Algebraic Approach to Hardware Description and
        Verification", L. Cardelli, Thesis, Edinburgh U, 1982].

        ["Sticks&Stones II: A Functional Language VLSI Layout
        Generation Tool", Andrew Butterfield <butrfeld@cs.tcd.ie>,
        Thesis, Trinity College, 1990].

sticky analysis

        <theory> A kind of program analysis that uses information from
        all the call sites of a function or procedure.

        (1999-06-15)

sticky bit

        <operating system> The {bit} in the mode of a {Unix} file
        which, if set for an executable, tells the {kernel} to keep
        the code loaded in {swap space} even after it has finished
        executing on the assumption that it is likely to be used again
        soon.  This performance optimisation was included in some
        early (and recent?) versions of {Unix} to save reloading
        frequently used programs such as the {shell} or {vi} from
        disk.

        If the sticky bit is set on a directory, an unprivileged user
        may not delete or rename files of other users in that
        directory even if he has write access to the directory.

        The Unix "ls" command displays a set sticky bit as a "t" in
        the permissions of a file or directory.

        (1997-02-26)

sticky content

        <World-Wide Web> {World-Wide Web} pages that refer only or
        mostly to pages on the same {web site}.  This is important to
        some commercial sites who want users to keep accessing pages
        from their site because they receive advertising income from
        each hit.  It does however somewhat miss the point of the
        World-Wide Web which is to link useful information across the
        whole {Internet}.

        (1999-06-15)

stiffy

        <storage, jargon> ({University of Lowell}, Massachusetts) A
        3.5-inch {microfloppy}, so called because their jackets are
        more rigid than those of the 5.25-inch and the (obsolete)
        8-inch {floppy disk}.  Elsewhere this might be called a
        "firmy".

        (1994-11-03)

STIL

        STatistical Interpretive Language.

        ["STIL User's Manual", C.F.  Donaghey et al, Indust Eng Dept,
        U Houston (Aug 1969)].

STING

        A parallel dialect of {Scheme} intended to serve as a
        high-level {operating system} for symbolic programming
        languages.  {First-class} {thread}s and processors and
        customisable {scheduling} policies.

        E-mail: <suresh@research.nj.dec.com>.

        ["A Customizable Substrate for Concurrent Languages",
        S. Jagannathan et al, ACM SIGPLAN Notices, 1992].

        (1994-11-03)

STk

        A {Scheme} {interpreter} blended with Ousterhout's {Tk}
        package by Erick Gallesio <eg@unice.fr>.  STk expresses all of
        Tk as Scheme objects.  STk includes a slow {CLOS}/{Dylan}-like
        {object-oriented} extension.

        Version 1.00 almost conforms to {R4RS} and runs on {SunOS}
        4.1.x and {Ultrix}/{MIPS}.

        {(ftp://kaolin.unice.fr/pub/STk-1.00.tar.gz)}.
        {(ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/STk-2.1.tar.Z)}.

        (1993-09-06)

STMP

        Did you mean {SMTP}?

stochastic

        {probabilistic}

stock-keeping unit

        <database> (SKU) /skyoo/ (rarely seen expanded) A common term
        for a unique numeric identifier, typically in a {database}.
        Originally this was used only for products, but has spread in
        usage.

        Compare with {UID} for sense development.

        (1998-09-27)

STOIC

        {STring Oriented Interactive Compiler}

stomp on

        To inadvertently overwrite something important, usually
        automatically.  "All the work I did this weekend got stomped
        on last night by the nightly server script."  Compare
        {scribble}, {mangle}, {trash}, {scrog}, {roach}.

STONE

        A Structured and Open Environment: a project supported by the
        German Ministry of Research and Technology (BMFT) to design,
        implement and distribute a SEE for research and teaching.

Stone Age

        1. In computer folklore, an ill-defined period from {ENIAC}
        (ca. 1943) to the mid-1950s; the great age of
        electromechanical {dinosaurs}.  Sometimes used for the entire
        period up to 1960--61 (see {Iron Age}); however, it is funnier
        and more descriptive to characterise the latter period in
        terms of a "Bronze Age" era of {transistor}-logic,
        pre-{ferrite core memory} machines with {drum} or {CRT} mass
        storage (as opposed to just {mercury delay lines} and/or
        relays).

        2. More generally, a pejorative for any crufty, ancient piece
        of hardware or software technology.  Note that this is used
        even by survivors from the {Stone Age}.

        (1995-01-24)

stone knives and bearskins

        (From the Star Trek Classic episode "The City on the Edge of
        Forever") A term traditionally used to describe (and
        deprecate) computing environments that are grotesquely
        primitive in light of what is known about good ways to design
        things.  As in "Don't get too used to the facilities here.
        Once you leave SAIL it's stone knives and bearskins as far as
        the eye can see".

        Compare {steam-powered}.

        (1995-01-24)

Stoneman

        The requirements, written by the {HOLWG} of the US {DoD} in
        Feb 1980, that led to APSE.

        ["Requirements for Ada Programming Support Environments:
        STONEMAN", US Dept of Defense, Feb 1980].

        (1995-01-24)

stop bit

        In serial communications, where each bit of the message is
        transmitted in sequence, stop bits are extra "1" bits which
        follow the data and any {parity} bit.  They mark the end of a
        unit of transmission (normally a byte or character).

        For example, characters on an {RS-232} {serial line} may have
        one or two stop bits added.  Some {UART}s even allow for 1.5
        stop bits but one is probably the most commonly used.  A
        serial connection may be described as, for example, "8N1"
        which means eight data bits, no {parity} and one stop bit.

        (1995-01-24)

stoppage

        /sto'p*j/ Extreme {lossage} that renders something (usually
        something vital) completely unusable.  "The recent system
        stoppage was caused by a {fried} transformer."

        (1995-01-24)

storage

        <storage> (Or "memory") A device into which data can be
        entered, in which they can be held, and from which they can be
        retrieved at a later time.

        (1995-12-24)

Storage Allocation and Coding Program

        <language> (STAC) A symbolic {macro-assembler} for the
        {English Electric} {DEUCE}.

        ["DEUCE STAC Programming Manual", DEUCE News No. 38, Report
        K/AA y 1 DEUCE Library Service, Data Processing and COntrol
        Systems DIvision, English Electric Company, Kidsgrove, June].

        (1998-06-08)

Storage Management Services

        <storage> (SMS) Software that enables network administrators
        to route {backup} data from various devices on a network to
        another device such as a server or a {magnetic tape} backup
        unit.  This is done either to make use of a high-capacity
        storage system such as a tape {juke-box} or for disaster
        protection.

        (1996-02-18)

store

        [probably from "main store"] In some varieties of Commonwealth
        hackish, the preferred synonym for {core}.  Thus, "bringing a
        program into store" means not that one is returning
        shrink-wrapped software but that a program is being {swap}ped
        in.

store and forward

        <messaging> (Or "message switching") A kind of {message
        passing} system where a complete message is received before it
        is passed on to the next node.  This means that each message
        is using at most one interprocessor link at any time but may
        require more storage buffers on intermediate nodes than the
        alternative, {wormhole routing}.

        (1995-02-16)

Story of Mel

        {The story of Mel}

StP

        {Software through Pictures}

STP4

        A statistical language.

Strachey, Christopher

        {Christopher Strachey}

Strand

        1. {AND-parallel} {logic programming} language.  Essentially
        flat {Parlog83} with sequential-and and sequential-or
        eliminated.

        ["Strand: New Concepts on Parallel Programming", Ian Foster et
        al, P-H 1990].  {Strand88} is a commercial implementation.

        2. A query language, implemented on top of {INGRES} (an
        {RDBMS}).  ["Modelling Summary Data", R. Johnson, Proc ACM
        SIGMOD Conf 1981].

Strand88

        A commercial implementation of {Strand} from Strand Software
        Technologies Ltd., UK and Strand Software, Beaverton, OR, USA.
        E-mail: <strand88@sstl.uucp>.

Strategic Air Ground Environment

        <project> (SAGE) The computer systerm of the old US Norad air
        defence system.  SAGE was one of the first very large software
        projects, and only occasionally scrambled the US and Canadian
        Air Forces to track down a radar reflection off the Moon.

        The main contractor was {Mitre Corporation}(?), despite the
        fact that the DEW line was {Rand}'s responsibility.

        [Confirm?  More?]

        (1995-11-28)

Stratus

        <company> A computer manufacturer, one of the the world's
        leading providers of {fault-tolerant} systems and solutions,
        concentrating on four major vertical markets: financial
        services, telecommunications, travel and transportation, and
        gaming.  While virtually all of Stratus' core hardware and
        software products are sold into these markets, a broad range
        of specialised solutions, both at the {middleware} and
        {application} solutions levels, are developed and marketed by
        Stratus, its subsidiaries and third party partners.

        Yearly sales $609M, profits $43.5M (1996).

        {Home (http://www.stratus,com)}.

        (1997-04-24)

Strawman

        The first of the series of {DoD} requirements that led to
        {Ada} ({Woodenman}, {Tinman}, {Ironman}, {Steelman}).
        Strawman was produced by the {HOLWG} in Apr 1975.

        (1995-01-30)

STREAM

        ["STREAM: A Scheme Language for Formally Describing Digital
        Circuits", C.D. Kloos in PARLE: Parallel Architectures and
        Languages Europe, LNCS 259, Springer 1987].

        (1995-01-30)

stream

        1. <communications> An {abstraction} referring to any flow of
        data from a source (or sender, producer) to a single sink (or
        receiver, consumer).  A stream usually flows through a channel
        of some kind, as opposed to {packet}s which may be addressed
        and routed independently, possibly to multiple recipients.
        Streams usually require some mechanism for establishing a
        channel or a "{connection}" between the sender and receiver.

        2. <programming> In the {C} language's buffered input/ouput
        library functions, a stream is associated with a file or
        device which has been opened using {fopen}.  Characters may be
        read from (written to) a stream without knowing their actual
        source (destination) and buffering is provided transparently
        by the library routines.

        3. <operating system> Confusingly, {Sun} have called their
        modular {device driver} mechanism "{STREAMS}".

        4. <operating system> In {IBM}'s {AIX} {operating system}, a
        stream is a {full-duplex} processing and data transfer path
        between a driver in {kernel space} and a process in {user
        space}.

        [IBM AIX 3.2 Communication Programming Concepts,
        SC23-2206-03].

        5. <communications> {streaming}.

        6. <programming> {lazy list}.

        (1996-11-06)

streaming

        <communications> Playing {sound} or {video} in {real time} as
        it is downloaded over the {Internet} as opposed to storing it
        in a local file first.  A {plug-in} to a {web browser} such as
        {Netscape Navigator} decompresses and plays the data as it is
        transferred to your computer over the {World-Wide Web}.
        Streaming audio or video avoids the delay entailed in
        downloading an entire file and then playing it with a {helper
        application}.  Streaming requires a fast connection and a
        computer powerful enough to execute the decompression
        {algorithm} in {real time}.

        (1996-11-06)

stream-oriented

        {connection-oriented}

STREAMS

        <operating system> A collection of {system calls}, {kernel}
        resources, and kernel utility routines that can create, use,
        and dismantle a {stream}.  A "stream head" provides the
        interface between the stream and the user processes.  Its
        principal function is to process STREAMS-related user system
        calls.  A "stream module" processes data that travel bewteen
        the stream head and driver.  The "stream end" provides the
        services of an external input/output device or an internal
        software driver.  The internal software driver is commonly
        called a {pseudo-device} driver.

        The STREAMS concept has been formalised in {Unix} {System V}.
        For example, {SVR4} implements {sockets} and {pipes} using
        STREAMS, resulting in pipe(2) openning bidirectional pipes.

        [IBM AIX 3.2 Communication Programming Concepts, SC23-2206-03].

        (1999-06-29)

strength reduction

        An optimisation where a function of some systematically
        changing variable is calculated more efficiently by using
        previous values of the function.  In a {procedural language}
        this would apply to an expression involving a loop variable
        and in a {declarative language} it would apply to the argument
        of a {recursive} function.  E.g.

                f x = ... (2**x) ... (f (x+1)) ...

                        ==>

                f x = f' x (2**x)
                      where
                      f ' x z = ... z ... (f' (x+1) 2*z) ...

        Here the expensive operation (2**x) has been replaced by the
        cheaper 2*z in the recursive function f'.  This maintains the
        invariant that z = 2**x for any call to f'.

        (1995-01-31)

STRESS

        STRuctual Engineering Systems Solver.

        A system for structural analysis problems in Civil
        Engineering.  STRESS was superceded by {STRUDL}.

        ["STRESS: A User's Manual", S.J. Fenves et al, MIT Press
        1964].

        [Sammet 1969, p. 612].

        (1995-01-31)

stress testing

        <testing> Testing aimed at investigating the behaviour of a
        software or hardware equipment in out of ordinary operating
        conditions.

        (1998-03-27)

strict

        A function f is strict in an argument if

                f bottom = bottom

        (See {bottom}).  In other words, the result depends on the
        argument so evaluation of an application of the function
        cannot terminate until evaluation of the argument has
        terminated.

        If the result is only {bottom} when the argument is bottom
        then the function is also {bottom-unique}.

        See also {strict evaluation}, {hyperstrict}.

        (1995-01-25)

strict evaluation

        {Call-by-value} evaluation order is sometimes called "strict
        evaluation" because, in a sequential system, it makes
        functions behave as though they were {strict}, in the sense
        that evaluation of a function application cannot terminate
        before evaluation of the argument.  Similarly, languages are
        called strict if they use {call-by-value} argument passing.

        Compare {eager evaluation}, {lazy evaluation}.

        (1994-12-21)

strided

        /str:'d*d/ (scientific computing) Said of a sequence of memory
        reads and writes to addresses, each of which is separated from
        the last by a constant interval called "the stride length", or
        just "the stride".  These can be a worst-case access pattern
        for {cache} schemes when the stride length is a multiple of
        the {cache line} size.

        Strided references are often generated by loops through an
        {array}, and (if the data is large enough that access-time is
        significant) it can be worthwhile to tune for better locality
        by inverting double loops or by partially unrolling the outer
        loop of a loop nest.

        (1994-12-21)

string

        <programming> An ordered series of {data} values, usually
        {bytes}, which often denote {printable characters}.  Recently
        (1997) there has been increased interest in larger {character
        sets} such as {Unicode} where each character is represented by
        more than eight {bits}.

        Most programming languages consider strings (e.g.
        "124:shabooya:\n", "hello world") basically distinct from
        numbers which are typically stored in fixed-length {binary} or
        {floating-point} representation.

        A {bit string} is a sequence of {bit}s.

        (1998-09-27)

String EXpression Interpreter

        {String Oriented Symbolic Language}

STring Oriented Interactive Compiler

        <language> (STOIC) A language from the Smithsonian
        Astrophysical Observatory.  STOIC is similar to {FORTH} for
        strings and includes many {VAX}-specific items.

        (1998-09-27)

String Oriented Symbolic Language

        <language> (SNOBOL) A string processing language for text and
        formula manipulation written by David Farber, Ralph Griswold,
        and I. Polonsky of {Bell Labs} in 1962-3.

        SNOBOL had only simple {control structures} but provided a
        rich string-matching formalism of power comparable to {regular
        expressions} but implementated differently.  People used it
        for simple {natural language processing} analysis tasks well
        into the 1980s.  Since then, {Perl} has come into favour for
        such tasks.

        SNOBOL was originally called "SEXI" - String EXpression
        Interpreter.  In spite of the suggestive name, SNOBOL is not
        related to {COBOL}.

        Implementations include (in no particular order): {SNOBOL2},
        {SNOBOL3}, {SNOBOL4}, {FASBOL}, {SITBOL}, {MAINBOL}, {SPITBOL}
        and {vanilla}.

        See also {EZ}, {Poplar}, {SIL} and {Icon}.

        ["SNOBOL, A String Manipulating Language", R. Griswold et al,
        J ACM 11(1):21, Jan 1964].

        [When and why was SEXI renamed?]

        (1998-03-03)

String PRocessING language

        <language> (SPRING)

        ["From SPRING to SUMMER: Design, Definition and Implementation
        of Programming Languages for String Manipulation and Pattern
        Matching", Paul Klint, Math Centre, Amsterdam 1982].

        (1996-02-06)

string reduction

        A {reduction system} where an expression is represented as a
        string of function names, constants and parentheses.  It is
        reduced by replacing parts of the string representing subterms
        by their value.

        It is harder to represent sharing of subexpressions in string
        reduction than in {graph reduction}.

        (1995-02-06)

stripe

        {data striping}

stripe set

        {data striping}

striping

        {data striping}

STROBES

        {Shared Time Repair of Big Electronic Systems}

stroke

        The oblique stroke character, "/", ASCII 47.

        See {ASCII} for other synonyms.

StrongARM

        <processor> A collaborative project between {Digital Equipment
        Corporation} and {Advanced RISC Machines} Ltd. (ARM) announced
        on 1995-02-06 licensing the {ARM} {RISC} architecture to
        {Digital Semiconductor} for the development of
        high-performance, low power {microprocessors}.

        The StrongARM family of 32-bit RISC products developed under
        the agreement are faster versions of the existing ARM
        processors with a somewhat different {instruction set}.  They
        are targetted at applications such as next-generation
        {personal digital assistants} with improved user interfaces
        and communications; {interactive television} and set-top
        products; video games and {multimedia} {edutainment} systems
        with realistic imaging, motion and sound; and digital imaging,
        including low cost digital image capture and photo-quality
        scanning and printing.

        The StrongARM family has limited software compatibility with
        the {ARM6}, {ARM7} and {ARM8} families due to its separate
        {caches} for data and instructions which causes
        {self-modifying code} to fail.

        The {SA-110} is the first member of the family.

        (1998-09-07)

strongly connected component

        (SCC) A subset, S, of the nodes of a {directed graph} such
        that any node in S is reachable from any other node in S and S
        is not a subset of any larger such set.  SCCs are {equivalence
        class}es under the {transitive closure} of the "directly
        connected to" {relation}.

        (1995-02-06)

strongly typed

        {strong typing}

Stroustrup, Bjarne

        {Bjarne Stroustrup}

struct

        A data type in {C} and {C++} corresponding to a {record} in
        {Ada} or {Pascal} or a {tuple} in {functional programming}.  A
        struct has one or more members, each of which may have
        different types.  It is used to group associated data
        together.

        (1995-02-14)

structural recursion

        The process of transforming an expression by expressing its
        structure as a syntax tree and applying a certain
        transformation rule to each kind of node, starting from the
        top.  Rules for non-{leaf node}s will normally return a result
        which depends on applying the rules recursively to its
        sub-nodes.  Examples include {syntax} analysis, {code
        generation}, {abstract interpretation} and {program
        transformation}.

        (1995-01-11)

structured analysis

        One of a number of requirements analysis methods used in
        software engineering.

structured design

        <programming> (SD) One of a number of systematic {top-down
        design} techniques used in {software engineering}, usually
        after {structured analysis}.

        (1995-04-28)

structure diagram

        <programming, data> A pictorial representation of the
        composition, grouping and relationship of data items.

        (1998-06-11)

structured language

        <programming> A programming language where the program may be
        broken down into blocks or {procedure}s which can be written
        without detailed knowledge of the inner workings of other
        blocks, thus allowing a {top-down design} approach.

        See also {abstract data type}, {module}.

        (1995-04-28)

structured programming

        <programming> Any software development technique that includes
        {structured design} and results in the development of a
        {structured program}.

        (1995-04-06)

Structured Query Language

        {SQL}

Structure of Management Information

        (SMI) The rules used to define the objects that can be
        accessed via a {network management protocol}.  This {protocol}
        is defined in {STD} 16, {RFC} 1155.

        See also {Management Information Base}.

        (1994-11-14)

strudel

        <character> Common (spoken) name for the commercial at sign,
        "@", {ASCII} 64.

        (1995-03-13)

STRUDL

        STRUctured Design Language.

        Dynamic and {finite-element analysis}, steel and concrete
        structures.  Subsystem of {ICES}.  ["ICES STRUDL-II
        Engineering User's Manual", R68-91, CE Dept MIT (Nov 1968)
        Sammet 1969, p.613].

STSC APL

        Implementation of APL by Scientific {Time-Sharing} Corporation

stub

        1. <programming> A dummy procedure used when linking a program
        with a {run-time library}.  The stub routine need not contain
        any code and is only present to prevent "undefined label"
        errors at link time.

        2. <programming, networking> A local procedure in a {remote
        procedure call}.  The {client} calls the stub to perform some
        task and need not necessarily be aware that RPC is involved.
        The stub transmits parameters over the network to the {server}
        and returns the results to the caller.

        (1995-11-09)

stub network

        A {network} which only carries {packet}s to and from local
        {host}s.  Even if it has paths to more than one other network,
        it does not carry traffic for other networks.  See also
        {backbone}, {transit network}.

stubroutine

        /stuhb'roo-teen/ [contraction of "stub subroutine"] Tiny,
        often vacuous placeholder for a {subroutine} that is to be
        written or fleshed out later.

STUDENT

        D.G. Bobrow 1964.  Early query system.  Sammet 1969, p.664.

Student PL/I

        <language> A translator-{interpreter} for a {PL/I} subset
        derived from {SPL}.

        ["Student PL/I Compiler", R.A. Vowels, RMIT, Melbourne, 1971].

        (1996-01-19)

studly

        Impressive; powerful.  Said of code and designs which exhibit
        both complexity and a virtuoso flair.  Has connotations
        similar to {hairy} but is more positive in tone.  Often in the
        emphatic "most studly" or as noun-form "studliness".  "Smail
        3.0's configuration parser is most studly."

studlycaps

        <jargon> /stuhd'lee-kaps/ A hackish form of silliness similar
        to {BiCapitalisation} for trademarks, but applied randomly and
        to arbitrary text rather than to trademarks.  ThE oRigiN and
        SigNificaNce of thIs pRacTicE iS oBscuRe.

        (1995-03-01)

Stuffit

        <tool, file format> (filename extension: .sit) A file
        archiving and {compression} utility for the {Macintosh},
        developed by {Aladdin Systems, Inc.}  Stuffit can compress
        multiple files into a single, file, like {PKZIP} on the {IBM
        PC}.  Stuffit archives can be extracted with Stuffit Expander.

        (1996-11-03)

Stupids

        Term used by {samurai} for the {suit}s who employ them.
        Succinctly expresses an attitude at least as common, though
        usually better disguised, among other subcultures of hackers.
        There may be intended reference here to an SF story originally
        published in 1952 but much anthologised since, Mark Clifton's
        "Star, Bright".  In it, a super-genius child classifies humans
        into a very few "Brights" like herself, a huge majority of
        "Stupids", and a minority of "Tweens", the merely ordinary
        geniuses.

stupid-sort

        Synonym {bogo-sort}.

Sturgeon's Law

        "Ninety percent of everything is crap".  Derived from a quote
        by science fiction author Theodore Sturgeon, who once said,
        "Sure, 90% of science fiction is crud.  That's because 90% of
        everything is crud."  Oddly, when Sturgeon's Law is cited, the
        final word is almost invariably changed to "crap".  Compare
        {Ninety-Ninety Rule}.  Though this maxim originated in SF
        fandom, most hackers recognise it and are all too aware of its
        truth.

STX

        {Start Of Text}

su

        <operating system, tool, security> (substitute user) The
        {Unix} command which allows you to become another user after
        entering their {password}.  su is most often used without
        arguments in which case it defaults to user {root}.  Some
        versions of Unix only allows this command to be used by
        members of the {wheel} group.

        {Unix manual page}: su(1).

        (1996-09-08)

SUB

        {Substitute}

subband encoding

        An audio {compression} technique where the sound is split into
        frequency bands and then parts of the signal which the ear
        cannot detect are removed, e.g. a quiet sound masked by a loud
        one.  The remaining signal is encoded using variable bit-rates
        with more bits per sample being used in the mid frequency
        range.

        Subband encoding is used in {MPEG-1}.

        (1994-11-02)

subclass

        <programming> In {object-oriented} programming, a {class} that
        is derived from a {superclass} by {inheritance}.  The subclass
        contains all the features of the superclass, but may have new
        features added or redefine existing features.

        (1996-03-07)

subject

        <programming> In {subject-oriented programming}, a subject is
        a collection of {classes} or class fragments whose {class
        hierarchy} models its domain in its own, subjective way.  A
        subject may be a complete application in itself, or it may be
        an incomplete fragment that must be composed with other
        subjects to produce a complete application.  Subject
        composition combines class hierarchies to produce new subjects
        that incorporate functionality from existing subjects.

        (1999-08-31)

subject index

        <information science> An information resource that contains
        references to other resources, categorised by subject, usually
        in a {hierarchy}.

        {Yahoo} is the most popular {Internet} subject index.  Like
        most {other subject indices
        (http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Se
arching_the_Web/Web_Directories/)},
        Yahoo is arranged {ontologically}.

        Subject indices are not to be confused with {search engines},
        which are based not on subject, but instead on {relevance},
        although (1) this difference is often (possibly rightly)
        hidden from the unsophisticated user, and (2) future
        integration of {knowledge representation} into relevance
        ranking {algorithms} will make this a hazy distinction.

        (1997-04-09)

subject-oriented programming

        <programming> Program composition that supports building
        {object-oriented} systems as compositions of {subjects},
        extending systems by composing them with new subjects, and
        integrating systems by composing them with one another
        (perhaps with {glue} or adapter subjects).

        The flexibility of subject composition introduces novel
        opportunities for developing and modularising object-oriented
        programs.  Subject-oriented programming-in-the-large involves
        dividing a system into subjects and writing rules to compose
        them correctly.  It complements {object-oriented programming},
        solving a number of problems that arise when OOP is used to
        develop large systems or suites of interoperating or
        integrated applications.

        {IBM subject-oriented programming
        (http://www.research.ibm.com/sop/)}.

        (1999-08-31)

sublanguage

        <database, language> One of the languages associated with a
        {DBMS}, for example a {data-definition language} or {query
        language}.

        (1999-10-18)

subnet

        A portion of a {network}, which may be a physically
        independent network segment, which shares a {network address}
        with other portions of the network and is distinguished by a
        subnet number.  A subnet is to a network what a network is to
        an {internet}.

subnet address

        The {subnet} portion of an {IP address}.  In a subnetted
        {network}, the {host} portion of an IP address is split into a
        subnet portion and a host portion using an {address mask} (the
        subnet mask).

subnet mask

        {address mask}

subnet number

        {subnet address}

subroutine

        <programming> (Or "procedure") A sequence of {instructions}
        for performing a particular task.  Most programming languages,
        including most {machine languages}, allow the programmer to
        define subroutines.  This allows the subroutine code to be
        called from multiple places, even from within itself (in which
        case it is called {recursive}).  The programming language
        implementation takes care of returning control to (just after)
        the calling location, usually with the support of call and
        return instructions at {machine language} level.

        Most languages also allow {arguments} to be passed to the
        subroutine, and one, or occasionally more, {return values} to
        be passed back.

        A {function} is often very similar to a subroutine, the main
        difference being that it is called chiefly for its return
        value, rather than for any {side effects}.

        (1996-10-01)

subscribe

        <messaging> To request to receive messages posted to a
        {mailing list} or {newsgroup}.  In contrast to the mundane use
        of the word this is often free of charge.

        (1997-03-27)

subscribing

        {subscribe}

\subseteq

        Like a U on its right side with a line under it.  For sets x
        and y, x \subseteq y if all elements of x are also elements of
        y.

        (1995-02-03)

Subset-Equational Language

        (SEL) A {declarative} language for set processing by Bharat
        Jayaraman with subset and equational program clauses; {pattern
        matching} over sets (it supports efficient iteration over
        sets); annotations to say which functions distribute over
        union in which arguments (for point-wise/incremental
        computation over sets); defining {transitive closure}s through
        circular constraints (implemented by mixed
        top-down/{memoisation} and bottom-up strategy);
        {meta-programming} and simple {higher-order} programming;
        modest user-interface including tracing.

        The SEL {compiler}, written in {Quintus Prolog}, generates
        {WAM}-like code, extended to deal with set-matching,
        {memoisation}, and the novel control structure of the
        language.  The {run-time system} is written in {C}.

        {(ftp://ftp.cs.buffalo.edu/users/bharat/SEL2)}

        E-mail: Bharat Jayaraman <bharat@cs.buffalo.edu>.

        ["Towards a Broader Basis for Logic Programming",
        B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

        ["Set Abstraction in Functional and Logic Programming",
        F.S.K. Silbermann <fs@cs.tulane.edu> et al, ACM Proc 1989].

        (1994-12-15)

Substitute

        <character> (SUB) {ASCII} character 26.

        [Why?]

        (1996-06-28)

substrate

        <hardware> The body or base layer of an {integrated circuit},
        onto which other layers are deposited to form the circuit.
        The substrate is usually Silicon, though Sapphire is used for
        certain applications, particularly military, where radiation
        resistance is important.  The substrate is originally part of
        the {wafer} from which the {die} is cut.  It is used as the
        electrical {ground} for the circuit.

        (1996-04-07)

subtype

        <programming> If S is a subtype of T then an expression of
        {type} S may be used anywhere that one of type T can and an
        {implicit type conversion} will be applied to convert it to
        type T.

        In {object oriented programming}, this means that {objects} of
        type S must accept every {message} that one of type T would.

        (1997-07-28)

subtyping

        {subtype}

SuccessoR

        A language for {distributed computing} derived from {SR}.

        ["SuccessoR: Refinements to SR", R.A. Olsson et al, TR 84-3, U
        Arizona 1984].

        (1994-12-15)

successor

        {daughter}

sucking mud

        (Or "pumping mud") (Applied Data Research) Crashed or
        {wedged}.  Usually said of a machine that provides some
        service to a network, such as a {file server}.  This Dallas
        regionalism derives from the East Texas oilfield lament, "Shut
        'er down, Ma, she's a-suckin' mud".  Often used as a query.
        "We are going to reconfigure the network, are you ready to
        suck mud?"

        (1994-12-15)

Sue

        The system language used to write an {operating system} for
        the {IBM 360}.  It is a cross between {Pascal} and {XPL}.  It
        allows type checked {separate compilation} of internal
        procedures using a program library.

        ["The System Language for Project Sue", B.L. Clark e al,
        SIGPLAN Notices 6(9):79-88 (Oct 1971)].

        (1994-12-01)

sufficiently small

        {suitably small}

SUGAR

        A simple {lazy functional language} designed at {Westfield
        College}, University of London, UK and used in Principles of
        Functional Programming, Hugh Glaser et al, P-H 1984.

        (1994-12-01)

suicideware

        <jargon> A program which entirely stops functioning after a
        predefined date.  Used to ensure that {beta versions} don't
        remain in circulation indefinitely or in {demo versions} to
        ensure that they can only be used to try out the program.

        (1997-05-26)

SUIF

        Stanford University Intermediate Format.

        A register-oriented intermediate language.

        (1994-12-01)

suit

        1. Ugly and uncomfortable "business clothing" often worn by
        non-hackers.  Invariably worn with a "tie", a strangulation
        device that partially cuts off the blood supply to the brain.
        It is thought that this explains much about the behaviour of
        suit-wearers.

        2. A person who habitually wears suits, as distinct from a
        techie or hacker.

        See {loser}, {burble}, {management}, {Stupids}, {SNAFU
        principle}, and {brain-damaged}.

        (1998-07-01)

suitably small

        <jargon, mathematics> (From mathematical jargon) An expression
        used ironically to characterise unquantifiable behaviour that
        differs from expected or required behaviour.  For example,
        suppose a newly created program came up with a correct
        full-screen display, and one publicly exclaimed: "It works!"
        Then, if the program dumped {core} on the first mouse click,
        one might add: "Well, for suitably small values of `works'."

        Compare the characterisation of pi under {for values of}.

        (1997-09-21)

Suite Synthetique des Benchmarks de l'AFUU

        <benchmark> (SSBA, AFUU Synthetic Benchmark Suite) A {public
        domain} {benchmark} suite produced by the {AFUU}.

        Version: 2.3 (1995-07-14).

        (1996-06-11)

sum

        1. <theory> In {domain theory}, the sum A + B of two {domain}s
        contains all elements of both domains, modified to indicate
        which part of the union they come from, plus a new {bottom}
        element.  There are two constructor functions associated with
        the sum:

                inA : A -> A+B       inB : B -> A+B
                inA(a) = (0,a)       inB(b) = (1,b)

        and a disassembly operation:

                case d of {isA(x) -> E1; isB(x) -> E2}

        This can be generalised to arbitrary numbers of domains.

        See also {smash sum}, {disjoint union}.

        2. <tool> A {Unix} utility to calculate a 16-bit {checksum} of
        the data in a file.  It also displays the size of the file,
        either in {kilobyte}s or in 512-byte blocks.  The checksum may
        differ on machines with 16-bit and 32-bit ints.

        {Unix manual page}: sum(1).

        (1995-03-16)

Summary Object Interchange Format

        <World-Wide Web, protocol> (SOIF) The attribute-value pair
        record format which {Harvest Brokers} use to exchange
        {Harvest} content summaries.

        SOIF provides a means of bracketing collections of summary
        objects, allowing {Harvest Brokers} to retrieve SOIF content
        summaries for many objects in a single, efficient compressed
        stream.  Harvest Brokers provide support for querying SOIF
        data using structured attribute-value queries and many other
        types of queries.

        {(http://www.ust.hk/Harvest/brokers/soifhelp.html)}

        (1996-09-16)

SUMMER

        String manipulation and pattern matching language by Klint &
        Sint at {CWI} in the late 1970s.  It was recently used as the
        input and implementation language for the {Dataflow Compiler
        Project} at {CWI}.

        ["An Overview of the SUMMER Programming Language", Paul Klint,
        7th POPL, ACM 1980, pp. 47-55].

SUMMER SESSION

        An early system on {MIT}'s {Whirlwind}.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-01-19)

sum of products type

        {algebraic data type}

Sun

        {Sun Microsystems}

sun lounge

        <jargon> (Great Britain) The room where all the {Sun}
        {workstation}s live.  The humour in this term comes from the
        fact that it's also in mainstream use to describe a solarium,
        and all those Sun workstations clustered together give off an
        amazing amount of heat.

        (1995-01-19)

Sun Microsystems, Inc.

        <company> One of the first, and now biggest, US computer
        manufacturers.  They also manufacture in Europe.  The Sun 2
        and 3 series of {workstations} and {servers} were based on the
        {Motorola} {680x0} family of {microprocessors} and the Sun 4
        series on the {SPARC}.  Sun also produce their own version of
        {Unix}, originally called {SunOS} and now {Solaris}.  Their
        {Network File System} has become the {de facto standard} for
        sharing files between Unix systems.

        Quarterly sales $1403M, profits $78M (Aug 1994).

        {Home (http://www.sun.com/)}.  {Sun World Online
        (http://www.sun.com/sunworldonline/)}.

        Address: 2550 Garcia Ave., Mt. View, CA 94043 -1100 USA.

        (1995-10-14)

SunOS

        <operating system> {Sun Microsystems}' version of {Unix} for
        Sun {workstations}.  SunOS is similar to {BSD Unix} with some
        {SVR4} features and {OpenWindows} 3.0.

        After version 4, SunOS was integrated into Sun's {Solaris}
        "operating environment".

        (1999-03-26)

sunspots

        1. Notional cause of an odd error.  "Why did the program
        suddenly turn the screen blue?"  "Sunspots, I guess."

        2. Also the cause of {bit rot} - from the myth that sunspots
        will increase {cosmic rays}, which can flip single bits in
        memory.  See also {phase of the moon}.

sun-stools

        Unflattering hackerism for {SunTools}, a pre-{X} windowing
        environment notorious in its day for size, slowness, and
        misfeatures.  {X}, however, is larger and slower; see
        {second-system effect}.

SunView

        A windowing system from {Sun Microsystems}, superseded by
        {NeWS}.

SUNY

        {State University of New York}

SUPER

        The successor to {LOGLISP}, based on {LNF}.

        ["New Generation Knowledge Processing: Final Report on the
        SUPER System", J Alan Robinson et al, CASE Center TR 8707,
        Syracuse U, 1987].

        (1994-11-24)

Super 7

        <hardware, standard> An upgrade to {Socket 7} to support {AGP}
        and a 100 MHz {system bus},, supported by non-{Intel}
        {processor} and {motherboard} manufacturers such as {AMD} and
        {Cyrix}.

        Due to faster access to {L2 cache} and memory, Super 7 gives a
        10% performance boost over Socket 7 motherboards for the same
        processor.  Super 7 motherboards should support all Socket 7
        processors.

        (1999-08-04)

superclass

        {base class}

supercombinators

        {Combinators} with coarser granularity than those proposed by
        {David Turner}.  A {functional program} is translated to a set
        of functions without {free variable}s.  The members of the set
        are selected to be optimal for that program.  Supercombinators
        were proposed by John Hughes at {University of Edinburgh}.

supercompilation

        A function program transformation technique invented by
        Turchin.  A program is evaluated symbolically in order to
        observe the possible history of computation states called
        configurations.  Based on this Turchin's REFAL compiler would
        try to construct a better program.

supercomputer

        <computer> A broad term for one of the fastest computers
        currently available.  Such computers are typically used for
        {number crunching} including scientific {simulations},
        (animated) {graphics}, analysis of geological data (e.g. in
        petrochemical prospecting), structural analysis, computational
        fluid dynamics, physics, chemistry, electronic design, nuclear
        energy research and meteorology.  Perhaps the best known
        supercomputer manufacturer is {Cray Research}.

        A less serious definition, reported from about 1990 at The
        {University Of New South Wales} states that a supercomputer is
        any computer that can outperform {IBM}'s current fastest, thus
        making it impossible for IBM to ever produce a supercomputer.

        (1996-12-13)

superhighway

        {information superhighway}

SuperJanet

        An initiative started in 1989, under the Computer Board, with
        the aim of developing of a national {broadband} network to
        support UK higher education and research.  The preparatory
        work culminated in 1992 with the award of a contract worth 18M
        pounds to British Telecom to provide networking services over
        a four year period that extends to March 1997.

        The BT contract will provide a national network with two
        components: a high speed, configurable bandwidth network
        serving up to 16 sites, initially using {PDH} to be replaced
        with {SDH}, and a high speed switched data service ({SMDS})
        serving 50 or more sites.  The primary role of the PDH/SDH
        component will be to support the development and deployment of
        an {ATM} network.  These components will be complemented by
        several high performance {Metropolitan Area Network}s each
        serving several closely located sites.  The aim is to provide,
        within the first year of the project, a pervasive network
        capable of supporting a large and diverse user community.

        The network has two parts, an {IP} data network and an ATM
        network, both operating at 34Mbit/s.  Early in August 1993 the
        pilot IP network was transferred to full service and was
        configured to provide a trunk network for JIPS, the {JANET IP
        Service}.

        In November 1993 work was well advanced on the next phase
        which aims to extend SuperJANET to a large number of sites.
        The pilot four site ATM network will be extended to serve
        twelve sites and will expand the scope of the video network.
        The principal vehicle used for the expansion of the data
        network will be the {SMDS} service provided by {BT}.  Most of
        the work associated with the development of this phase is
        expected to be completed by the end of March 1994.

        [Joint Network Team, Network News 40, ISSN 0954 - 0636].

        {(ftp://osiris.jnt.ac.uk/pub/newsfiles/documents/netwnews/news40+/news4
0.para)}

        [Current status?]

        (1994-12-15)

SUPERMAC

        A general-purpose {macro} language, embeddable in existing
        languages as a run-time library.

        ["SUPERMAC - A Macro Facility That can be Added to Existing
        Compilers", P.J. Brown, Soft Prac & Exp 10(6):431-434].

        (1994-12-15)

Super Pascal

        A {Pascal} variant used in ["Data Structures and Algorithms",
        A.  Aho, Hopcroft & Ullman, A-W 1983].  It adds non-numeric
        labels, a return statement and expressions as names of types.

        (1994-12-15)

superpipelined

        1. Traditional {pipelined} architectures have a single
        pipeline stage for each of: instruction fetch, instruction
        decode, memory read, {ALU} operation and memory write.  A
        superpipelined {processor} has a {pipeline} where each of
        these logical steps may be subdivided into multiple {pipeline}
        stages.

        2. Marketese for {pipelined}.

superprogrammer

        A prolific programmer; one who can code exceedingly well and
        quickly.  Not all hackers are superprogrammers, but many are.
        Productivity can vary from one programmer to another by three
        orders of magnitude.  For example, one programmer might be
        able to write an average of three lines of working code in one
        day, while another, with the proper tools, might be able to
        write 3,000.  This range is astonishing; it is matched in very
        few other areas of human endeavour.

        The term "superprogrammer" is more commonly used within such
        places as IBM than in the hacker community.  It tends to
        stress naive measures of productivity and to underweight
        creativity, ingenuity, and getting the job *done* - and to
        sidestep the question of whether the 3,000 lines of code do
        more or less useful work than three lines that do the {Right
        Thing}.  Hackers tend to prefer the terms {hacker} and
        {wizard}.

superscalar

        <architecture> A superscalar architecture is a {uniprocessor}
        that can execute two or more {scalar} operations in parallel.
        Some definitions include {superpipelined} and {VLIW}
        architectures; others do not.  Superscalar architectures
        (apart from superpipelined architectures) require multiple
        {functional unit}s, which may or may not be identical to each
        other.  In some superscalar processors the order of
        instruction execution is determined statically (purely at
        compile-time), in others it is determined dynamically (partly
        at run-time).

super source quench

        A special packet designed to shut up an {Internet} host.  The
        {Internet Protocol} (IP) has a control message called Source
        Quench that asks a host to transmit more slowly on a
        particular connection to avoid congestion.  It also has a
        Redirect control message intended to instruct a host to send
        certain packets to a different local router.  A "super source
        quench" is actually a redirect control packet, forged to look
        like it came from a local router, that instructs a host to
        send all packets to its own local loopback address.  This will
        effectively tie many Internet hosts up in knots.  Compare
        {godzillagram}, {breath-of-life packet}.

SuperTalk

        Silicon Beach Software.  A superset of HyperTalk used in
        SuperCard.

superuser

        [Unix] Synonym {root}, {avatar}.  This usage has spread to
        non-Unix environments; the superuser is any account with all
        {wheel} bits on.  A more specific term than {wheel}.

Super VGA

        {Super Video Graphics Array}

Super Video Graphics Adapter

        {Super Video Graphics Array}

Super Video Graphics Adaptor

        {Super Video Graphics Array}

Super Video Graphics Array

        <hardware> (SVGA) A {video display} {standard} created by
        {VESA} for {IBM PC} compatible personal computers.  The
        resolution is 800 x 600 4-bit {pixel}s.  Each pixel can
        therefore be one of 16 colours.

        See {Video Graphics Array}.

        [Is there a palette?  Standard document?  Adapter, Adaptor, or
        Array?]

        (1995-01-12)

supervisor mode

        (Or "{supervisor state}") An execution mode on some processors
        which enables execution of all instructions, including
        {privileged instruction}s.  It may also give access to
        different a {address space}, to {memory management} hardware
        and to other peripherals.  This is the mode in which the
        {operating system} usually runs.

        Opposite: {user mode}.

        (1995-02-15)

Supervisory Control and Data Acquisition

        <application> (SCADA) Systems are used in industry to monitor
        and control plant status and provide logging facilities.
        SCADA systems are highly configurable, and usually interface
        to the plant via {PLC}s.

        (1997-02-11)

support

        After-sale handholding; something many software vendors
        promise but few deliver.  To hackers, most support people are
        useless - because by the time a hacker calls support he or she
        will usually know the software and the relevant manuals better
        than the support people (sadly, this is *not* a joke or
        exaggeration).  A hacker's idea of "support" is a tte--tte
        or exchange of {electronic mail} with the software's designer.

        (1995-02-15)

supremum

        {least upper bound}

Sure

        ["Towards a Broader Basis for Logic Programming", Bharat
        Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

        (1995-01-05)

surfing

        ("Internet surfing") Used by analogy to describe the ease with
        which an expert user can use the waves of information flowing
        around the {Internet} to get where he wants.  The term became
        popular in the early 1990s as access to the {Internet} became
        more widespread and tools such as {World-Wide Web} {browser}s
        made its use simpler and more pleasant.

        (1995-01-05)

SURGE

        Sorter, Updater, Report Generator, Etc.  IBM 704, 1959.
        Sammet 1969, p.8.

surjection

        <mathematics> A function f : A -> B is surjective or onto or a
        surjection if f A = B.  I.e. f can return any value in B.
        This means that its {image} is its {codomain}.

        Only surjections have {right inverses}, f' : B -> A where
        f (f' x) = x since if f were not a surjection there would be
        elements of B for which f' was not defined.

        See also {bijection}, {injection}.

        (1995-05-27)

surjective

        {surjection}

surrogate key

        <database> A {key} which depends wholely on other key(s).  A
        surrogate key is usually identified for implementation
        convenience, where none of the candidate keys are attractive.
        An example: If the three-letter initials of a group of people
        are known to be unique but only their full names are recorded,
        a three letter acronym for their names (e.g. John Doe Smith;
        JDB) would be a surrogate key.

        (1997-04-26)

suspension

        In {lazy evaluation}, a suspension (or in Henderson's
        terminology, a "recipe") is a {closure} with a flag indicating
        whether the expression has been evaluated or not.  When the
        expression is evaluated the first time, this flag is set.
        Subsequent requests for the value of the expression will not
        attempt to re-evaluate it.

        (1995-02-06)

Suzie COBOL

        /soo'zee koh'bol/ 1. ({IBM}, probably from Frank Zappa's "Suzy
        Creamcheese") A coder straight out of training school who
        knows everything except the value of {comment}s in plain
        English.  Also (fashionable among personkind wishing to avoid
        accusations of sexism) "Sammy Cobol" or (in some non-IBM
        circles) "Cobol Charlie".

        2. (proposed) Meta-name for any {code grinder}, analogous to
        {J. Random Hacker}.

        (1995-02-06)

sv

        <networking> The {country code} for El Salvador.

        (1999-01-27)

SVC

        1. <networking> {Switch Virtual Circuit}.

        2. <operating system> {Supervisor Call}.

        (1999-10-08)

SVGA

        <hardware> {Super Video Graphics Array} (not
        "Adapter").

        (1995-11-16)

SVGA monitor

        <hardware, graphics> A {monitor} capable of displaying the
        output of an {SVGA} card.

        (1997-02-25)

SVID

        {System V Interface Definition}

S-Video

        <multimedia> A {video} format offering a higher quality signal
        than {composite video}, but a lower quality than {component
        video}.  This mid-level format divides the signal into two
        channels - {luminance} and {chrominance}.

        [Used where and for what?]

        (1998-06-25)

SVR4

        {AT&T}/{USL} {Unix} {System V} Release 4.

        (1995-03-28)

SVRC

        <body> {Software Verification Research Centre}.

        (1995-11-14)

SVS

        {OS/VS2}

swab

        /swob/ The {PDP-11} swap byte instruction mnemonic, as
        immortalised in the {dd} option "conv=swab".

        1. To solve the {NUXI problem} by swapping bytes in a file.

        2.  The program in V7 Unix used to perform this action, or
        anything functionally equivalent to it.

        See also {big-endian}, {little-endian}, {middle-endian},
        {bytesexual}.

S.W.A.G.

        <jargon> Scientific (or Silly) Wild Ass Guess.  A term used by
        techical teams when establishing high level sizings for large
        projects.

        (1998-12-20)

swap

        <operating system> To move a program from fast-access memory
        to a slow-access memory ("swap out"), or vice versa ("swap
        in").  The term often refers specifically to the use of a
        {hard disk} (or a {swap file}) as {virtual memory} or "swap
        space".

        When a program is to be executed, possibly as determined by a
        {scheduler}, it is swapped into {core} for processing; when it
        can no longer continue executing for some reason, or the
        scheduler decides its {time slice} has expired, it is swapped
        out again.

        This contrasts with "paging" systems in which only parts of a
        program's memory is transfered.

        (1996-11-22)

swap file

        <operating system> A file used by a {program} or, more often,
        an {operating system} as {swap space}.  A swap file is usually
        allocated as a long contiguous section of a {hard disk} to
        reduce access time.  The disk space used for a swap file can
        not be used for other things.  Under {Microsoft Windows}, swap
        files are recommended not to exceed three times the available
        {RAM} and are usually 150 percent of the RAM size.

        (1996-11-15)

swapped in

        {swap}

swapped out

        {swap}

swapping

        {swap}

swap space

        <operating system> An area of disk (e.g. a {swap file}) used
        to store the state of a process that has been {swap}ped out.
        Under a {virtual memory} system, it is the amount of swap
        space rather than the amount of {physical memory} which
        determines the maximum size of a single process and the
        maximum total size of all active processes.

        (1994-11-03)

SweetLambda

        Sugared {lambda-calculus}(?).

SWI-Prolog

        A {Prolog} by Jan Wielemaker <jan@swi.psy.uva.nl> like a
        superset of {Edinburgh Prolog}.  Version 1.7.2.  Distributed
        under {GNU} {General Public License}.  Runs on {Sun4}, {Sun3},
        {Linux}, {DEC} {MIPS} (incomplete), {RS/6000}, {PS2}/{AIX},
        {Atari ST}, {Gould PN}, {NeXT}, {VAX}, {HP-UX} (problems),
        {MS-DOS} and {OS/2}.

        {(ftp://swi.psy.uva.nl/pub/SWI-Prolog)}.  {OS/2
        (ftp://mpii02999.ag2.mpi-sb.mpg.de/pub/toolw/SWI/)}.  Mailing
        list: prolog-request@swi.psy.uva.nl.  E-mail: Andreas Toenne
        <atoenne@mpi-sb.mpg.de> (OS/2).

        (1993-07-23)

switch

        1. <programming> {switch statement}.

        2. <software> {command line option}.

        3. <networking> {packet switch}, {circuit switch}.

        (1999-01-14)

Switched Multimegabit Data Service

        <networking> (SMDS) An emerging high-speed {datagram}-based
        public data {network} service developed by {Bellcore} and
        expected to be widely used by telephone companies as the basis
        for their data networks.

        See also {Metropolitan Area Network}.

        (1997-01-31)

switching hub

        <networking> A {circuit switching} hub.

        (1999-01-01)

switch statement

        <programming> (Or case statement, multi-way branch) A
        construct found in most {high-level languages} for selecting
        one of several possible blocks of code or branch destinations
        depending on the value of an expression.  An example in {C} is

                switch (foo(x, y))
                {
                case 1:  printf("Hello\n");     /* fall through */
                case 2:  printf("Goodbye\n"); break;
                case 3:  printf("Fish\n"); break;
                default: fprintf(stderr, "Odd foo value\n"); exit(1);
                }

        The break statements cause execution to continue after the
        whole switch statemetnt.  The lack of a break statement after
        the first case means that execution will {fall through} into
        the second case.  Since this is a common programming error you
        should add a comment if it is intentional.

        If none of the explicit cases matches the expression value
        then the (optional) default case is taken.

        A similar construct in some {functional languages} returns the
        value of one of several expressions selected according to the
        value of the first expression.  A distant relation to the
        modern switch statement is {FORTRAN}'s {computed goto}.

        (1997-01-30)

swizzle

        To convert external names, array indices, or references within
        a data structure into address pointers when the data structure
        is brought into main memory from external storage (also called
        "pointer swizzling"); this may be done for speed in chasing
        references or to simplify code (e.g. by turning lots of name
        lookups into pointer dereferences).  The converse operation is
        sometimes termed "unswizzling".

        See also {snap}.

swung dash

        <character> A {character} similar to {tilde} but appearing
        in the same vertical position as a {dash}, i.e. half way up
        rather than at the top like tilde.  {ASCII} does not include a
        swung dash so tilde is used instead.

        It is commonly used for "approximates" or "is approximately
        equal to".

        (1997-06-28)

sy

        <networking> The {country code} for Syria.

        (1999-01-27)

Sybase, Inc.

        <company> A software vendor focused on {database} management
        software.

        Yearly sales: $903.9 million (1997).

        Address: 6475 Christie Ave., Emeryville, California, USA.

        {Home (http://www.sybase.com)}

        (1998-05-18)

SYDEL

        A system language, fully typed, with inline {assembly code},
        by Jan Garwick, ca 1974.

SYGMA

        A symbolic generator and macro assembler by A.P. Ershov et al
        of Novosibirsk.  For the {BESM-6}, {M-220} and {Minsk-22}.

        ["SYGMA, A Symbolic Generator and Macroassembler", A.P. Ershov
        et al, in Symbol Manipulation Languages and Techniques,
        D.G. Bobrow ed, N-H 1968, pp.226- 246].

Sylvan

        [Distributed language?]

Symantec

        <company> Software manufacturer of utility and development
        applications for {Windows} and {Macintosh} platforms.
        Products include ACT!, Norton Utilities, Norton AntiVirus,
        Symantec AntiVirus for Macintosh, Symantec Cafe.

        {Home (http://www.symantec.com/)}.

        (1997-03-10)

SYMBAL

        SYMbolic ALgebra.  A {symbolic mathematics} language with
        {ALGOL}-like syntax by Max Engeli, late 60's.  Implemented for
        {CDC6600}.

        ["User's Manual for the Formula Manipulation Language SYMBAL",
        M. Engeli, TRM-8.00, Comp Ctr UT Austin, June 1968].

SymbMath

        Small symbolic math package for {MS-DOS}.  Has the ability to
        learn new facts.  Version 2.1.1

        {(ftp://ftp.simtel.com/math/utk/software/msdos/calculus/symbmath/)}

SYMBOLANG

        Lapidus & Goldstein, 1965.  Symbol manipulating FORTRAN
        subroutine package for IBM 7094, later CDC6600.

        ["Some Experiments in Algebraic Manipulation", CACM 8:501-508
        1965].

        (1995-03-16)

Symbolic Assembler Program

        <language> (SAP) The {assembly language} for the {IBM 704},
        defined in the late 1950s.

        (1994-12-12)

SYMBOLIC ASSEMBLY

        <language> An early system on the {IBM 705}.

        [Listed in CACM 2(5):16, May 1959].

        (1996-01-15)

symbolic inference

        The derivation of new facts from known facts and {inference
        rule}s.  This is one of the fundamental operations of
        {artificial intelligence} and {logic programming} languages
        like {Prolog}.

        Inference is a basic part of human reasoning.  For example
        given that all men are mortal and that Socrates is a man, it
        is a trivial step to infer that Socrates is mortal.  We might
        express these symbolically:

                man(X) => mortal(X).
                man(socrates).

        ("if X is a man then X is mortal" and "Socrates is a man").
        Here, "man", "mortal" and "socrates" are just arbitrary
        symbols which the computer manipulates without reference to or
        knowledge of their external meaning.  A {forward chaining}
        system (a {production system}) could use these to infer the
        new fact

                mortal(socrates).

        simply by matching the left-hand-side of the implication
        against the fact and substituting socrates for the variable X.

        (1994-10-28)

symbolic link

        <file system> (Or "symlink", soft link (by contrast with "{hard
        link}"), "{shortcut}", "{alias}") A special type of {Unix}
        file which refers to another file by its {pathname}.  A
        symbolic link is created with the "ln" (link) command:

                ln -s OLDNAME NEWNAME

        Where OLDNAME is the target of the link (usually a pathname)
        and NEWNAME is the pathname of the link itself.

        Most operations ({open}, {read}, {write}) on the symbolic link
        automatically {dereference} it and operate on its target
        (OLDNAME).  Some operations (e.g. removing) work on the link
        itself (NEWNAME).

        In contrast with {hard links}, there are no restrictions on
        where a symbolic link can point, it can refer to a file on
        another file system, to itself or to a file which does not
        even exist (e.g. when the target of the symlink is removed).
        Such problems will only be detected when the link is accessed.

        (1997-10-22)

symbolic logic

        <logic> The discipline that treats formal {logic} by means of
        a formalised artificial language or symbolic calculus, whose
        purpose is to avoid the ambiguities and logical inadequacies
        of {natural language}.

        (1995-12-24)

Symbolic Mathematical Laboratory

        <tool, mathematics> An on-line system under {CTSS} for
        {symbolic mathematics}.  It used a {display screen} and a
        {light pen}.

        [Sammet 1969, p.514].

        (1995-04-16)

symbolic mathematics

        <mathematics, application> (Or "symbolic math") The use of
        computers to manipulate mathematical equations and expressions
        in symbolic form, as opposed to manipulating the numerical
        quantities represented by those symbols.  Such a system might
        be used for symbolic integration or differentiation,
        substitution of one expression into another, simplification of
        an expression, change of subject etc.

        One of the best known symbolic mathematics software packages
        is {Mathematica}.  Others include {ALAM}, {ALGY}, {AMP},
        {Ashmedai}, {AXIOM*}, {CAMAL}, {CAYLEY}, {CCalc}, {CLAM},
        {CoCoA}(?), {ESP}, {FLAP}, {FORM}, {FORMAL}, {Formula ALGOL},
        {GAP}, {JACAL}, {LiE}, {Macaulay}, {MACSYMA}, {Magic Paper},
        {MAO}, {Maple}, {Mathcad}, {MATHLAB}, {MuMath}, {Nother},
        {ORTHOCARTAN}, {Pari}, {REDUCE}, {SAC-1}, {SAC2}, {SAINT},
        {Schoonschip}, {Scratchpad I}, {SHEEP}, {STENSOR}, {SYMBAL},
        {SymbMath}, {Symbolic Mathematical Laboratory}, {TRIGMAN},
        {UBASIC}.

        {Usenet} newsgropup: {news:sci.math.symbolic}.

        (1995-04-12)

Symbolics, Inc.

        <company> The company which produced the {Lisp Machine}.

        {The Symbolics Museum
        (http://home.brightware.com/~rwk/symbolics/)}.

        [Summary?]

        (1998-12-13)

Symbol Manipulation Program

        (SMP) {Steven Wolfram}'s earlier symbol manipulation program,
        before he turned to {Mathematica}.

        ["SMP Handbook", C. Cole, S. Wolfram et al, Caltech 1981].

        (1995-01-29)

symlink

        {symbolic link}

symmetric

        <mathematics> 1. A {relation} R is symmetric if, for all x and
        y,

                x R y  =>  y R x

        If it is also {antisymmetric} (x R y & y R x => x == y) then
        x R y => x == y, i.e. no two different elements are related.

        2. In {linear algebra}, a member of the {tensor product} of a
        {vector space} with itself one or more times, is symmetric if
        it is a {fixed point} of all of the {linear isomorphisms} of
        the tensor product generated by {permutations} of the ordering
        of the copies of the vector space as factors.  It is said to
        be antisymmetric precisely if the action of any of these
        linear maps, on the given tensor, is equivalent to
        multiplication by the sign of the permutation in question.

        (1996-09-22)

symmetric key cryptography

        <cryptography> A {cryptography} system in which both parties
        have the same encryption {key}, as in {secret key
        cryptography}.

        Opposite: {public-key cryptography}.

        (1998-06-09)

Symmetric LISP

        A parallel {Lisp} in which environments are {first-class}
        objects.  It is implemented in {Common LISP}.

        ["Parallelism, Persistence and Meta-Cleanliness in the
        Symmetric Lisp Processor", D. Gelernter et al, SIGPLAN Notices
        22(7):274-282 (July 1987)].

        ["A Programming Language Supporting First-Class Parallel
        Environments", S. Jagannathan, MIT-LCS/TR 434, 1989].

        E-mail: Suresh Jagannathan <suresh@research.nj.nec.com>.

        (1995-03-16)

symmetric multiprocessing

        <parallel> (SMP) Two or more similar {processor}s connected
        via a high-{bandwidth} link and managed by one {operating
        system}, where each processor has equal access to I/O devices.
        This is in contrast to the "{compute server}" kind of
        {parallel processor} where a {front-end processor} handles all
        I/O to disks, terminals and {local area network} etc.

        The processors are treated more or less equally, with
        {application program}s able to run on any or perhaps all
        processors in the system, interchangeably, at the operating
        system's discretion.  Simple MP usually involves assigning
        each processor to a fixed task (such as managing the file
        system), reserving the single main CPU for general tasks.

        {OS/2} currently supports so-called HMP (Hybrid
        Multiprocessing), which provides some elements of symmetric
        multiprocessing, using add-on IBM software called MP/2.  OS/2
        SMP was planned for release in late 1993.

        (1995-03-19)

symmetric multiprocessor

        {symmetric multiprocessing}

Symphony

        <tool, product> {Lotus Development}'s successor to their
        {Lotus 1-2-3} spreadsheet.  Unlike 1-2-3, Symphony allowed a
        limited form of {multitasking}.  The user could switch
        manually between it and {MS-DOS} and separate graph and
        spreadsheet windows could be opened simultaneously and would
        be updated automatically when cells were changed.  In
        addition, a small word processor could be opened in a third
        window.  These all could be printed out on the same report.
        Symphony could read and write Lotus 1-2-3 files and had
        interactive graphical output and a word processor, thus making
        it effectively a report generator.  Unlike 1-2-3, Symphony was
        not a great commercial success.

        (1995-03-28)

SYMPL

        <language> SYsteMs Programming Language.

        {CDC}'s derivative of {Jovial}.  SYMPL is a non-{re-entrant}
        {block structured} language with extensive {bit manipulation}
        facilities, which is linkable with {FORTRAN}.  Major parts of
        CDC systems during the 1970s were written in SYMPL.

        (1995-02-14)

SYN

        1. <character> {Synchronous idle}.

        2. <language> A syntactic specification language for {COPS}.

        ["Metalanguages of the Compiler Production System COPS",
        J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
        W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

        3. [TCP/IP SYN request?]

        (1996-04-17)

sync

        /sink/ (Or "synch") 1. To synchronise, to bring into
        synchronisation.

        2. <file system> To force ("{flush}") all pending buffered
        disk writes to the disk.

        3. More generally, to force a number of competing processes or
        agents to a state that would be "safe" if the system were to
        crash, i.e. to {checkpoint} in the {database} sense.

        (1994-11-11)

synchronous

        <operating system, communications> 1. Two or more processes
        that depend upon the occurrences of specific events such as
        common timing signals.

        2. Occurring at the same time or at the same rate or with a
        regular or predictable time relationship or sequence.

        Opposite: {asynchronous}.

        (1996-04-11)

Synchronous Data Link Control

        <communications> (SDLC) An {IBM} {protocol}.

        A discipline conforming to subsets of the {ADCCP} of {ANSI}
        and the {HDLC} of the {International Organization for
        Standardization}.  SDLC manages synchronous, code-transparent,
        bit-serial communication which can be {duplex} or
        {half-duplex}; switched or non-switched; {point-to-point},
        {multipoint}, or loop.

        Compare {Binary Synchronous Communication}.

        (1995-03-22)

Synchronous Digital Hierarchy

        <communications, standard> (SDH) An international digital
        telecommunications network hierarchy which standardises
        transmission around the bit rate of 51.84 megabits per second,
        which is also called STS-1.  Multiples of this bit rate
        comprise higher bit rate streams.  Thus STS-3 is 3 times
        STS-1, STS-12 is 12 times STS-1, and so on.  STS-3 is the
        lowest bit rate expected to carry {ATM} traffic, and is also
        referred to as STM-1 (Synchronous Transport Module-Level 1).

        The SDH specifies how payload data is framed and transported
        synchronously across {optical fibre} transmission links without
        requiring all the links and nodes to have the same
        synchronized clock for data transmission and recovery
        (i.e. both the clock frequency and phase are allowed to have
        variations, or be {plesiochronous}).

        SDH offers several advantages over the current {multiplexing}
        technology, which is known as {Plesiochronous Digital
        Hierarchy}.  Where PDH lacks built-in facilities for automatic
        management and routing, and locks users into proprietary
        methods, SDH can improve network reliability and performance,
        offers much greater flexibility and lower operating and
        maintenance costs, and provides for a faster provision of new
        services.

        Under SDH, incoming traffic is synchronized and enhanced with
        {network management} bits before being multiplexed into the
        STM-1 fixed rate {frame}.

        The fundamental clock frequency around which the SDH or
        {SONET} framing is done is 8 KHz or 125 microseconds.

        SONET ({Synchronous Optical Network}) is the American version
        of SDH.

        (1995-03-02)

Synchronous DRAM

        {Synchronous Dynamic Random Access Memory}

Synchronous Dynamic Random Access Memory

        <storage> (SDRAM, Synchronous DRAM) A form of {DRAM} which
        adds a separate {clock} signal to the control signals.  SDRAM
        chips can contain more complex {state machines}, allowing them
        to support "burst" access modes that clock out a series of
        successive {bits} (similar to the {nibble mode DRAM}).

        (1996-10-05)

Synchronous Graphics RAM

        {Synchronous Graphics Random Access Memory}

Synchronous Graphics Random Access Memory

        <storage> (SGRAM, Synchronous Graphics RAM) A type of
        {Synchronous DRAM} optimised for use in {graphics} hardware.
        Extra features can include {burst operation}, {block write}
        and {write per bit}.  SGRAMs are designed to provide the very
        high {throughput} needed for graphics-intensive operations
        such as 3d {rendering} and {full-motion video}.

        (1996-11-28)

Synchronous idle

        <character> (SYN) The {mnemonic} for {ASCII} character 22.

        [Why?]

        (1996-06-28)

synchronous key encryption

        <algorithm, cryptography> Data {encryption} using two
        interlocking keys where enything encoded using one key may be
        decoded using the other key.  This means if someone makes one
        of the two keys publicly available (as in {public-key
        encryption}) and keeps the other private, then anyone may send
        them a message or data that only they can decode, giving
        privacy, and furthermore, the sender may also encrypt that
        same message additionally with their own private key, making
        it impossible to read without decoding first with *their*
        _public_ key by the receiver, this gives authenticity.

        It is a very powerful system.  One cannot determine one key
        from the other, nor can they crack the encryption by computing
        all combinations, because, depending on the size of the keys
        (sometimes as large as 1024 bytes, though having grown from
        smaller versions in popular implementations of the software
        which does this), the amount of computing power required to
        crack the code is unavailable, even supercomputers would take
        more than a hundred years to crack it.

        {PGP} is a publicly availble software implementation written
        by Phil Zimmermann.

        (1994-10-10)

Synchronous Optical NETwork

        <networking> (SONET) A {broadband} networking {standard} based
        on point-to-point {optical fibre} networks.  SONET will
        provide a high-bandwidth "pipe" to support {ATM}-based
        services.

        The SONET standard will establish a digital {hierarchical
        network} with a consistent worldwide transport scheme.  SONET
        has been designed to take advantage of fibre, in contrast to
        the {plain old telephone system} which was designed for copper
        wires.

        SONET carries {circuit-switched} data in {frames} at speeds in
        multiples of 51.84 megabits per second (Mbps) up to 48 * 51.84
        Mbps = 2.488 {gigabits} per second.  Since SONET uses multiple
        channels to transmit data, each SONET {frame} can be
        considered to be a two-dimensional table of bytes that is 9
        rows high and 90 columns deep.  For every {OC-n} level, SONET
        can transmit n number of frames at a given time.  Groups of
        frames are called {superframes}.

        SONET is the American version of {SDH}.

        [Wulf Losee; Corporate Computing 8.92; STACKS; LAN Magazine
        10.93].

        (1994-11-30)

syncronous

        <spelling> It's spelled "{synchronous}".

        (1996-12-13)

synflood

        <networking> To {flood} another machine with bogus {TCP/IP}
        {SYN} requests.

        (1997-04-07)

synonym ring

        <information science> A list of words with related meanings
        used to broaden the scope of a word search.  As well as
        returning documents which contain a sought-for word a search
        using a synonym ring might also return documents which contain
        words in the same synonym ring as a sought-for word.  Synonym
        rings are produced manually and are usually specific to a
        certain field, e.g. legal knowhow.

        (1997-04-09)

syntactic salt

        The opposite of {syntactic sugar}, a feature designed to make
        it harder to write bad code.  Specifically, syntactic salt is
        a hoop the programmer must jump through just to prove that he
        knows what's going on, rather than to express a program
        action.  Some programmers consider required type declarations
        to be syntactic salt.  A requirement to write "end if", "end
        while", "end do", etc. to terminate the last block controlled
        by a control construct (as opposed to just "end") would
        definitely be syntactic salt.  Syntactic salt is like the real
        thing in that it tends to raise hackers' blood pressures in an
        unhealthy way.  Compare {candygrammar}.

syntactic sugar

        Term coined by Peter Landin for additions to the syntax of a
        language which do not affect its expressiveness but make it
        "sweeter" for humans to use.  Syntactic sugar gives the
        programmer an alternative way of coding that is more succinct
        or more like some familiar notation.  It does not affect the
        expressiveness of the formalism (compare {chrome}).

        Syntactic sugar can be easily translated ("desugared") to
        produce a program in some simpler "core" syntax.  E.g. C's
        "a[i]" notation is syntactic sugar for "*(a + i)".  In a
        (curried) functional language, all operators are really
        functions and the use of {infix notation} "x+y" is syntactic
        sugar for function application "(+) x y".

        Alan Perlis once quipped, "Syntactic sugar causes cancer of
        the semicolon."

        The variants "syntactic saccharin" and "syntactic syrup" are
        also recorded.  These denote something even more gratuitous,
        in that they serve no purpose at all.  Compare {candygrammar},
        {syntactic salt}.

syntax

        The structure of strings in some language.  A language's
        syntax is described by a {grammar}.  For example, the syntax
        of a binary number could be expressed as

                binary_number = bit [ binary_number ]

                bit = "0" | "1"

        meaning that a binary number is a bit optionally followed by a
        binary number and a bit is a literal zero or one digit.

        The meaning of the language is given by its {semantics}.

        See also {abstract syntax}, {concrete syntax}.

        (1994-10-31)

Syntax-Case

        <language> A {macro} system for {Scheme} by R. Kent Dybvig
        <dyb@cs.indiana.edu>.  It is superior to the low-level system
        described in the Revised^4 Report ({R4RS}).  Pattern variables
        are ordinary identifiers with essentially the same status as
        lexical variable names and {macro} {keywords}.  The {syntax}
        is modified to recognise and handle references to pattern
        variables.  Version 2.1 works with {Chez Scheme} and the
        {Macintosh} port runs under {MacGambit} 2.0

        {(ftp://iuvax.cs.indiana.edu/pub/scheme/syntax-case.tar.Z)}.
        {Macintosh (ftp://maya.dei.unipd.it/pub/mac/gambit/)}.

        ["Syntactic Abstraction in Scheme",
        Robert Hieb, R. Kent Dybvig and Carl Bruggeman
        IUCS TR #355, 6/92 (revised 7/3/92)].

        ["Writing Hygienic Macros in Scheme with Syntax-Case", R. Kent
        Dybvig, IUCS TR #356, 6/92 (revised 7/3/92)].

        (1992-07-06)

syntax directed translation

        A technique where the structure of a language processor (e.g. a
        compiler) is based on the structure of the language's
        {abstract syntax}.  There might be one procedure in the
        translator corresponding to each category in the abstract
        syntax.  That procedure is responsible for processing
        constructs of that category.  Each procedure would call others
        corresponding to the construct's subconstituents and then
        combine their results to give the overall result for that
        construct.

Syntax/Semantic Language

        (S/SL) A specification language for {recursive descent
        parser}s by Rick C. Holt and Jim Cordy
        <cordy@qucis.queensu.ca>.  Rayan Zachariassen
        <rayan@cs.toronto.edu> produced the {C} implementation.

        Unlike most other languages, practicially the LEAST expensive
        thing you can do in S/SL is recurse.  A small language that
        defines input, output, and error token names (& values),
        semantic operations (which are really escapes to a programming
        language but allow good abstraction in the pseudo-code) and a
        pseudo-code program that defines a {grammar} by the {token}
        stream the program accepts.  {Alternation}, {control flow} and
        1-symbol {lookahead} constructs are part of the language.

        An S/SL implementation compiles this S/SL pseudo-code into a
        table ({byte-codes}) that is interpreted by the S/SL
        table-walker ({interpreter}).  The pseudo-code language
        probably has an {LR1 grammar} and the semantic mechanisms
        probably turn it into an {LRn grammar} relatively easily.  It
        is more powerful and cleaner than yacc but slower.

        {(ftp://ftp.cs.toronto.edu/pub/ssl.tar.Z)}

        ["Specification of S/SL: Syntax/Semantic Language", Cordy,
        J.R. and Holt, R.C., Computer Systems Research Institute,
        University of Toronto, 1980].

        ["An Introduction to S/SL: Syntax/Semantic Language" by
        R.C. Holt, J.R.  Cordy, and D.B. Wortman, in ACM Transactions
        on Programming Languages and Systems (TOPLAS), Vol 4, No.  2,
        April 1982, Pages 149-178].

        (1989-09-25)

syntax tree

        <mathematics, theory, language> A {tree} representing the
        {abstract syntax} of some {tokens} in a {language}.

        (1998-11-12)

synthesis

        <programming, specification> The process of deriving
        (efficient) programs from (clear) specifications.

        See also {program transformation}.

        (1996-08-23)

Synthesizer Specification Language

        (SSL) A specification language based on {term algebra} and
        {attribute grammar}s.  SSL is used by the {Synthesizer
        Generator}, a generator for {language-based editor}s such as
        the {Cornell Program Synthesizer}.

        ["Generating Language Based Environments", T. Reps, MIT Press
        1984].

        (1994-12-16)

SyQuest Technology, Inc.

        <company, hardware> An early entrant into the removable {hard
        disk} market for {personal computers}.  For may years SyQuest
        held the market, particularly as a method of transferring
        large {desktop publisher} documents to printers.  SyQuest aim
        their products to give personal computer users "endless" hard
        drive space for data-intensive applications like {desktop
        publishing}, {Internet} information management, pre-press,
        {multimedia}, {audio}, {video}, {digital photography}, fast
        {backup}, data exchange, {archiving}, confidential data
        security and easy portability for the road.

        At the top of their current (Mar 1997) range are two drives,
        The {SyJet} 1.5 {GB} a 3.5 inch, double platter removable
        drive and the {EZFlyer} 230 {MB} also on 3.5 inch media.  A
        cartridge holding over 4.7GB is promised before the end of
        1997.

        In recent years they have not fared as well in the market,
        whilst {Iomega} has cornered the {Small Office/Home Office}
        (SOHO) market.  Over the period 1995 to 1997 sales declined
        resulting in a series of losses.  In the first quarter of 1997
        these losses had been reduced to $6.8 million with net
        revenues increasing to $48.3 million.  This compares to a net
        loss of $33.8 million, or $2.98 per share, on net revenues of
        $78.7 million for the same period the year before.  It would
        appear that substantial restructuring has occurred over the
        past few years.

        {Home (http://www.syquest.com/)}.

        (1997-03-27)

sysadmin

        {system administrator}

sysape

        /sys'ayp/ A rather derogatory term for a computer operator; a
        play on {sysop} common at sites that use the banana hierarchy
        of problem complexity (see {one-banana problem}).

Sysdeco Mimer AB

        <company> Part of the international software group Sysdeco
        Group AS.  They developed the {MIMER} {RDBMS}.

        {Home (http://www.mimer.se/)}

        Address: Uppsala, Sweden.

        (1995-11-11)

sys-frog

        /sis'frog/ (the {PLATO} system) A playful variant of
        "{sysprog}".

        (1994-11-04)

SYSLISP

        System language used in the implementation of Portable
        Standard Lisp.  Mentioned in "The Evolution of Lisp",
        G.L. Steele et al, SIGPLAN Notices 28(3):231-270 (Mar 1993).

sysop

        {System Operator}

Sysplex

        <operating system> An {IBM} term for communicating {MVS}
        systems.  See also "{Parallel Sysplex}".

        (1996-11-23)

sysprog

        {Systems programmer}

system

        1. The {supervisor} program or {operating system} on a
        computer.

        2. The entire computer system, including input/output devices,
        the {supervisor} program or {operating system} and possibly
        other {software}.

        3. Any large program.

        4. Any method or {algorithm}.

System/360

        <operating system> An {operating system} announced by {IBM} on
        07 April 1964.

        [Hardware or OS? Features?  Platforms?  Relatonship to
        {DOS/360}?]

        (1997-09-22)

System 5

        {System V}

System 7.5

        <operating system> A version of {Mac OS}, the latest release as
        of Oct 1996 was 7.5.5.  Superseded by Mac OS 7.6 around March
        1997.

        {Mac OS home (http://www.macos.apple.com/)}.

        [Dates?  Features?]

        (1997-03-23)

system administration

        <job> Activities performed by a System Administrator (or
        "admin", "sysadmin", "site admin") such as monitoring security
        configuration, managing allocation of {user names} and
        {passwords}, monitoring disk space and other resource use,
        performing {backups}, and setting up new hardware and
        software.

        System administrators often also help users, though in a large
        organisation this may be a separate job.

        Compare {postmaster}, {sysop}, {system management}.

        [Other tasks?]

        (1999-05-02)

System Administrator

        {system administration}

system analysis

        {systems analysis}

system analyst

        {systems analysis}

system call

        <operating system, programming> The mechanism used by an
        {application program} to request service from the {operating
        system}.  System calls often use a special {machine code}
        instruction which causes the processor to change mode (e.g. to
        "supervisor mode" or "{protected mode}").  This allows the OS
        to perform restricted actions such as accessing hardware
        devices or the {memory management unit}.

        (1995-03-01)

system catalog

        <database> The {data dictionary} of a {DBMS}.  The system
        catalogue stores {meta-data} including the {schemas} of the
        {databases}.  It is a mini-database, and is usually stored
        using the DBMS itself in special {tables} called {system
        tables}.  It maybe referred to as being "on line", as it is
        active, and can be queried by users like any other table.

        (1999-04-27)

System F

        A {type system} by J-Y. Girard.  Also known as Lambda-2 or the
        {polymorphic lambda-calculus}.

        ["Proofs and Types", J-Y. Girard, Cambridge U Press 1989].

        (1994-11-23)

system management

        <job> Activities performed by a system manager, aiming to
        minimise the use of excessive, redundant resources to address
        the overlapping requirements of performance balancing, network
        management, reducing outages, system maintenance costs,
        diagnosis and repair, and migration to new hardware and
        software system versions.

        Compare: {system administration}.

        (1995-11-10)

System Management Bus

        <hardware, protocol> (SMBus, SMB) A simple two-wire {bus} used 
        for communication with low-bandwidth devices on a motherboard, 
        especially power related chips such as a laptop's rechargeable 
        battery subsystem (see {Smart Battery Data}).  Other devices 
        might include temperature sensors and lid switches.

        A device can provide manufacturer information, indicate its 
        model/part number, save its state for a {suspend} event, 
        report different types of errors, accept control parameters, 
        and return status.  The SMB is generally not user configurable 
        or accessible.

        The bus carries clock, data, and instructions and is based on 
        {Philip's} {I2C} serial bus protocol. Support for SMBus devices 
        is provided on {Windows 2000}. {Windows 98} does not support 
        such devices.

        The {PIIX4} {chipset} provides SMBus functionality. Vendors 
        using SMBus would be required to pay royalties. 

        {SMBus website
        (http://www.sbs-forum.org/smbus/)}

        {Software to interrogate a SMB motherboard
        (http://www.online.de/home/podien/SMB.HTM)}

        {SMB devices, Part 8 Kernel Mode Driver Design Guide, Win2000 DDK
        (http://www.microsoft.com/ddk/)}

        (1999-08-08)

System Management Mode

        <hardware> (SMM) A reduced power consumption state provided by
        some {Intel} {microprocessors}.  When a {CPU} enters SMM it
        saves its current state in a special area of {static RAM}
        called SMRAM (System Management {RAM}) and then runs a
        program, also stored in in SMRAM, the SMM handler.

        SMM is implemented in all {Intel} "SL" suffixed CPUs.  In June
        1993, Intel announced it was discontinuing its SL range and
        instead making all its current processors SL enhanced.

        See also {Auto Idle}.

        (1994-11-09)

System Management Server

        <operating system> (SMS) Software used by {Microsoft} {Windows
        NT system administrators} to manage {personal computers} on
        any size network.  SMS can distribute software to desktops
        from one central location, detect every machine on the
        network, track software and hardware configurations, send key
        information back to a central database, and perform other
        tasks.

        {Home
        (http://www.microsoft.com/ntserver/management/exec/overview/sms.asp)}.

        (1999-03-24)

system manager

        {system management}

system mangler

        <humour> A humorous synonym for "{system manager}", possibly
        from the fact that one major {IBM} {operating system} had a
        {root} account called SYSMANGR.  The term refers specifically
        to a systems programmer in charge of administration, software
        maintenance, and updates at some site.  Unlike {admin}, this
        term emphasises the technical end of the skills involved.

        (1995-11-10)

System Operator

        <job, jargon> (Always abbreviated to "sysop") /sis'op/ A term
        used in the {BBS} world for the operator of a bulletin-board
        system (who is usually also the owner).

        A common neophyte mistake on {FidoNet} is to address a message
        to "sysop" in an international {echo}, thus sending it to
        hundreds of sysops around the world.

        Contrast: {System Administrator}.

        (1999-10-20)

System Product Interpreter

        {Restructured EXtended eXecutor}

system programming language

        {Ousterhout's dichotomy}

System R

        <database> A {database} system built as a research project at
        {IBM San Jose Research} (now {IBM Almaden Research Center}) in
        the 1970s.  System R introduced the {SQL} language and also
        demonstrated that a {relational system database} could provide
        good {transaction processing} performance.

        {Home (http://www.mcjones.org/System_R/)}.

        (1998-09-29)

Systems Administrators Guild

        (SAGE) A special technical group of the {USENIX} Association.

        {(http://sage.xerox.com/sage/)}

        (1994-12-07)

systems analysis

        <job> Study of the design, specification, feasibility, cost,
        and implementation of a computer system for business.  What a
        systems analyst does.

        (1997-04-25)

Systems Analysis Definition

        <programming> (SAD) The analysis of the role of a proposed
        system and the identification of the requirements that it
        should meet.  SAD is the starting point for system design.
        The term is most commonly used in the context of commercial
        programming, where software developers are often classed as
        either {systems analysts} or programmers.  The systems
        analysts are responsible for identifying requirements
        (i.e. systems analysis) and producing a design.  The
        programmers are then responsible for implementing it.

        (1996-03-07)

systems analyst

        {systems analysis}

Systems Application Architecture

        <programming> (SAA) {IBM}'s family of standard interfaces
        which enable {software} to be written independently of
        {hardware} and {operating system}.

        (1997-04-25)

systems jock

        {jock}

Systems Network Architecture

        <networking> (SNA) {IBM}'s proprietary high level networking
        {protocol} {standard}.  Used by IBM and IBM compatible
        {mainframes}.

        (1994-11-23)

system software

        <operating system> Any {software} required to support the
        production or execution of {application programs} but which is
        not specific to any particular application.

        System software typically includes an {operating system} to
        control the execution of other programs; user environment
        software such as a {command line interpreter}, {window
        system}, {desktop}; development tools for building other
        programs such as {assemblers}, {compilers}, {linkers},
        {libraries}, {interpreters}, {cross-reference generators},
        {version control}, {make}; {debugging}, {profiling} and
        monitoring tools; utility programs, e.g. for sorting,
        printing, and editting.

        Different people would classify some or all of the above
        system software as part of the operating system while others
        might say the operating system was just the {kernel}.

        (1997-09-22)

System V

        1. The other major versions of the {Unix} {operating system}
        apart from {BSD}.  Developed by {AT&T}.  Later versions of
        Unix such as {SunOS} combined the best features of {System V}
        and {BSD} Unix.

        (1994-10-31)

        [Differences?]

        2. A supplier of {Unix} {open system}s for {Intel x86}
        processors.  They supply products from {SCO} and {Solaris} and
        offer general support for {Unix}, {TCP/IP}, and {Internet}.
        They serve and create third-party {WWW} pages and provide
        on-line support for commercial and non-commercial applications.

        {(http://www.systemv.com/)}

        See also {System V Interface Definition}.

        (1994-12-12)

System V Interface Definition

        (SVID) A standard allowing source code portability between
        different {platform}s running Unix System V.

        (1995-03-28)

systolic array

        <architecture, parallel> (By analogy with the regular pumping
        of blood by the heart) An arrangement of processors in an
        array (often rectangular) where data flows synchronously
        across the array between neighbours, usually with different
        data flowing in different directions.  H. T. Kung and Charles
        Leiserson publish the first paper describing systolic arrays
        in 1978 [reference?].

        Each processor at each step takes in data from one or more
        neighbours (e.g. North and West), processes it and, in the
        next step, outputs results in the opposite direction (South
        and East).

        An example of a systolic {algorithm} might be matrix
        multiplication.  One matrix is fed in a row at a time from the
        top of the array and is passed down the array, the other
        matrix is fed in a column at a time from the left hand side of
        the array and passes from left to right.  Dummy values are
        then passed in until each processor has seen one whole row and
        one whole column.  At this point, the result of the
        multiplication is stored in the array and can now be output a
        row or a column at a time, flowing down or accross the array.

        See also {Ruby}, {SISAL}.

        (1998-07-01)

SysVile

        {Missed'em-five}

sz

        <networking> The {country code} for Swaziland.

        (1999-01-27)

T

        1. True.  A {Lisp} compiler by Johnathan A. Rees in 1982 at
        {Yale University}.  T has {static scope} and is a
        near-superset of {Scheme}.  {Unix} source is available.  T is
        written in itself and compiles to efficient native code.  Used
        as the basis for the Yale {Haskell} system.  Maintained by
        David Kranz <kranz@masala.lcs.mit.edu>.  Current version is
        3.1.

        {(ftp://ftp.ai.mit.edu/pub/systems/t3.1)}

        A {multiprocessing} version of T is available
        {(ftp://masala.lcs.mit.edu/pub/mult)}.

        Runs on {Decstation}, {SPARC}, {Sun-3}, {Vax} under {Unix},
        {Encore}, {HP}, {Apollo}, {Macintosh} under {A/UX}.

        E-mail: <t3-bugs@cs.yale.edu> (bugs).
        E-mail: <t-project@cs.yale.edu>.

        (1991-11-26)

        ["The T Manual", Johnathan A. Rees <jar@zurich.ai.mit.edu> et
        al, Yale U, 1984].

        2. A {functional language}.

        ["T: A Simple Reduction Language Based on Combinatory Term
        Rewriting", Ida et al, Proc of Prog Future Generation
        Computers, 1988].

        3. (lower case) The {Lisp} {atom} used to represent "true",
        among other things.  "false" is represented using the same
        atom as an empty list, {nil}.  This {overloading} of the basic
        constants of the language helps to make Lisp {write-only
        code}.

        4. In transaction-processing circles, an abbreviation for
        "transaction".

        5. (Purdue) An alternative spelling of "{tee}".

\t

        {horizontal tabulation}

T1

        <communications> An {AT&T} term for a {digital carrier}
        facility used to transmit a {DS1} formatted digital signal at
        1.544 megabits per second.

        T1 transmission uses a bipolar {Return To Zero} {alternate
        mark inversion} line coding scheme to keep the DC carrier
        component from saturating the line.

        Although some consider T1 signaling obsolete, much equipment
        operates at the "T1 rate" and such signals are either
        combined for transmission via faster circuits, or
        demultiplexed into 64 kilobit per second circuits for
        distribution to individual subscribers.

        T1 signals can be transported on {unshielded twisted pair}
        telephone lines.  The transmitted signal consists of pips of a
        few hundred nanoseconds width, each inverted with respect to
        the one preceding.  At the sending end the signal is 1 volt,
        and as received, greater than 0.01 volts.  This requires
        repeaters about every 6000 feet.

        The information is contained in the timing of the signals, not
        the polarity.  When a long sequence of bits in the transmitted
        information would cause no pip to be sent, "{bit stuffing}" is
        used so the receiving apparatus will not lose track of the
        sending clock.

        A T1 circuit requires two twisted pair lines, one for each
        direction.  Some newer equipment uses the two lines at half
        the T1 rate and in {full duplex} mode; the sent and recieved
        signals are separated at each end by components collectively
        called a "hybrid".  Although this technique requires more
        sophisticated equipment and lowers the line length, an
        advantage is that half the sent and half the recieved
        information is mixed on any one line, making low-tech wiretaps
        less a threat.

        See also {Integrated Services Digital Network}.

        (1994-11-23)

T1 line

        {T1}

T1 rate

        {T1}

T3

        <communications> A {digital carrier} facility used to transmit
        a {DS3} formatted digital signal at 44.736 megabits per
        second.

        See also {Integrated Services Digital Network}.

        (1994-11-23)

T3 line

        {T3}

TA

        {Terminal Adaptor}

TAA

        {Track Average Amplitude}

TAB

        {HT}

table

        <database> A collection of {records} in a {relational database}.

        (1997-06-04)

table locking

        <database> A technique used in {database management systems},
        where an entire {table} is locked while data in it is being
        updated.

        Other techniques are {row-level locking} and {MVCC}.

        (1999-06-18)

TABLET

        A {query language}.

        ["Human Factor Comparison of a Procedural and a Non-procedural
        Query Language", C. Welty et al, ACM Trans Database Sys
        6(4):626-649 (Dec 1981)].

        (1994-11-23)

TABLOG

        <language> A programming language based on {first order
        predicate logic} with equality that combines {relational
        programming} and {functional programming}.  It has functional
        notation and {unification} as its binding mechanism.  TABLOG
        supports a more general subset of standard {first order logic}
        than {Prolog}.  It employs the Manna-Waldinger
        '{deductive-tableau}' proof system as an {interpreter} instead
        of {resolution}.

        (1997-06-19)

TABSOL

        <language> A language extension for {GECOM} written in the
        form of {truth tables} which was compiled into code for the
        tests and actions described.  TABSOL was developed by
        T.F. Kavanaugh, and was in use around 1964-5.

        (1996-09-15)

        [Proc FJCC 18:117-136, AFIPS (Fall 1960)].

        (1996-09-16)

Tabulating Machine Company

        <company> The company founded in 1896 by {Herman Hollerith} to
        exploit his invention of the {punched card}.  It became part
        of {IBM} in 1924.

        (1996-01-02)

TAC

        1. Translator Assembler-Compiler.  For {Philco 2000}.

        2. {Terminal Access Controller}.

TACL

        Tandem Advanced Command Language.  Tandem, about 1987.  The
        shell language used in Tandem computers.

TACPOL

        PL/I-like language used by US Army for command and control.

tag

        <World-Wide Web> A formatting command included an {HTML} (or
        other) document.

        (1996-03-17)

Tagged Image File Format

        <file format, graphics> (TIFF) A {file format} used for
        still-image {bitmaps}, stored in tagged fields.  {Application
        programs} can use the tags to accept or ignore fields,
        depending on their capabilities.

        While TIFF was designed to be extensible, it lacked a core of
        useful functionality, so that most useful functions (e.g.
        {lossless} 24-bit colour) requires nonstandard, often
        redundant, extensions.  The incompatibility of extensions has
        led some to expand "TIFF" as "Thousands of Incompatible File
        Formats".

        Compare {GIF}, {PNG}, {JPEG}.

        (1997-10-11)

tagged queueing

        <hardware> A method allowing a device or {controller} to
        process commands received from a {device driver} out of order.
        It requires that the device driver attaches a tag to each
        command which the controller or device can later use to
        identify the response to the command.

        Tagged queueing can speed up processing considerably if a
        controller serves devices of very different speeds, such as an
        {SCSI} controller serving a mix of {CD-ROMs} and high-speed
        {disks}.  In such cases if a request to fetch data from the
        CD-ROM is shortly followed by a request to read from the disk,
        the controller doesn't have to wait for the CD-ROM to fetch
        the data, it can instead instruct the disk to fetch the data
        and return the value to the device driver, while the CD-ROM is
        probably still {seeking}.

        (1997-07-04)

tail circuit

        <communications> A circuit which connects the {serial lines}
        of two {modems} together.

        [Why do that?]

        (1996-10-16)

tail recursion

        <programming> When the last thing a function (or procedure)
        does is to call itself.  Such a function is called tail
        recursive.  A function may make several recursive calls but a
        call is only tail-recursive if the caller returns immediately
        after it.  E.g.

                f n = if n < 2 then 1 else f (f (n-2) + 1)

        Here the both calls to fib are {recursive} but only the outer
        one is tail recursive.

        See {tail recursion optimisation}, and, if you aren't sick of
        them already, {recursion}, {tail recursion}.

        (1996-02-22)

tail recursion modulo cons

        <programming, compiler> A generalisation of {tail recursion}
        introduced by D.H.D. Warren.  It applies when the last thing a
        function does is to apply a constructor functions (e.g. cons)
        to an application of a non-primitive function.  This is
        transformed into a tail call to the function which is also
        passed a pointer to where its result should be written.  E.g.

                f []     = []
                f (x:xs) = 1 : f xs

        is transformed into (pseudo {C}/{Haskell}):

                f [] = []
                f l  = f' l allocate_cons

                f' []     p = { *p = nil;
                                return *p
                              }
                f' (x:xs) p = { cell = allocate_cons;
                                *p = cell;
                                cell.head = 1;
                                return f' xs &cell.tail
                              }

        where allocate_cons returns the address of a new cons cell, *p
        is the location pointed to by p and &c is the address of c.

        [D.H.D. Warren, DAI Research Report 141, University of
        Edinburgh 1980].

        (1995-03-06)

tail recursion optimisation

        (TRO) When the last thing a function or procedure does is to
        call itself, it is not necessary to retain the calling
        environment.  This is important when a procedure calls itself
        {recursive}ly many times for, without tail recursion
        optimisation, the environments of earlier invocations would
        fill up the memory only to be discarded when (if) the last
        call terminated.

        Tail recursion optimisation is a special case of {last call
        optimisation} but it allows the further optimisation that some
        arguments may be passed in situ, possibly in {register}s.  It
        allows recursive functions to be compiled into {iterative}
        loops.  See also {conversion to iteration}, {tail recursion
        modulo cons}.

tail-strict

        A tail-strict function evaluates every cons cell in its (list)
        argument.  It will therefore fail to terminate if its argument
        is an infinite list or if any tail of its argument fails to
        terminate.  The archetypal tail-strict function is length.
        See also Head-strict, Hyper-strict.

TAL

        Tandem Application Language.  A cross between {C} and
        {Pascal}.  Primary system programming language on {Tandem}
        computers.  Tandem has no assembler and until recently did not
        have C or Pascal.  Derived from SPL[3]?

TALE

        Typed Applicative Language Experiment.  M. van Leeuwen.  Lazy,
        purely applicative, polymorphic.  Based on typed second order
        lambda-calculus.  "Functional Programming and the Language
        TALE", H.P. Barendregt et al, in Current Trends in
        Concurrency, LNCS 224, Springer 1986, pp.122-207.

Taligent

        A company founded jointly by Apple and IBM in March 1992.  HP
        announced in January, 1994 that it would buy a 15% stake in
        Taligent.  They are working on an "object-oriented operating
        system", due to be finished sometime in 1995.  However,
        various independent pieces of Taligent will likely appear to
        be used with other operating systems, e.g. IBM's WorkplaceOS.
        Pink is an older name for Taligent, dating back to work that
        Apple did before the formation of Taligent.

talk

        <chat, tool, networking, messaging> A {Unix} program and
        {protocol} supporting conversation between two or more users
        who may be logged into the same computer or different
        computers on a network.  Variants include {ntalk}, {ytalk},
        and {ports} or {emulators} of these programs for other
        {platforms}.

        {Unix} has the {talk} program and {protocol} and its variants
        {xtalk} and {ytalk} for the {X Window System}; {VMS} has
        {phone}; {Windows for Workgroups} has {chat}.  {ITS} also has
        a talk system.  These split the screen into separate areas for
        each user.

        {Unix}'s {write} command can also be used, though it does not
        attempt to separate input and output on the screen.

        Users of such systems are said to be in {talk mode} which has
        many conventional abbreviations and idioms.  Most of these
        survived into {chat} jargon, but many fell out of common use
        with the migration of {user} prattle from talk-like systems to
        {chat} systems in the early 1990s.  These disused
        talk-specific forms include:

        "BYE?" - are you ready to close the conversation?  This is the
        standard way to end a talk-mode conversation; the other person
        types "BYE" to confirm, or else continues the conversation.

        "JAM"/"MIN" - just a minute

        "O" - "over" (I have stopped talking).  Also "/" as in x/y - x
        over y, or two newlines (the latter being the most common).

        "OO" - "over and out" - end of conversation.

        "\" - Greek {lambda}.

        "R U THERE?" - are you there?

        "SEC" - wait a second.

        "/\/\/" - laughter.  But on a {MUD}, this usually means
        "earthquake fault".

        See also {talk bomb}.

        (1998-01-25)

talk bomb

        {flash}

talker system

        {talk}

talk mode

        <chat> Using a {talk} system.  E.g., "{B1FF} had me in talk
        mode for hours last night.  I had to bring his box down just
        to get him to shut up."

        The (1980s?) term now is as dated as talk itself which has
        been largely replaced by {chat}.

        (1998-01-19)

TALL

        <language> TAC List Language.

        ["TALL - A List Processor for the Philco 2000", J. Feldman,
        CACM 5(9):484-485 (Sep 1962)].

        (1995-03-01)

tall card

        <hardware> An expansion card for the {IBM PC AT}.  These can
        be larger than {IBM PC} or {IBM PC XT} cards because the AT
        case is bigger.

        When IBM introduced the PS/2 model 30 (its last gasp at
        supporting the {ISA}) they made the case lower and many
        industry-standard tall cards wouldn't fit.  This was felt to
        be a reincarnation of the {connector conspiracy}, done with
        less style.

        See also {short card}.

        (1995-03-01)

Tandem Computers

        <company> A US computer manufacturer.

        Quarterly sales $544M, profits $49M (Aug 1994).

        (1994-09-26)

Tandy

        <company> A US company, the parent company of {Radio Shack},
        makers of the {TRS-80} and other early {personal computer}s.

        (1995-02-28)

Tanenbaum, Andrew

        {Andrew Tanenbaum}

tanked

        1. <jargon> Same as {down}, used primarily by {Unix} hackers.

        See also {hosed}.

        2. Popularised as a synonym for "drunk" by Steve Dallas in the
        late lamented "Bloom County" comic strip.

        (1995-02-28)

TANSTAAFL

        /tan'stah-fl/ (From Robert Heinlein's classic "The
        Moon is a Harsh Mistress") "There Ain't No Such Thing As A
        Free Lunch".

        Often invoked when someone is balking at the prospect of using
        an unpleasantly {heavyweight} technique, or at the poor
        quality of some piece of {free software}, or at the
        {signal-to-noise ratio} of unmoderated {Usenet} newsgroups.
        "What? Don't tell me I have to implement a {database} back end
        to get my address book program to work!"  "Well, TANSTAAFL you
        know."  This phrase owes some of its popularity to the high
        concentration of science-fiction fans and political
        libertarians in hackerdom.

        (1995-02-28)

TAO

        Lisp dialect with concurrency, object-orientation and logic.
        "Concurrent Programming in TAO - Practice and Experience",
        I. Takeuchi in Parallel Lisp: Languages and Systems, T. Ito et
        al eds, LNCS 441, Springer 1989, pp.271-299.

TAOS

        {Technology for Autonomous Operation Survivability}

TAP

        {Telocator Alphanumeric Protocol}

tape

        1. {magnetic tape}.

        2. {paper tape}.

        (1996-05-25)

tape archive

        {tar}

tape drive

        {magnetic tape drive}

tape head

        <hardware> The electromagnetic component in a {magnetic tape
        drive} which reads and writes magnetic tape as it passes over
        it.  Tape heads need to be cleaned periodically to remove the
        oxide particles which accumulate on them and can lead to
        errors.

        (1997-03-12)

Tape Operating System

        <operating system> (TOS) An {IBM} {operating system} for
        {System 360}, used in the early days around 1965 to support
        the {IBM 360} model 30 et al.  TOS was a predecessor to IBM's
        {Disk Operating System}.

        TOS died out really early as disks such as the 2311 and 2314
        became common with the {IBM 360} whereas thet had been a real
        luxury on the {IBM 7090}.

        [Relationship to {BOS}?]

        (1999-01-20)

TAPI

        {Telephony Application Programming Interface}

tar

        <file format> ("Tape ARchive", following {ar}) {Unix}'s
        general purpose {archive} utility and the file format it uses.
        Tar was originally intended for use with {magnetic tape} but,
        though it has several {command line options} related to tape,
        it is now used more often for packaging files together on
        other media, e.g. for distribution via the {Internet}.

        The resulting archive, a "tar file" (humourously, "tarball")
        is often compressed, using {gzip} or some other form of
        compression (see {tar and feather}).

        There is a {GNU} version of tar called {gnutar} with several
        improvements over the standard versions.

        {Filename extension}: .tar

        {MIME type}: unregistered, but commonly application/x-tar

        {Unix manual page}: tar(1).

        Compare {shar}, {zip}.

        (1998-05-02)

tar and feather

        <jargon> (A sick contrivance from the {Unix} {tar} command and
        the Ku Klux Klan torture method) To create a transportable
        archive from a group of files by first sticking them together
        with {tar} (the Tape ARchiver) and then {compress}ing the
        result.  The latter action is dubbed "feathering" (purely for
        contrived effect) by analogy to what you do with an aeroplane
        propeller to decrease wind resistance, or with an oar to
        reduce water resistance; smaller files, after all, slip
        through comm links more easily.

        (1997-05-26)

tarball

        {tar}

targa

        <graphics, file format> A graphics data format for {bitmap}
        {images}.  It uses 24 bits per {pixel} and is a common output
        format for {ray tracing} programs.

        (1995-01-05)

Targa Graphics Adaptor

        <graphics, file format> (TGA) The Truevision Targa Graphics
        Adaptor file format.

        The TGA format is a common {bitmap} file format for storage of
        24-bit images.  It supports {colourmaps}, {alpha channels},
        {compression} and comments.

        {Filename extension}: .tga.

        More information is available from
        {Truevision (http://www.truevision.com/)} and
        {The Graphics File Format Page
        (http://www.dcs.ed.ac.uk/~mxr/gfx/)}.

        [What does it have to do with graphics adaptors?]

        (1997-08-07)

target

        {SCSI target}

Target-Machine Description Language

        (TMDL) The machine-description language used in the
        Graham-Glanville {code generator}.

        ["Table-Driven Code Generation", S.L. Graham, IEEE Computer
        13(8):25-34 (Aug 1980)].

        (1995-02-21)

TARTAN

        A simple language proposed to meet the {Ironman} requirements.

        ["TARTAN - Language Design for the Ironman Requirements:
        Reference Manual", Mary Shaw et al, SIGPLAN Notices
        13(9):36-58 (Sep 1978)].

        (1995-01-05)

task scheduling

        <algorithm> The assignment of start and end times to a set of
        tasks, subject to certain {constraints}.  Constraints are
        typically either time constraints (the payload must be
        installed before the payload bay doors are closed) or resource
        constraints (this task requires a small crane and a crane
        operator).

        In the case where the tasks are programs to run concurrently
        on a computer, this is also known as {multitasking}.

        (1998-04-25)

TASM

        Turbo Assembler.  {MS-DOS} assembler from Borland.

TASS

        Template ASSembly language.  Intermediate language produced by
        the Manchester SISAL compiler.

taste

        1. (primarily MIT) The quality of a program that tends to be
        inversely proportional to the number of features, hacks, and
        {kluge}s it contains.  Taste refers to sound judgment on the
        part of the creator.  See also {elegant}, {flavour}.

        2. Alternative spelling of "{tayste}".

tautology

        <logic> A {proposition} which is always true.

        Compare: {paradox}.

        {The Linguistic Smarandache Tautologies,
        (http://www.gallup.unm.edu/~smarandache/tautolog.txt)}.

        (1999-07-28)

TAWK

        {Tiny AWK}

Taxis

        ["A Language Facility for Designing Database-Intensive
        Applications", J. Mylopoulos et al, ACM Trans Database Sys
        5(2):185-207 (June 1980)].

tayste

        /tayst/ (or "taste", "{crumb}", {quarter}) Two bits.  Compare
        {byte}, {dynner}, {playte}, {nibble}, {quad}.

taz

        {tgz}

TBF

        {Mean Time Between Failures}

TBIL

        {Tiny Basic Interpreter Language}

TBK

        {Tool Builder Kit}

Tbl

        1. A language by M.E. Lesk for formatting tables, implemented
        as a {preprocessor} to {nroff}.

        (1994-11-01)

        2. Table Building Language.  A simple language by Robert
        Freiburghouse of {MIT} which combines user-defined actions
        into an {abstract machine}.  It can be used to build
        table-driven predictive {parser}s and {code generator}s in the
        {MULTICS} {Fortran} compiler and several {PL/I} compilers,
        including {VAX}-11 PL/I.

        ["Engineering A Compiler: VAX-11 Code Generation and
        Optimisation", P. Anklam et al, Digital Press 1977].

        (1994-11-01)

tc

        <networking> The {country code} for the Turks and Caicos
        Islands.

        (1999-01-27)

T-carrier systems

        <communications> A restored polar signal, wideband data loop
        digital transmission facility for use with 303-type data
        stations, for serial signals synchronized to clock rates of
        19.2, 40.8, 50.0, 230.4 or 460.8 kilobits per second.  In its
        originally intended use, the 1.544 megabit per second {T1}
        line bit stream carried 24 pulse-code modulated, time-division
        multiplexed speech signals each encoded in 64 kilobit per
        second streams, leaving 8 kilobits per second of framing
        information which facilitates the synchronisation and
        demultiplexing at the receiver.

        Asynchronous signals can be transmitted via a standard which
        encodes each change of level into three bits; two which
        indicate the time (within the current synchronous frame) at
        which the transition occurred, and the third which indicates
        the direction of the transition.  Although wasteful of line
        bandwidth, such use is usually only over small distances.

        T1 lines are made free of direct current signal components by
        in effect capacitor coupling the signal at the transmitter and
        restoring that lost component with a "slicer" at the receiver,
        leading to the description "restored polar".

        Contrast {DS1}.

        [Telecommunications Transmission Engineering, Vol. 2,
        Facilities, AT&T, 1977].

        (1996-03-21)

TCB

        1. <jargon> {Trouble Came Back}.

        2. <security> ({Orange Book}) {Trusted Computing Base}.

        3. <operating system> {Task Control Block}.

        (1998-07-02)

TCGS

        {Twente Compiler Generator System}

TC/IX

        The LynxOS kernel ported to the MIPS R3000 RISC processor by
        CDC.

Tcl

        {Tool Command Language}

Tcl Consortium

        <body> A non-profit agency dedicated to promoting {Tcl}.

        {Home (http://www.tclconsortium.org/)}.

        (1998-11-27)

tcl-debug

        A debugger for {Tcl} by Don Libes <libes@cme.nist.gov> that
        can be easily embedded in other applications.  It is included
        with many other Tcl libraries.

        {(ftp://ftp.cme.nist.gov/pub/expect/tcl-debug.tar.Z)}

        (1994-10-31)

Tcl-DP

        Tcl-DP extends {Tcl}'s "send" by removing the restriction that
        you can only send to other clients of the same X11 server.
        Version 3.0 library by Larry Rowe.

        {(ftp://toe.cs.berkeley.edu/pub/multimedia/Tcl-DP)}

tclhttpd

        <tool> An {embeddable} {Tcl}-based {web server}.

        [Details?]

        (1998-11-27)

tclx

        {Tcl} extended with statements to provide high-level access
        {Unix} system primitives.  Version 7.2a by Mark Diekhans
        <markd@NeoSoft.com> and Karl ?.

        {(ftp://ftp.neosoft.com/pub/tcl/beta/tclX7.1a-B5.tar.Z)}

        E-mail: <tcl-project@NeoSoft.com>.

        (1993-11-19)

TCM

        {Trellis Code Modulation}

Tcode

        Intermediate language used by the Spineless Tagless G-machine
        (an abstract machine based on graph reduction) designed as a
        target for compilation of non-strict functional languages.
        "The Spineless tagless G- machine", S. Peyton Jones et al,
        Fourth Intl Conf Func Prog Langs and Comp Arch pp.184-201, ACM
        Sept 1989.

TCOL

        CMU.  Tree-based intermediate representation produced by the
        PQCC compiler generator.  "An Overview of the Production
        Quality Compiler- Compiler Projects", B.W. Leverett et al,
        IEEE Computer 13(8): 38-49 (Aug 1980).  (See LG).

TCOL.Ada

        CMU, 1980.  An intermediate representation for Ada, was merged
        with AIDA to form Diana.  "TCOL.Ada: Revised Report on an
        Intermediate Representation for the DOD Standard Programming
        Language", J.M. Newcomer et al, CMU-CS-79-128 (June 1979).

TCP

        {Transmission Control Protocol}

TCPIP

        Normally written "{TCP/IP}".

TCP/IP

        <protocol> {Transmission Control Protocol} over
        {Internet Protocol}.

        The {de facto} {standard} {Ethernet} {protocols} incorporated
        into {4.2BSD} {Unix}.  TCP/IP was developed by {DARPA} for
        {internetworking} and encompasses both {network layer} and
        {transport layer} protocols.  While {TCP} and {IP} specify two
        protocols at specific {protocol layers}, TCP/IP is often used
        to refer to the entire {DoD} {protocol} suite based upon
        these, including {telnet}, {FTP}, {UDP} and {RDP}.

        See also {ICMP}, {SMTP}, {SNMP}.

        (1995-03-17)

tcsh

        A {Unix} {shell} by Christos Zoulas <christos@ee.cornell.edu>,
        based on {csh}.  tcsh adds {WYSIWYG} command line editing,
        command name {completion}, input {history} and various other
        features.

        Version 6.04 runs under many versions of {Unix} and under
        {OpenVMS}.

        {(ftp://ftp.spc.edu/)}

        (1993-07-09)

Tcsim

        {Time Complex Simulator}

td

        <networking> The {country code} for Chad.

        (1999-01-27)

TDD

        {Telecommunications Device for the Deaf}

TDF

        Intermediate language, a close relative of ANDF.  A TDF
        program is an ASCII stream describing an abstract syntax tree.
        "TDF Specification", Defence Research Agency/Electronics
        Division, Great Malvern, England, +44 684 895314.  E-mail: Nic
        Peeling <peeling@hermes.mod.uk>

TDFL

        Dataflow language.  "TDFL: A Task-Level Dataflow Language", P.
        Suhler et al, J Parallel Dist Comp 9(2):103-115 (Jun 1990).

TDI

        {Transport Driver Interface}

TDM

        1. {Technical Data Management}

        2. {Time Division Multiplexing}

TDMA

        {time division multiple access}

TDR

        {time domain reflectometer}

Teamwork

        A {SASD} tool from {CADRE Technologies} which supports the
        {Shlaer/Mellor Object-Oriented method}.  It is the recommended
        replacement for the defunct {DECdesign}.

        (1994-09-05)

Technical/Office Protocol

        (TOP) An {applications layer} {network} {application} and
        {protocol stack} for {office automation} developed by {Boeing}
        following the {OSI model}.  This {protocol} is very similar to
        {MAP} except at the lowest levels, where it uses {Ethernet}
        ({IEEE} {802.3}) rather than {Token Bus} ({IEEE} {802.4}).

Technion

        <body> Israel Institute of Technology.

        {Home (http://www.technion.ac.il/)}

        {(ftp://ftp.technion.ac.il/)}.

        Address: Haifa, Israel.

        (1995-05-09)

technology

        <jargon> {Markeroid} jargon for "{software}", "{hardware}",
        "{protocol}" or something else too technical to name.

        The most flagrant abuse of this word has to be "{Windows NT}"
        (New Technology) - {Microsoft}'s attempt to make the
        incorporation of some ancient concepts into their OS sound
        like real progress.

        See also: {solution}.

        (1998-07-07)

Technology Enabled Relationship Manager

        {Customer Relationship Management}

Technology of Object-Oriented Languages and Systems

        <event> (TOOLS) One of the oldest {object-oriented}
        conferences, with 18 published proceedings volumes.  TOOLS is
        organised by {Interactive Software Engineering}.

        (1995-12-29)

TechRef

        /tek'ref/ [{MS-DOS}] The original "IBM PC Technical Reference
        Manual", including the {BIOS} listing and complete schematics
        for the PC.  The only PC documentation in the issue package
        that's considered serious by real hackers.

TECO

        /tee'koh/ obsolete [originally an acronym for "[paper] Tape
        Editor and COrrector"; later, "Text Editor and COrrector"] A
        text editor developed at MIT and modified by just about
        everybody.  With all the dialects included, TECO may have been
        the most prolific editor in use before {Emacs}, to which it
        was directly ancestral.  The first {Emacs} editor was written
        in TECO.

        It was noted for its powerful programming-language-like
        features and its unspeakably hairy syntax.  TECO programs are
        said to resemble {line noise}.  It is literally the case that
        every string of characters is a valid TECO program (though
        probably not a useful one); one common game used to be
        mentally working out what the TECO commands corresponding to
        human names did.

        As an example of TECO's obscurity, here is a TECO program that
        takes a list of names such as:

                Loser, J. Random
                Quux, The Great
                Dick, Moby

        sorts them alphabetically according to surname, and then puts
        the surname last, removing the comma, to produce the
        following:

                Moby Dick
                J. Random Loser
                The Great Quux

        The program is

                [1 J^P$L$$
                J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$

        (where ^B means "Control-B" (ASCII 0000010) and $ is actually
        an {alt} or escape (ASCII 0011011) character).

        In fact, this very program was used to produce the second,
        sorted list from the first list.  The first hack at it had a
        {bug}: GLS (the author) had accidentally omitted the "@" in
        front of "F^B", which as anyone can see is clearly the {Wrong
        Thing}.  It worked fine the second time.  There is no space to
        describe all the features of TECO, but it may be of interest
        that "^P" means "sort" and "J<.-Z; ... L>" is an idiomatic
        series of commands for "do once for every line".

        In mid-1991, TECO is pretty much one with the dust of history,
        having been replaced in the affections of hackerdom by
        {EMACS}.  Descendants of an early (and somewhat lobotomised)
        version adopted by DEC can still be found lurking on VMS and a
        couple of crufty {PDP-11} {operating system}s, however, and
        ports of the more advanced MIT versions remain the focus of
        some antiquarian interest.  See also {retrocomputing},
        {write-only language}.

        {(ftp://usc.edu/)} for {VAX}/{VMS}, {Unix}, {MS-DOS},
        {Macintosh}, {Amiga}.

tee

        <tool, operating system> A {Unix} command which copies its
        {standard input} to its {standard output} (like {cat}) but
        also to a file given as its argument.  tee is thus useful in
        {pipeline}s of {Unix} commands (see {plumbing}) where it
        allows you to create a duplicate copy of the data stream.
        E.g.

                egrep Unix Dictionary | tee /dev/tty | wc -l

        searches for lines containing the string "Unix" in the file
        "Dictionary", prints them to the terminal (/dev/tty) and
        counts them.

        {Unix manual page}: tee(1).

        (1996-01-22)

TEI

        1. <communications> {Terminal Endpoint Identifier}.

        2. <text, project> {Text Encoding Initiative}.

        (1997-03-11)

telco

        <communications, company> (from telephone company) A company
        providing phone services to end users.  The company may or may
        not provide other phone services such operating
        long-distance/international backbones but the name telco
        usually emphasises its operation as a local service provider.

        Compare: {PTT}.

        (1998-05-18)

TELCOMP

        <language> A variant of {JOSS}.

        [Sammet 1969, p.217].

        (1997-04-07)

Telecommunication Display Device

        {Telecommunications Device for the Deaf}

Telecommunications Device for the Deaf

        <communications> (TDD) A terminal device used widely by deaf
        people for text communication over telephone lines.

        The acronym TDD is sometimes expanded as "Telecommunication
        Display Device" but is generally considered to be derived from
        "Telecommunications Device for the Deaf", although there is
        some disagreement on this.  The deaf themselves do not usually
        use the term "TDD", but prefer simply "{TTY}" -- possibly the
        original term.  The ambiguity between this and the other
        meanings of "{TTY}" is generally not problematic.  The acronym
        "TTD" is also common [Teletype for the deaf?].

        The standard most used by TDDs is reportedly a survivor of
        {Baudot code} implemented {asynchronous}ly at 45.5 or 50
        {baud}, 1 {start bit}, 5 data bits, and 1.5 {stop bits}.  This
        is generally incompatible with standard {modems}.

        [Standards docs?  {i18n} issues?]

        A typical TDD is a device about the size of a small {laptop
        computer} (resembling, in fact, a circa 1983 Radio Shack
        {Model 100} computer) with a {QWERTY keyboard}, and small
        screen (often one line high, often made of an array of
        {LED}s).  There is often a small printer for making
        transcripts of terminal sessions.

        Because of the {Stone Age} vintage of this technology (the
        idiosyncrasy of which drives up the expense of individual
        units), it is thought that TDD standards should transition to
        use of standard modem line settings (e.g., ASCII 2400-8-N-1).
        An obstacle to this is the millions of Baudot-only terminals
        in use (an example of {lock-in} with a high {cruft} factor).

        Another scenario sees the use of TDDs being replaced by the
        use of {personal computers} and {talk} protocols, presumably
        over the {Internet}.

        (1998-06-15)

Telecommunications Industry Association

        <body, standard> (TIA) An association that sets {standards}
        for communications cabling.

        Cables that TIA set standards for include: {EIA}/TIA-568A
        and EIA/TIA-568B category three, four and five cable.

        [Details?  Address?]

        (1997-07-18)

telecommuting

        The practice of working at home and communicating with your
        fellow workers through the phone, typically with a computer
        and modem.  Telecommuting saves the employee getting to and
        from work and saves the employer from supplying support
        services such as heating and cleaning, but it can also deprive
        the worker of social contact and support.

        (1995-01-05)

teledildonics

        <application, virtual reality> /tel"*-dil-do"-niks/ Sex in a
        computer simulated {virtual reality}, especially
        computer-mediated sexual interaction between the VR presences
        of two humans.  This practice is not yet possible except in
        the rather limited form of erotic conversation on {MUD}s and
        the like.  The term, however, is widely recognised in the VR
        community as a {ha ha only serious} projection of things to
        come.  "When we can sustain a multi-sensory surround good
        enough for teledildonics, *then* we'll know we're getting
        somewhere."

        (1995-02-06)

telematics

        The combination of telecommunications and computing.  Data
        communications between systems and devices.

        (1995-02-07)

TelEnet

        The old name for {Sprintnet}.  TELENET used to provide a
        service called {PC Pursuit}.

        Not to be confused with {telnet} the program and {protocol}.

        (1994-10-17)

TELEPAC

        <networking> The Swiss {PTT} {X.25} network.

        (1995-11-09)

Telephone Application Program Interface

        <programming, communications> (TAPI) Officially it's
        {Telephony Application Programming Interface}.

        (1995-11-27)

telephony

        <communications> Communication, often two-way, of spoken
        information, by means of electrical signals carried by wires
        or radio waves.  The term was used to indicate transmission of
        the voice, as distinguished from telegraphy (done in {Morse
        code} and usually called "{continuous wave}" or CW
        transmission), radio teletypewriter (RTTY) transmission (also
        called FSK for "{Frequency Shift Keying}", the modulation
        scheme used by such machines), and later, facimile.

        (1995-03-14)

Telephony Application Programming Interface

        <programming, communications> (TAPI, or "Telephone Application
        Program Interface") A {Windows 95} {Application Program
        Interface} enabling hardware independent access to telephone
        based communication.  TAPI covers a rather wide area of
        services from initialising the equipment (e.g. a {modem}) and
        placing a call to {voice mail} or control of a remote
        computer.

        [Telephone or Telephony?]

        (1995-12-05)

Telerat

        <abuse, hardware> /tel'*-rat/ Unflattering hackerism for
        "{Teleray}", a line of extremely losing {terminals}.

        (1995-01-19)

Telescript

        A communications-oriented programming language using "active
        software agents", released by {General Magic} in 1994.  What
        {PostScript} did for cross-{platform}, device-independent
        documents, Telescript aims to do for cross-{platform},
        network-independent messaging.  Telescript protects
        programmers from many of the complexities of network
        {protocol}s.

        (1995-01-16)

Teletype

        <hardware, product> ({tty}) A trademark for a hard-copy
        {terminal} produced by {Teletype Corporation}.

        (1995-11-23)

Teletype Corporation

        <company> The company which made {Teletype} {terminals}.

        Address: Skokie, Illinois, USA.

        (1995-11-23)

TeleUSE

        An {interface builder} for {Motif}.

television

        <hardware> A dedicated {push media} device for receiving
        {streaming video} and {audio}, either by terrestrial radio
        broadcast, satellite or cable.

        (1997-11-23)

TELNET

        /tel'net/ 1. The {Internet} {standard} {protocol} for remote
        login.  Runs on top of {TCP/IP}.  Defined in {STD} 8, {RFC}
        854 and extended with options by many other RFCs.  {Unix}
        {BSD} networking software includes a program, telnet, which
        uses the protocol and acts as a {terminal emulator} for the
        remote login session.  Sometimes abbreviated to TN.  {TOPS-10}
        had a similar program called {IMPCOM}.

        2. The US nationwide network into which one dials to access
        {CompuServe}.  It was created by John Goltz, one of the
        founders and system {guru} of {CompuServe}.  He later worked
        for {Tymshare}, one of CompuServe's big competitors.

Telocator Alphanumeric Protocol

        <communications, protocol> (TAP, or "IXO", "PET") A {protocol}
        for submitting requests to a {pager} service.  IXO/TAP is an
        {ASCII}-based, {half-duplex} {protocol} that allows the
        submission of a numeric or alphanumeric message.

        {Examples, protocol description, clarifications
        (ftp://mirror.lcs.mit.edu/telecom-archives/technical)}.

        See also {RFC 1568}.

        (1996-04-07)

Telon

        By {Panasophic}.

        [What is it?]

        (1996-04-07)

TELOS

        1. The {LeLisp} Version 16 Object System.  Also used in
        {EuLisp}.  The {object-oriented} {core} of {EuLisp}.
        Incorporates ideas from {CLOS}, {ObjVLisp} and {OakLisp}.
        Total merging of {type}s with {class}es and message-passing
        with normal function {application}.

        2. A {Pascal}-based {AI} language.

        ["Design Rationale for TELOS, a Pascal-based AI Language",
        Travis et al, SIGPLAN Notices 12(8) (Aug 1977)].

TELSIM

        Busch, ca 1966.  Digital simulation.

        [Sammet 1969, p. 627].

template code

        {Pseudocode} generated by an automated {CASE} system and
        requiring further hand-coding before compilation.

TEMPLOG

        Extension of {Prolog} to handle a clausal subset of
        first-order {temporal logic} with discrete time.  Proposed by
        M. Abadi and Z. Manna of {Stanford University}.

        ["Temporal Logic in Programming", M. Abadi et al, INtl Symp
        Logic Prog pp.4-16 (1987)].

TEMPO

        A programming language with simple {syntax} and {semantics}
        designed for teaching semantic and pragmatic aspects of
        programming languages.

        ["TEMPO: A Unified Treatment of Binding Time and Parameter
        Passing Concepts in Programming Languages", N.D. Jones et al,
        LNCS 66, Springer 1978].

Tempo

        <operating system> The original code name for {Mac OS} version
        8.

        (1997-10-15)

temporal database

        <database> A {database} that can store and retrieve temporal
        data, that is, data which depends on time in some way.

        [More details?  Examples?]

        (1996-05-25)

temporal logic

        <logic> An extension of {predicate calculus} which includes
        notation for arguing about *when* statements are true.  Time
        is discrete and extends indefinitely into the future.  Three
        {prefix} operators, represented by a circle, square and diamond
        mean "is true at the next time instant", "is true from now on"
        and "is eventually true".  x U y means x is true until y is
        true.  x P y means x precedes y.

        There are two types of formula: "state formulae" about things
        true at one point in time, and "path formulae" about things
        true for a sequence of steps.  An example of a path formula is
        "x U y", and example of a state formula is "next x" or a
        simple atomic formula such at "waiting".

        "true until" in this context means that a state formula holds
        at every point in time up to a point when another formula
        holds.  "x U y" is the "strong until" and implies that there
        is a time when y is true.  "x W y" is the "weak until" in
        which it is not necessary that y holds eventually.

        There are two types of temporal logic used: branching time and
        linear time.  The basic propositional temporal logic cannot
        differentiate between the two, though.  Linear time considers
        only one possible future, in branching time you have several
        alternative futures.  In branching temporal logic you have the
        extra operators "A" (for "all futures") and "E" (for "some
        future").  For example, "A(work U go_home)" means "I will work
        until I go home" and "E(work U go_home)" means "I may work
        until I go home".

        (1997-01-21)

Tempura

        Language based on temporal logic.  "Executing Temporal Logic
        Programs", B. Moszkowski, Camb U Press 1986.

Ten15

        A universal intermediate language, predecessor to TDF.
        Polymorphic?  "Ten15: An Overview", P. Core et al, Royal
        Signals Radar Establishment TR 3977 (Sept 1986).

tendinitis

        {overuse strain injury}

ten-finger interface

        The interface between two networks that cannot be directly
        connected for security reasons; refers to the practice of
        placing two terminals side by side and having an operator read
        from one and type into the other.

tennis elbow

        {overuse strain injury}

tense

        Of programs, very clever and efficient.  A tense piece of code
        often got that way because it was highly {bum}med, but
        sometimes it was just based on a great idea.  A comment in a
        clever routine by Mike Kazar, once a grad-student hacker at
        CMU: "This routine is so tense it will bring tears to your
        eyes."  A tense programmer is one who produces tense code.

tensor product

        <mathematics> A function of two {vector spaces}, U and V,
        which returns the space of {linear maps} from V's {dual} to U.

        Tensor product has natural symmetry in interchange of U and V
        and it produces an {associative} "multiplication" on vector
        spaces.

        Wrinting * for tensor product, we can map UxV to U*V via:
        (u,v) maps to that linear map which takes any w in V's dual to
        u times w's action on v.  We call this linear map u*v.  One
        can then show that

                u * v + u * x = u * (v+x)
                u * v + t * v = (u+t) * v
        and
                hu * v = h(u * v) = u * hv

        ie, the mapping respects {linearity}: whence any {bilinear
        map} from UxV (to wherever) may be factorised via this
        mapping.  This gives us the degree of natural symmetry in
        swapping U and V.  By rolling it up to multilinear maps from
        products of several vector spaces, we can get to the natural
        associative "multiplication" on vector spaces.

        When all the vector spaces are the same, permutation of the
        factors doesn't change the space and so constitutes an
        automorphism.  These permutation-induced iso-auto-morphisms
        form a {group} which is a {model} of the group of
        permutations.

        (1996-09-27)

tenured graduate student

        <job> One who has been in graduate school for 10 years (the
        usual maximum is 5 or 6): a "ten-yeared" student (get it?).
        Actually, this term may be used of any grad student beginning
        in his seventh year.  Students don't really get tenure, of
        course, the way professors do, but a tenth-year graduate
        student has probably been around the university longer than
        any untenured professor.

        (1996-09-27)

tera-

        {prefix}

terabyte

        <unit> 2^40 = 1,099,511,627,776 {bytes} = 1024 {gigabytes} or
        roughly 10^12 bytes.

        (Note the spelling - one 'r').  See {prefix}.

        (1995-09-29)

teraflop

        <unit> 10^12 {flops}.

        Intel beat Hitachi to the record of 1.06 teraflops, on 04 Dec
        1996, unofficially in Beverton, Oregon, using 7264 {Pentium
        Pro} chips.

        (1997-07-21)

teraflop club

        <body> /te'r*-flop kluhb/ (From {tera-} and {flops}) A
        mythical association of people who consume outrageous amounts
        of computer time in order to produce a few simple pictures of
        glass balls with intricate ray-tracing techniques.  {Caltech}
        professor James Kajiya is said to have been the founder.

        (1997-07-21)

TERM

        1. <networking> A program by Michael O'Reilly
        <michael@iinet.com.au> for people running {Unix} who have
        {Internet} access via a {dial-up} connection, and who don't
        have access to {SLIP}, or {PPP}, or simply prefer a more
        lightweight {protocol}.  TERM does end-to-end
        error-correction, {compression} and {mulplexing} across serial
        links.  This means you can {upload} and {download} files as
        the same time you're reading your news, and can run {X}
        {client}s on the other side of your {modem} link, all without
        needing {SLIP} or {PPP}.  The current version is 1.15.

        {(ftp://tartarus.uwa.edu.au/pub/oreillym/term/term115.tar.gz)}

        2. <business> {Technology Enabled Relationship Management}.

        (1999-10-04)

TERMAC

        An interactive matrix language.

        ["Users Guide to TERMAC", J.S. Miller et al, MIT Dec 1968].

        (1994-11-04)

termcap

        <operating system> (terminal capabilities) A {Unix} database
        listing different types of terminal (or {terminal emulation})
        and the the character {strings} to send to make the terminal
        perform certain functions such as move the {cursor} up one
        line or clear the screen.

        Programs written using termcap can work on any terminal in the
        database which supports the necessary functions.  Typical
        programs are {text editors} or file viewers like {more}.  The
        termcap routines look for an {environment variable} "TERM" to
        determine which terminal the user is using.

        {terminfo} is a later version of termcap.

        (1998-10-30)

terminak

        /ter'mi-nak`/ [Caltech, ca. 1979] Any malfunctioning computer
        terminal.  A common failure mode of Lear-Siegler ADM 3a
        terminals caused the "L" key to produce the "K" code instead;
        complaints about this tended to look like "Terminak #3 has a
        bad keyboard.  Pkease fix."  See {AIDX}, {Nominal
        Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools},
        {Telerat}, {HP-SUX}.

        (1995-04-14)

terminal

        1. <hardware> An electronic or electromechanical device for
        entering data into a computer or a communications system and
        displaying data received.  Early terminals were called
        {teletype}s, later ones {VDU}s.  Typically a terminal
        communicates with the computer via a {serial line}.

        2. <electronics> The end of a {line} where signals are either
        transmitted or received, or a point along the length of a line
        where the signals are made available to apparatus.

        3. <electronics> Apparatus to send and/or receive signals on a
        {line}.

        (1995-10-02)

Terminal Access Controller

        <hardware, networking> (TAC) A device which connects
        {terminals} to the {Internet}, usually using dial-up {modem}
        connections and the {TACACS} {protocol}.

        (1997-11-27)

terminal adapter

        {Terminal Adaptor}

Terminal Adaptor

        <networking, hardware> (TA) Equipment used to adapt
        {Integrated Services Digital Network} (ISDN) {Basic Rate
        Interface} (BRI) channels to existing terminal equipment
        standards such as {RS-232} and {V.35}.  A Terminal Adaptor is
        typically packaged like a {modem}, either as a {stand-alone}
        unit or as an interface card that plugs into a computer or
        other communications equipment (such as a {router} or {PBX}).
        A Terminal Adaptor does not interoperate with a {modem}; it
        replaces it.

        [ISDN {FAQ}].

        (1994-10-03)

terminal brain death

        The extreme form of {terminal illness}.  What someone who has
        obviously been hacking continuously for far too long is said
        to be suffering from.

terminal emulation

        What a {terminal emulator} does.

terminal emulator

        A program that allows a computer to act like a (particular
        brand of) terminal, e.g. a {vt-100}.  The computer thus appears
        as a terminal to the {host} computer and accepts the same
        {escape sequence}s for functions such as cursor positioning
        and clearing the screen.

        {xterm} is a terminal emulator for the {X Window System}.

        (1995-02-16)

terminal illness

        {raster burn}

terminal junkie

        (UK) A {wannabee} or early {larval stage} hacker who spends
        most of his or her time wandering the directory tree and
        writing {noddy} programs just to get a fix of computer time.
        Variants include "terminal jockey", "console junkie", and
        {console jockey}.  The term "console jockey" seems to imply
        more expertise than the other three (possibly because of the
        exalted status of the {console} relative to an ordinary
        terminal).

        See also {twink}, {read-only user}.

        (1995-02-16)

terminal node

        {leaf}

Terminal Oriented Social Science

        <project> (TOSS) The Cambridge Project {Project MAC} was an
        ARPA-funded political science computing project.  They worked
        on topics like survey analysis and simulation, led by Ithiel
        de Sola Pool, J.C.R. Licklider and Douwe B. Yntema.  Yntema
        had done a system on the {MIT} Lincoln Labs {TX-2} called the
        {Lincoln Reckoner}, and in the summer of 1969 led a Cambridge
        Project team in the construction of an experiment called TOSS.
        TOSS was like {Logo}, with {matrix} operators.  A major
        feature was multiple levels of {undo}, back to the level of
        the {login} session.  This feature was cheap on the Lincoln
        Reckoner, but absurdly expensive on {Multics}.

        (1997-01-29)

terminal server

        A device which connects many {terminal}s ({serial line}s) to a
        {local area network} through one network connection.  A
        terminal server can also connect many network users to its
        asynchronous ports for {dial-out} capabilities and printer
        access.

        (1995-02-16)

Terminate and Stay Resident

        (TSR) A type of {DOS} utility which, once loaded, stays in
        memory and can be reactivated by pressing a certain
        combination of keys.

termination analysis

        A program analysis which attempts to determine whether
        evaluation of a given expression will definitely terminate.

        Evaluation of a constant is bound to terminate, as is
        evaluation of a non-{recursive} function applied to arguments
        which are either not evaluated or which can themselves be
        proved to terminate.  A recursive function can be shown to
        terminate if it can be shown that the arguments of the
        recursive calls are bound to reach some value at which the
        recursion will cease.

        Termination analysis can never guarantee to give the correct
        answer because this would be equivalent to solving the
        {halting problem} so the answer it gives is either "definitely
        terminates" or "don't know".

        (1994-10-20)

terminator

        <electronics> A resistor connected to a signal wire in a {bus}
        or {network} for the purpose of impedance matching to prevent
        reflections.

        For example, a 50 ohm resistor connected across the end of an
        {Ethernet} cable.  {SCSI} chains and some {LocalTalk} wiring
        schemes also require terminators.

        (1995-05-17)

term rewriting system

        (TRS) A collection of {rewrite rule}s used to transform terms
        (expressions, strings in some formal language) into equivalent
        terms.  See {reduction}.

        (1994-11-04)

Terms Of Service

        <networking> (TOS) The rules laid down by an on-line service
        provider such as AOL that members must obey or risk being
        "TOS-sed" (disconnected).

        (1999-04-02)

ternary

        <programming> A description of an {operator} taking three
        arguments.  The only common example is {C}'s ?: operator which
        is used in the form "CONDITION ? EXP1 : EXP2" and returns EXP1
        if CONDITION is true else EXP2.  {Haskell} has a similar "if
        CONDITION then EXP1 else EXP2" operator.

        See also {unary}, {binary}.

        (1998-07-29)

terpri

        /ter'pree/ TERminate PRInt line.  [{LISP 1.5} and later,
        {MacLISP}] To output a {newline}.  Still used in {Common
        LISP}.  On some early {operating system}s and hardware, no
        characters would be printed until a complete line was formed,
        so this operation terminated the line and emitted the output.

        (1996-06-24)

terrabyte

        <spelling> It's spelled "{terabyte}".

        (1997-01-23)

Terse

        Language for decryption of hardware logic.

        ["Hardware Logic Simulation by Compilation", C. Hansen, 25th
        ACM/IEEE Design Automation Conf, 1988].

test

        1. The process of exercising a product to identify differences
        between expected and actual behaviour.  Typically testing is
        bottom-up: unit test, integration test and finally system
        test.  Ideally testing should be done by real users bashing on
        a prototype long enough to get thoroughly acquainted with it,
        with careful monitoring and followup of the results.

        {Test coverage} attempts to assess how complete a test has
        been.

        2. The second stage in a {generate and test} search
        {algorithm}.

test coverage

        A measure of how thoroughly a test suite exercises a program.
        This will typically involve collecting information about which
        parts of a program are actually executed when running the test
        suite in order to identify branches of conditional statements
        which have not been taken etc.  The standard {Unix} tool for
        this is {tcov} which annotates {C} or {Fortran} source with
        the results of a test coverage analysis.  {GCT} is a {GNU}
        equivalent.

testing

        {test}

TET

        Test Environment Toolkit project coordinated by {X/Open}.

TeX

        <publication> /tekh/ An extremely powerful {macro}-based text
        formatter written by {Donald Knuth}, very popular in academia,
        especially in the computer-science community (it is good
        enough to have displaced {Unix} {troff}, the other favoured
        formatter, even at many {Unix} installations).

        TeX fans insist on the correct (guttural) pronunciation, and
        the correct spelling (all caps, squished together, with the E
        depressed below the baseline; the mixed-case "TeX" is
        considered an acceptable {kluge} on {ASCII}-only devices).
        Fans like to proliferate names from the word "TeX" - such as
        TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster
        (competent TeX programmer), TeXhax, and TeXnique.

        Knuth began TeX because he had become annoyed at the declining
        quality of the typesetting in volumes I--III of his monumental
        "Art of Computer Programming" (see {Knuth}, also {bible}).  In
        a manifestation of the typical hackish urge to solve the
        problem at hand once and for all, he began to design his own
        typesetting language.  He thought he would finish it on his
        sabbatical in 1978; he was wrong by only about 8 years.  The
        language was finally frozen around 1985, but volume IV of "The
        Art of Computer Programming" has yet to appear as of mid-1997.
        (However, the third edition of volumes I and II have come
        out).  The impact and influence of TeX's design has been such
        that nobody minds this very much.  Many grand hackish projects
        have started as a bit of {toolsmith}ing on the way to
        something else; Knuth's diversion was simply on a grander
        scale than most.

        TeX has also been a noteworthy example of free, shared, but
        high-quality software.  Knuth offers monetary awards to people
        who find and report a bug in it: for each bug the award is
        doubled.  (This has not made Knuth poor, however, as there
        have been very few bugs and in any case a cheque proving that
        the owner found a bug in TeX is rarely cashed).  Though
        well-written, TeX is so large (and so full of cutting edge
        technique) that it is said to have unearthed at least one bug
        in every {Pascal} system it has been compiled with.

        Several document processing systems are based on TeX, notably
        {LaTeX} Lamport TeX - incorporates document styles for books,
        letters, slides, etc., {jadeTeX} uses TeX as a backend for
        printing from {James' DSSSL Engine}, and {Texinfo}, the {GNU}
        document processing system.  Numerous extensions to TeX exist,
        among them {BibTeX} for bibliographies (distributed with
        LaTeX), {PDFTeX} modifies TeX to produce {PDF} and {Omega}
        extends TeX to use the {Unicode} character set.

        See also {Comprehensive TeX Archive Network}.

        {(ftp://labrea.stanford.edu/tex/)}

        E-mail: <tug@tug.org> (TeX User's group, Oregon, USA).

        (1997-11-20)

TeX-78

        <language, text> The original version of {TeX}.

        (1997-11-20)

TeX-82

        <language, text> The version of {TeX} described in The
        TeXbook, Donald Knuth, A-W 1984.

        (1997-11-20)

Texas Instruments

        <company> (TI) A US electronics company.

        A TI engineer, {Jack Kilby} invented the {integrated circuit}
        in 1958.  Three TI employees left the company in 1982 to start
        {Compaq}.

        The {COOL} and {OATH} {C++} {class} libraries were developed
        at TI, as were {PDL2} and the {ASC} computer, {PC-Scheme} and
        {Texas Instruments Pascal}.

        {(ftp://ti.com/)}

        (1994-09-26)

Texinfo

        A {GNU} documentation system that uses a single source file to
        produce both on-line information and printed output.  You can
        read the on-line information, known as an "{Info} file", with
        an Info documentation-reading program.  By convention, Texinfo
        source file names end with a ".texi" or ".texinfo" extension.

        You can write and format Texinfo files into Info files within
        {GNU Emacs}, and read them using the Emacs Info reader.  If
        you do not have Emacs, you can format Texinfo files into Info
        files using "{makeinfo}" and read them using "info".  {TeX} is
        used to typeset Texinfo files for printing.

        Texinfo is available from your nearest {GNU archive site}.
        Current version: 3.1 (1993-03-23).

        (1994-10-05)

text

        1. Executable code, especially a "pure code" portion shared
        between multiple instances of a program running in a
        {multitasking} {operating system}.

        Compare {English}.

        2. Textual material in the mainstream sense; data in ordinary
        {ASCII} or {EBCDIC} representation (see {flat ASCII}).  "Those
        are text files; you can review them using the editor."

        These two contradictory senses confuse hackers too.

        (1995-03-16)

text-based

        <jargon> Working under a non-window-based {operating system}
        (e.g. {MS-DOS}) as opposed to a {graphical user interface}
        (e.g. {Microsoft Windows}).

        An MS-DOS text-based program uses a screen with a fixed array
        of 80x25 or 80x40 characters.  Examples are {WordPerfect}
        before version 5.1 and {Microsoft Word}.

        (1995-03-16)

text editor

        <tool, text> A utility program for creating and modifying
        {text files}.  This differs from a {word processor} in that
        the word processors often embed special control codes or
        {escape sequences} in the file to control formatting.

        (1996-11-15)

Text Encoding Initiative

        <text, project, standard> (TEI) A project working to establish
        a standard for interchanging {electronic text} for scholarly
        research.  The TEI has adopted {SGML} and implemented the TEI
        standard as an SGML {Document Type Definition}.

        {Home (http://etext.virginia.edu/TEI.html)}.

        {TEI Encoding Guidelines (http://www.uic.edu/orgs/tei/)}.

        See also {Corpus Processing}, {Computational Linguistics},
        {Natural Language Processing}

        (1997-03-11)

text file

        <file format> A {file} containing no "invisible" {control
        characters}, only {printable} letters, numbers and symbols,
        usually from the {ASCII} {character set}.

        A text file can be produced with a {text editor} and can
        usually be imported into any {word processor} though it will
        probably appear unformatted.

        Compare {binary file}, {flat file}, {rich text file}.

        (1996-11-15)

Text Reckoning And Compiling

        <language> (TRAC) An interactive macro generator language for
        string manipulation by Calvin N. Mooers and Peter Deutsch of
        {Sun Microsystems}.  TAC derived ideas from {Macro SAP}.
        There are versions for {PDP-1}, {PDP-8}, {PDP-10} and
        {PDP-11}.

        See also {MINT}, {SAM76}.

        E-mail: Preston Briggs <preston@rice.edu>.

        ["TRAC: A Procedure- Describing Language for the Reactive
        Typewriter", Calvin N. Mooers, CACM 9(3):215-219 (Mar 1966).
        Rockford Research Inst, 1972].

        [Sammet 1969, pp.448-454].

        ["Macro Processors", A.J. Cole, Cambridge U Press].

        (1994-12-21)

text segment

        {code segment}

Text To Speech

        <application> (TTS) Automatic conversion of text streams to
        voice.

        [Details?]

        (1997-05-11)

texture

        <graphics> A measure of the variation of the intensity of a
        surface, quantifying properties such as smoothness, coarseness
        and regularity.  It's often used as a {region descriptor} in
        {image analysis} and {computer vision}.

        The three principal approaches used to describe texture are
        statistical, structural and spectral.  Statistical techniques
        characterise texture by the statistical properties of the grey
        levels of the points comprising a surface.  Typically, these
        properties are computed from the grey level {histogram} or
        grey level {cooccurrence matrix} of the surface.

        Structural techniques characterise texture as being composed
        of simple primitives called "texels" (texture elements), that
        are regularly arranged on a surface according to some rules.
        These rules are formally defined by {grammar}s of various
        types.

        Spectral techiques are based on properties of the Fourier
        spectrum and describe global periodicity of the grey levels of
        a surface by identifying high energy peaks in the spectrum.

        (1995-05-11)

tf

        <networking> The {country code} for French southern
        territories.

        (1999-01-27)

TFDL

        <language> ["TFDL : A Task-level Dataflow Language",
        P.A. Suhler et al, J Parallel and Distrib Comput 9:103-115
        (1990)].

        (1995-05-11)

TFTP

        {Trivial File Transfer Protocol}

tg

        <networking> The {country code} for Togo.

        (1999-01-27)

TGA

        {Targa Graphics Adaptor}

T-gen

        A general-purpose {object-oriented} tool for the automatic
        generation of string-to-{object} translators.  It was written
        in {Smalltalk} by Justin Graver <graver@comm.mot.com> and runs
        in the Smalltalk programming environment.  T-gen supports the
        generation of both {top-down parser}s ({LL parser}s) and
        {bottom-up parser}s ({LR parser}s), which will automatically
        generate {derivation tree}s, {abstract syntax tree}s or
        arbitrary {Smalltalk} {object}s.  The simple specification
        {syntax} and {graphical user interface} are intended to
        enhance the learning, comprehension and usefulness of T-gen.

        Current version: 2.1.  Runs on {Smalltalk-80}, {ParcPlace
        Objectworks}/{Smalltalk 4.0} or 4.1.

        {(ftp://st.cs.uiuc.edu/pub/st80_r41/T-gen2.1/)}

        (1992-10-18)

TGS-II

        Translator Generator System.  Contained {TRANDIR}.

        [Sammet 1969, p. 640].

TGS Systems

        <company> Suppliers of {Prograph}.

        Telephone: +1 (902) 429 5642.

        (1995-03-31)

tgz

        <filename extension, compression> (Or less often "taz", Tar
        GNU zip) A {filename extension} for a file or directory which
        has been archived with {tar} and then compressed with {gzip}.
        The full form ".tar.gz" is also common on proper {file
        systems} not limited to {8.3} file names.

        (1996-11-03)

th

        <networking> The {country code} for Thailand.

        (1999-01-27)

thanks in advance

        <jargon> (Usually "TIA") A conventional {Usenet}
        net.politeness ending a posted request for information or
        assistance.  Sometimes written "advTHANKSance" or
        "aTdHvAaNnKcSe".

        (1999-02-09)

That's not a bug, that's a feature!

        The {canonical} first parry in a debate about a purported
        {bug}.  The complainant, if unconvinced, is likely to retort
        that the bug is then at best a {misfeature}.

        See also {feature}.

        (1995-02-02)

T.H.E

        <operating system> The {operating system} in which
        {semaphores} were first used.

        [Details?]

        (1999-10-12)

The Cuckoo's Egg

        A great book (and subsequent BBC TV series) telling the true
        story of Clifford Stoll, an astronomy professor at {UCB}'s
        {Lawrence Berkeley Lab}.  A 75-cent accounting error alerted
        him to the presence of an unauthorised user (a {cracker}) on
        his system.  The cracker, code named "Hunter", was breaking
        into US computer systems and stealing sensitive military and
        security information.  Hunter was part of a spy ring paid in
        cash and cocaine, and reporting to the KGB.

        ["The Cuckoo's Egg", Clifford Stoll, London: Bodley Head,
        1990, ISBN 0-370-31433-6, ISBN 0-671-72688-9].

        [FTP?]

        (1994-11-15)

The Force

        A {data parallel} language by Harry Jordan
        <harry@boulder.colorado.edu> which extends {Fortran} for
        {shared memory} {multiprocessor}s.  It features parallel
        "case" statements and {critical section}s.

        ["The Force", H. Jordan, in "The Characteristics of Parallel
        Algorithms", L. Jamieson et al eds, MIT Press 1987,
        pp. 395-436].

        (1994-12-14)

The Internet Account

        An {Internet} provider in Sydney, Australia who provides
        {SLIP}, {PPP} and {CLI} accounts for the same rates.
        <riscman@geko.com.au> handles {Acorn} software.

        {Home (http://www.geko.com.au/)}

        {(ftp://ftp.geko.com.au/pub/)}

        E-mail: <accounts@geko.com.au>.

        Telephone: +61 (2) 968 4333.  Fax: +61 (2) 968 4334.

        Address: PO BOX 473, Crows Nest, NSE 2065, Australia.

        (1995-02-02)

The MathWorks, Inc.

        <company> The company marketing {MATLAB}.

        {(http://www.mathworks.com/)}

        E-mail: <info@mathworks.com>.

        Address: 24 Prime Park Way, Natick, Massachusetts 01760.
        Telephone: +1 (508) 647-7000.  Fax: +1 (508) 647-7101.

        (1997-07-01)

The Metadata Company

        <company> A company founded by Jack Myers, originally known as
        Metadata Information Partners.

        {Home (http://www.metadata.com/)}.

        E-mail: <metadata@metadata.com>.

        Address: 444 West Ocean Blvd, Suite 1600, Long Beach CA 90802,
        USA.

        (1998-11-21)

The Microsoft Network

        <networking> (MSN) {Microsoft}'s {ISP} and online content
        service, launched in October 1996.  Not to be confused with
        {Microsoft Networking}.

        MSN was originally based on custom software and protocols,
        however Microsoft saw the error of their ways and adopted
        Internet standards.  MSN now provides standard {WWW} and
        {email} facilities, albeit with Microsoft's {Internet
        Explorer} {web-browser} and the {Outlook Express} email
        software.

        The service also provides "Community Services" including
        {newsgroups}, {forums}, and {chat}.

        {Home (http://msn.com/)}.

        (1998-08-11)

The Mythical Man-Month

        <publication> Fred Brooks's excellent 1975 book on {software
        engineering}.

        See also {Brooks's Law}.

        ["The Mythical Man-Month: Essays on Software Engineering",
        Fred Brooks, Addison-Wesley, 1975, ISBN 0-201-00650-2].

        (1996-06-20)

The Network

        {network, the}

THEO

        A {frame language}.

        ["Theo: A Framework for Self-Improving Systems", Mitchell et
        al, in Architectures for Intelligence, K. VanLehn ed, Erlbaum,
        1989].

        (1994-12-14)

theology

        1. Ironically or humorously used to refer to {religious
        issues}.

        2. Technical fine points of an abstruse nature, especially
        those where the resolution is of theoretical interest but is
        relatively {marginal} with respect to actual use of a design
        or system.  Used especially around software issues with a
        heavy AI or language-design component, such as the smart-data
        vs.  smart-programs dispute in AI.

theory

        The consensus, idea, plan, story, or set of rules that is
        currently being used to inform a behaviour.  This usage is a
        generalisation and (deliberate) abuse of the technical
        meaning.  "What's the theory on fixing this TECO loss?"
        "What's the theory on dinner tonight?"  ("Chinatown, I
        guess.")  "What's the current theory on letting lusers on
        during the day?"  "The theory behind this change is to fix the
        following well-known screw...."

        (1994-12-14)

theory change

        <artificial intelligence> The study of methods used to
        incorporate new information into a {knowledge base} when the
        new information may conflict with existing information.

        {Belief revision} is one area of theory change.

        [Others?]

        (1995-03-20)

Theseus

        A language based on {Euclid}, never implemented.

        ["Theseus - A Programming Language for Relational Databases",
        J.E. Shopiro, ACM Trans Database Sys 4(4):493-517 (Mar 1979)].

        (1994-12-14)

The story of Mel, a Real Programmer

        <programming, person> An article devoted to the macho side of
        programming made the bald and unvarnished statement, "Real
        Programmers write in Fortran".  Maybe they do now, in this
        decadent era of Lite beer, hand calculators and
        "user-friendly" software but back in the Good Old Days, when
        the term "software" sounded funny and Real Computers were made
        out of {drums} and {vacuum tubes}, Real Programmers wrote in
        {machine code} - not {Fortran}, not {RATFOR}, not even
        {assembly language} - {Machine Code}.  Raw, unadorned,
        inscrutable {hexadecimal} numbers, directly.

        Lest a whole new generation of programmers grow up in
        ignorance of this glorious past, I feel duty-bound to
        describe, as best I can through the generation gap, how a Real
        Programmer wrote code.  I'll call him Mel, because that was
        his name.

        I first met Mel when I went to work for {Royal McBee Computer
        Corporation}, a now-defunct subsidiary of the typewriter company.
        The firm manufactured the {LGP-30}, a small, cheap (by the
        standards of the day) {drum}-memory computer, and had just
        started to manufacture the RPC-4000, a much-improved, bigger,
        better, faster -- drum-memory computer.  Cores cost too much,
        and weren't here to stay, anyway.  (That's why you haven't
        heard of the company, or the computer.)

        I had been hired to write a {Fortran} compiler for this new
        marvel and Mel was my guide to its wonders.  Mel didn't
        approve of compilers.

        "If a program can't rewrite its own code," he asked, "what
        good is it?"

        Mel had written, in {hexadecimal}, the most popular computer
        program the company owned.  It ran on the {LGP-30} and played
        blackjack with potential customers at computer shows.  Its
        effect was always dramatic.  The LGP-30 booth was packed at
        every show, and the IBM salesmen stood around talking to each
        other.  Whether or not this actually sold computers was a
        question we never discussed.

        Mel's job was to re-write the blackjack program for the
        {RPC-4000}.  (Port?  What does that mean?)  The new computer
        had a one-plus-one addressing scheme, in which each machine
        instruction, in addition to the operation code and the address
        of the needed operand, had a second address that indicated
        where, on the revolving drum, the next instruction was
        located.  In modern parlance, every single instruction was
        followed by a {GO TO}!  Put *that* in {Pascal}'s pipe and
        smoke it.

        Mel loved the RPC-4000 because he could optimize his code:
        that is, locate instructions on the drum so that just as one
        finished its job, the next would be just arriving at the "read
        head" and available for immediate execution.  There was a
        program to do that job, an "optimizing assembler", but Mel
        refused to use it.

        "You never know where its going to put things", he explained,
        "so you'd have to use separate constants".

        It was a long time before I understood that remark.  Since Mel
        knew the numerical value of every operation code, and assigned
        his own drum addresses, every instruction he wrote could also
        be considered a numerical constant.  He could pick up an
        earlier "add" instruction, say, and multiply by it, if it had
        the right numeric value.  His code was not easy for someone
        else to modify.

        I compared Mel's hand-optimised programs with the same code
        massaged by the optimizing assembler program, and Mel's always
        ran faster.  That was because the "top-down" method of program
        design hadn't been invented yet, and Mel wouldn't have used it
        anyway.  He wrote the innermost parts of his program loops
        first, so they would get first choice of the optimum address
        locations on the drum.  The optimizing assembler wasn't smart
        enough to do it that way.

        Mel never wrote time-delay loops, either, even when the balky
        Flexowriter required a delay between output characters to work
        right.  He just located instructions on the drum so each
        successive one was just *past* the read head when it was
        needed; the drum had to execute another complete revolution to
        find the next instruction.  He coined an unforgettable term
        for this procedure.  Although "optimum" is an absolute term,
        like "unique", it became common verbal practice to make it
        relative: "not quite optimum" or "less optimum" or "not very
        optimum".  Mel called the maximum time-delay locations the
        "most pessimum".

        After he finished the blackjack program and got it to run,
        ("Even the initialiser is optimised", he said proudly) he got
        a Change Request from the sales department.  The program used
        an elegant (optimised) random number generator to shuffle the
        "cards" and deal from the "deck", and some of the salesmen
        felt it was too fair, since sometimes the customers lost.
        They wanted Mel to modify the program so, at the setting of a
        sense switch on the console, they could change the odds and
        let the customer win.

        Mel balked.  He felt this was patently dishonest, which it
        was, and that it impinged on his personal integrity as a
        programmer, which it did, so he refused to do it.  The Head
        Salesman talked to Mel, as did the Big Boss and, at the boss's
        urging, a few Fellow Programmers.  Mel finally gave in and
        wrote the code, but he got the test backwards, and, when the
        sense switch was turned on, the program would cheat, winning
        every time.  Mel was delighted with this, claiming his
        subconscious was uncontrollably ethical, and adamantly refused
        to fix it.

        After Mel had left the company for greener pa$ture$, the Big
        Boss asked me to look at the code and see if I could find the
        test and reverse it.  Somewhat reluctantly, I agreed to look.
        Tracking Mel's code was a real adventure.

        I have often felt that programming is an art form, whose real
        value can only be appreciated by another versed in the same
        arcane art; there are lovely gems and brilliant coups hidden
        from human view and admiration, sometimes forever, by the very
        nature of the process.  You can learn a lot about an
        individual just by reading through his code, even in
        hexadecimal.  Mel was, I think, an unsung genius.

        Perhaps my greatest shock came when I found an innocent loop
        that had no test in it.  No test. *None*.  Common sense said
        it had to be a closed loop, where the program would circle,
        forever, endlessly.  Program control passed right through it,
        however, and safely out the other side.  It took me two weeks
        to figure it out.

        The RPC-4000 computer had a really modern facility called an
        index register.  It allowed the programmer to write a program
        loop that used an indexed instruction inside; each time
        through, the number in the index register was added to the
        address of that instruction, so it would refer to the next
        datum in a series.  He had only to increment the index
        register each time through.  Mel never used it.

        Instead, he would pull the instruction into a machine
        register, add one to its address, and store it back.  He would
        then execute the modified instruction right from the register.
        The loop was written so this additional execution time was
        taken into account -- just as this instruction finished, the
        next one was right under the drum's read head, ready to go.
        But the loop had no test in it.

        The vital clue came when I noticed the index register bit, the
        bit that lay between the address and the operation code in the
        instruction word, was turned on-- yet Mel never used the index
        register, leaving it zero all the time.  When the light went
        on it nearly blinded me.

        He had located the data he was working on near the top of
        memory -- the largest locations the instructions could address
        -- so, after the last datum was handled, incrementing the
        instruction address would make it overflow.  The carry would
        add one to the operation code, changing it to the next one in
        the instruction set: a jump instruction.  Sure enough, the
        next program instruction was in address location zero, and the
        program went happily on its way.

        I haven't kept in touch with Mel, so I don't know if he ever
        gave in to the flood of change that has washed over
        programming techniques since those long-gone days.  I like to
        think he didn't.  In any event, I was impressed enough that I
        quit looking for the offending test, telling the Big Boss I
        couldn't find it.  He didn't seem surprised.

        When I left the company, the blackjack program would still
        cheat if you turned on the right sense switch, and I think
        that's how it should be.  I didn't feel comfortable hacking up
        the code of a Real Programmer."

        [Posted to USENET by its author, Ed Nather <utastro!nather>,
        on 1983-05-21].

        [When did it happen?  Did Mel use hexadecimal or octal?]

        (1997-08-29)

The World Of Cryton

        (TWOC) A {BBS} for the {Acorn} {Archimedes}.

        Telephone: +44 (1749) 670 030 (24hrs, most speeds).

        (1994-11-08)

the X that can be Y is not the true X

        Yet another instance of hackerdom's peculiar attraction to
        mystical references - a common humorous way of making
        exclusive statements about a class of things.  The template is
        from the "Tao te Ching": "The Tao which can be spoken of is
        not the true Tao."  The implication is often that the X is a
        mystery accessible only to the enlightened.  See the
        {trampoline} entry for an example, and compare {has the X
        nature}.

thicknet

        {10base5}

thin client

        <networking> A simple {client} program or hardware device
        which relies on most of the function of the system being in
        the {server}.

        {Gopher} clients, for example, are very thin; they are
        {stateless} and are not required to know how to interpret and
        display objects much more complex than menus and plain text.
        Gopher servers, on the other hand, can search {databases} and
        provide {gateways} to other services.

        By the mid-1990s, the model of decentralised computing where
        each user has his own full-featured and independent
        {microcomputer}, seemed to have displaced a centralised model
        in which multiple users use thin clients (e.g. {dumb
        terminals}) to work on a shared {minicomputer} or {mainframe}
        server.  Networked {personal computers} typically operate as
        "fat clients", often providing everything except some file
        storage and printing locally.

        By 1996, reintroduction of thin clients is being proposed,
        especially for {LAN}-type environments (see the {cycle of
        reincarnation}).  The main expected benefit of this is ease of
        maintenance: with fat clients, especially those suffering from
        the poor networking support of {Microsoft} {operating
        systems}, installing a new application for everyone is likely
        to mean having to physically go to every user's workstation to
        install the application, or having to modify client-side
        configuration options; whereas with thin clients the
        maintenance tasks are centralised on the server and so need
        only be done once.

        Also, by virtue of their simplicity, thin clients generally
        have fewer hardware demands, and are less open to being
        screwed up by ambitious {lusers}.

        Never one to miss a bandwagon, Microsoft bought up {Insignia
        Solutions, Inc.}'s "{NTRIGUE}" Windows remote-access product
        and combined it with {Windows NT} version 4 to allow thin
        clients (either hardware or software) to communicate with
        applications running under on a server machine under {Windows
        Terminal Server} in the same way as {X} had done for {Unix}
        decades before.

        (1999-02-01)

ThingLab

        A {simulation} system written in {Smalltalk-80}.  It solves
        {constraint}s using {value inference}.

        Version: ThingLab II.

        ["The Programming Language Aspects of ThingLab, A
        Constraint-Oriented Simulation Laboratory", A. Borning, ACM
        TOPLAS 3(4):353-387 (Oct 1981)].

Think C

        An extension of {ANSI C} for the {Macintosh} by {Symantec
        Corporation}.  It supports {object-oriented} programming
        techniques similar to {C++}.

Thinking Machines Corporation

        The company which introduced the {Connection Machine} parallel
        computer ca 1984.  Four of the world's ten most powerful
        supercomputers are Connection Machines.  Thinking Machines is
        the leader in scalable computing, with software and
        applications running on parallel systems ranging from 16 to
        1024 processors.  In developing the Connection Machine system,
        Thinking Machines also did pioneering work in parallel
        software.

        By 1996, Thinking Machines will become a software-based
        solutions provider.  The 1993 technical applications market
        for massively parallel systems was approximately $310 million,
        of which Thinking Machines Corporation held a 29 percent
        share.  The parallel computing market is expected to grow to
        $2 billion by 1996, in which, according to analysts, software
        will play a significant role.

        Thinking Machines Corporation has 200 employees and offices
        worldwide.

        Address: 245 First Street, Cambridge, MA 02142-1264, USA.
        Telephone: +1 (617) 234 1000.  Fax: +1 (617) 234 4444.

        {(http://www.think.com/)}

        (1994-12-01)

thinko

        <jargon> /thing'koh/ (Or "braino", by analogy with "{typo}") A
        momentary, correctable {glitch} in mental processing,
        especially one involving recall of information learned by
        rote; a bubble in the stream of consciousness.

        See also {brain fart}.  Compare {mouso}.

        (1996-04-20)

thinnet

        {cheapernet}

third generation computer

        <architecture> A computer built with small-scale integration
        {integrated circuits}, designed after the mid-1960s.

        Third generation computers use {semiconductor} memories in
        addition to, and later instead of, {ferrite core memory}.  The
        two main types of semiconductor memory are {Read Only Memory}
        (ROM) and read-and-write memories called {Random Access
        Memory} (RAM).

        A technique called {microprogramming} became widespread and
        simplified the design of the {CPU}s and increased their
        flexibility.  This also made possible the development of
        {operating systems} as {software} rather than as hard-wiring.

        A variety of techniques for improving processing efficiency
        were invented, such as {pipelining}, (parallel operation of
        {functional units} processing a single instruction), and
        {multiprocessing} (concurrent execution of multiple programs).

        As the execution of a program requires that program to be in
        memory, the concurrent running of several programs requires
        that all programs be in memory simultaneously.  Thus the
        development of techniques for concurrent processing was
        matched by the development of {memory management} techniques
        such as {dynamic memory allocation}, {virtual memory}, and
        {paging}, as well as {compilers} producing {relocatable code}.

        The {LILLIAC IV} is an example of a third generation computer.

        The CTSS ({Compatible Time-Sharing System}) was developed at
        {MIT} in the early 1960s and had a considerable influence on
        the design of subsequent timesharing operating systems.

        An interesting contrasting development in this generation was
        the start of mass production of small low-cost
        "{minicomputers}".

third generation language

        <language> (3GL, "{high level language}") A language designed
        to be easier for a human to understand, including things like
        named variables.  A fragment might be

                let c = c + 2 * d

        Fortran, ALGOL and COBOL are early examples of this sort of
        language.  Most "modern" languages ({BASIC}, {C}, {C++}) are
        third generation.  Most 3GLs support {structured programming}.

        See also {second generation language}, {fourth generation
        language}.

        (1996-05-30)

third normal form

        {database normalisation}

This can't happen

        {can't happen}

this dictionary

        {Free On-line Dictionary of Computing}

This time, for sure!

        <exclamation> Ritual affirmation frequently uttered during
        protracted {debugging} sessions involving numerous small
        obstacles (e.g. attempts to bring up a {UUCP} connection).  For
        the proper effect, this must be uttered in a fruity imitation
        of Bullwinkle J. Moose.

        Also heard: "Hey, Rocky!  Watch me pull a rabbit out of my
        hat!"  The {canonical} response is, of course, "But that trick
        *never* works!"

        See {hacker humour}.

        (1995-09-27)

thn

        {thumbnail}

Thomas

        <language> A language compatible with the language
        {Dylan}(TM).  Thomas is NOT {Dylan}(TM).

        The first public release of a translator to {Scheme} by Matt
        Birkholz, Jim Miller, and Ron Weiss, written at {Digital
        Equipment Corporation}'s {Cambridge Research Laboratory} runs
        (slowly) on {MIT}'s {CScheme}, DEC's {Scheme->C}, Marc
        Feeley's {Gambi}, {Macintosh}, {PC}, {Vax}, {MIPS}, {Alpha},
        {680x0}.

        {(ftp://gatekeeper.pa.dec.com/pub/DEC/Thomas)}.

        Mailing list: <info-thomas@crl.dec.com>.

        ["Dylan(TM) an object-oriented dynamic language", {Apple
        Computer}, Eastern Research and Technology, April 1992].

        (1992-09-11)

thrash

        To move wildly or violently, without accomplishing anything
        useful.  {Paging} or {swapping} systems that are overloaded
        waste most of their time moving data into and out of {core}
        (rather than performing useful computation) and are therefore
        said to thrash.  Thrashing can also occur in a {cache} due to
        {cache conflict} or in a {multiprocessor} (see {ping-pong}).

        Someone who keeps changing his mind (especially about what to
        work on next) is said to be thrashing.  A person frantically
        trying to execute too many tasks at once (and not spending
        enough time on any single task) may also be described as
        thrashing.

        Compare {multitask}.

thrashing

        {thrash}

thread

        1. See {multithreading}.

        2. See {threaded code}.

        3. {topic thread}.

threaded

        {thread}

threaded code

        <programming> A technique for implementing {virtual machine}
        {interpreters}, introduced by J.R. Bell in 1973, where each
        {op-code} in the virtual machine {instruction set} is the
        address of some (lower level) code to perform the required
        operation.  This kind of virtual machine can be implemented
        efficiently in {machine code} on most processors by simply
        performing an {indirect jump} to the address which is the next
        instruction.

        Many {Forth} implementations use threaded code and nowadays
        some use the term "threading" for almost any technique used to
        implement Forth's virtual machine.

        {(http://www.complang.tuwien.ac.at/forth/threaded-code.html)}.

        ["James R. Bell", "Threaded Code", CACM, 1973, 16, 6, pp
        370-372].

        ["An Architectural Trail to Threaded Code Systems", Kogge,
        P. M., IEEE Computer, March 1982].

        (1998-09-02)

threading

        {thread}

Thread Language Zero

        <language> (TL0) The {instruction set} of the TAM ({Threaded
        Abstract Machine}), used to implement {Id}.

        ["Fine-grain Parallelism with Minimal Hardware Support", David
        Culler et al, SIGPLAN Notices 26(4):164-175, ASPLOS-IV Proc,
        Apr 1991].

        (1995-03-13)

thread-safe

        <programming> A description of code which is either
        {re-entrant} or protected from multiple simultaneous execution
        by some form of {mutual exclusion}.

        (1997-01-30)

three-finger salute

        {Vulcan nerve pinch}

three-letter acronym

        (TLA) The canonical self-describing abbreviation for the name
        of a species with which computing terminology is infested.
        Examples include {MCA}, {FTP}, {SNA}, {CPU}, {MMU}, {DMU},
        {FPU}, {TLA}.  For a complete list of the TLAs in this
        dictionary, see {TLAs}.

        Sometimes used by extension for any confusing acronym.  People
        who like this looser usage argue that not all TLAs have three
        letters, just as not all four-letter words have four letters.
        One also hears of "ETLA" (Extended Three-Letter Acronym) being
        used to describe four-letter acronyms.  The term "SFLA"
        (Stupid Four-Letter Acronym) has also been reported.

        See also {YABA}.

        The self-effacing phrase "TDM TLA" (Too Damn Many...) is often
        used to bemoan the plethora of TLAs in use.  In 1989, a random
        of the journalistic persuasion asked hacker Paul Boutin "What
        do you think will be the biggest problem in computing in the
        90s?"  Paul's straight-faced response: "There are only 17,000
        three-letter acronyms." (To be exact, there are 26^3 =
        17,576.)

        (1994-12-14)

three-tier

        <architecture> A {client-server} architecture in which the
        {user interface}, functional process logic ("business rules")
        and data storage and access are developed and maintained as
        independent {modules}, most often on separate {platforms}.

        Apart from the usual advantages of modular software with well
        defined interfaces, the three-tier architecture is intended to
        allow any of the three tiers to be upgraded or replaced
        independently as requirements or technology change.  For
        example, an upgrade of desktop {operating system} from
        {Microsoft Windows} to {Unix} would only affect the {user
        interface} code.

        Typically, the user interface runs on a desktop {PC} or
        {workstation} and uses a standard {graphical user interface},
        functional process logic may consist of one or more separate
        modules running on a {workstation} or application {server},
        and an {RDBMS} on a database server or {mainframe} contains
        the data storage logic.  The middle tier may be multi-tiered
        itself (in which case the overall architecture is called an
        "n-tier architecture").

        (1998-05-13)

throughput

        1. The rate at which a processor can work expressed in
        instructions per second or jobs per hour or some other unit of
        performance.

        2. The amount of data a communications channel can carry,
        usually in bytes per second.

        The other important characteristic of a channel is its
        {latency}.

        (1995-01-16)

thud

        1. Yet another {metasyntactic variable} (see {foo}).  It is
        reported that at {CMU} from the mid-1970s the canonical series
        of these was "foo", "bar", "thud", "blat".

        2. Rare term for the hash character, "#" (ASCII 35).  See
        {ASCII} for other synonyms.

Thumb

        <processor> An extension to the {Advanced RISC Machine}
        architecture, announced on 06 March 1995 by {Advanced RISC
        Machines} Ltd.  By identifying the critical subset of the ARM
        {instruction set} and encoding it into 16 bits, ARM has
        succeeded in reducing typical program size by 30-40% from
        ARM's already excellent code density.  Since this Thumb
        instruction set uses less memory for program storage, cost is
        further reduced.

        All Thumb-aware {processor core}s combine the capability to
        execute both the 32-bit ARM and the 16-bit Thumb instruction
        sets.  Careful design of the Thumb instructions allow them to
        be decompressed into full ARM instructions transparently
        during normal instruction decoding without any performance
        penalty.  This differs from other 32-bit processors, like the
        {Intel 486SX}, with a 16-bit data bus, which require two
        16-bit memory accesses to execute every 32-bit instruction and
        so halve performance.

        The patented Thumb decompressor has been carefully designed
        with only a small amount of circuitry additional to the
        existing instruction decoder, so chip size and thus cost do
        not significantly increase.  Designers can easily interleave
        fast ARM instructions (for performance critical parts of a
        program) with compact Thumb code to save memory.

        (1995-03-14)

thumb

        <jargon> The slider or "bubble" on a window system
        {scrollbar}.  So called because moving it allows you to browse
        through the contents of a text window in a way analogous to
        thumbing through a book.

        (1995-03-14)

thumbnail

        <file format, graphics> (From "thumbnail sketch") A file
        format used by {Graphics Workshop} for {Microsoft Windows}.
        {Filename extension}: ".thn".

        [What's in the files?]

        (1996-05-28)

thunk

        <programming> /thuhnk/ 1. "A piece of coding which provides an
        address", according to P. Z. Ingerman, who invented thunks in
        1961 as a way of binding {actual parameters} to their formal
        definitions in {ALGOL 60} {procedure} calls.  If a procedure
        is called with an expression in the place of a {formal
        parameter}, the compiler generates a thunk which computes the
        expression and leaves the address of the result in some
        standard location.

        2. The term was later generalised to mean an expression,
        frozen together with its {environment} (variable values), for
        later evaluation if and when needed (similar to a
        "{closure}").  The process of unfreezing these thunks is
        called "forcing".

        3. A {stubroutine}, in an {overlay} programming environment,
        that loads and jumps to the correct overlay.

        Compare {trampoline}.

        There are a couple of onomatopoeic myths circulating about the
        origin of this term.  The most common is that it is the sound
        made by data hitting the {stack}; another holds that the sound
        is that of the data hitting an {accumulator}.  Yet another
        suggests that it is the sound of the expression being unfrozen
        at argument-evaluation time.  In fact, according to the
        inventors, it was coined after they realised (in the wee hours
        after hours of discussion) that the type of an argument in
        {ALGOL 60} could be figured out in advance with a little
        {compile-time} thought, simplifying the evaluation machinery.
        In other words, it had "already been thought of"; thus it was
        christened a "thunk", which is "the past tense of "think" at
        two in the morning".

        4. ({Microsoft Windows} programming) {universal thunk},
        {generic thunk}, {flat thunk}.

        (1997-10-11)

TIA

        1. Thanks in advance.

        2. {Telecommunications Industry Association}.

        3. The {Internet Adapter}.

        (1999-05-04)

tick

        1. A {jiffy} (sense 1).  2. In simulations, the discrete unit
        of time that passes between iterations of the simulation
        mechanism.  In AI applications, this amount of time is often
        left unspecified, since the only constraint of interest is the
        ordering of events.  This sort of AI simulation is often
        pejoratively referred to as "tick-tick-tick" simulation,
        especially when the issue of simultaneity of events with long,
        independent chains of causes is {handwave}d.  3. In the FORTH
        language, a single quote character.

TickIT

        A software industry quality assessment scheme.

Tickle

        <text, tool> A {text editor}, file translator and {TCL}
        {interpreter} for the {Macintosh}.

        Version 5.0v1.  The text editor breaks the 32K limit (like
        {MPW}).

        The file translation utilities support {drag and drop}
        handling via tcl scripts of {BinHex}, {MacBinary}, {Apple
        Computer} Single/Double, {StuffIt} (with engine), {Unix}
        {compress}, {Unix} {tar} and {UUencode} files as well as text
        translation.

        Tickle implements tcl 7.0 with {tclX} extensions and
        {Macintosh} equivalents of {Unix}'s {ls}, {pwd}, {cd}
        commands.  It provides Macintosh access to {Resource Manager},
        {Communications Toolbox}, {OSA} Components (and
        {AppleScript}), {Editions} (publish and subscribe) and {Apple
        Events} (including AEBuild and AEPrint).  {OSA Script} support
        allows programming of any OSA scripting component within
        Tickle interpreter windows.  It provides the OSAtcl and OSAJ
        {J}/{APL} extensions and creates "Ticklets" which are small
        {application program}s that carry only the tcl script and use
        code in the OSAtcl component to drive an application that
        allows {drag and drop} with tcl scripts.  Tickle is scriptable
        and recordable.

        {(ftp://ftp.msen.com/pub/vendor/ice/tickle/Tickle5.0v1.hqx)}

        E-mail: <time@ice.com>.

        (1994-10-12)

tickle a bug

        To cause a normally hidden bug to manifest itself through some
        known series of inputs or operations.  "You can tickle the bug
        in the Paradise VGA card's highlight handling by trying to set
        bright yellow reverse video."

tick-list features

        ({Acorn Computers}) Features in software or hardware that
        customers insist on but never use (calculators in desktop TSRs
        and that sort of thing).  The American equivalent would be
        "checklist features", but this jargon sense of the phrase has
        not been reported.

        (1995-01-06)

TIFF

        {Tagged Image File Format}

tiger team

        (US military jargon) 1. Originally, a team whose purpose is to
        penetrate security, and thus test security measures.  These
        people are paid professionals who do hacker-type tricks,
        e.g. leave cardboard signs saying "bomb" in critical defence
        installations, hand-lettered notes saying "Your codebooks have
        been stolen" (they usually haven't been) inside safes, etc.
        After a successful penetration, some high-ranking security
        type shows up the next morning for a "security review" and
        finds the sign, note, etc. and all hell breaks loose.  Serious
        successes of tiger teams sometimes lead to early retirement
        for base commanders and security officers (see the {patch}
        entry for an example).

        2. Recently, and more generally, any official inspection team
        or special {firefighting} group called in to look at a
        problem.

        A subset of tiger teams are professional {cracker}s, testing
        the security of military computer installations by attempting
        remote attacks via networks or supposedly "secure"
        communication channels.  Some of their escapades, if
        declassified, would probably rank among the greatest hacks of
        all times.  The term has been adopted in commercial
        computer-security circles in this more specific sense.

tight loop

        <programming> A {loop} of code that executes without releasing
        any resources to other programs or the {operating system}.

        Consider the following pointless {BASIC} loop that counts
        upwards indefinitely

         10 i = i + 1
         20 GOTO 10

        Run on a single-user system such as {MS-DOS} this will not
        cause any problems.  Run on a {cooperative multitasking}
        operating system such as {Windows 3}, the system would appear
        to freeze.

        A {pre-emptive multitasking} operating system such as
        {UNIX} or {Windows NT} would "steal" cycles away from
        the program and continue to run other programs.

        See also {busy-wait} and {multitasking}.

        (1999-05-06)

tilde

        <character> "~" {ASCII} character 126.

        Common names are: {ITU-T}: tilde; squiggle; {twiddle}; not.
        Rare: approx; wiggle; {swung dash}; enyay; {INTERCAL}: sqiggle
        (sic).

        Used as {C}'s prefix {bitwise negation} {operator}; and in
        {Unix} {csh}, {GNU Emacs}, and elsewhere, to stand for the
        current user's {home directory}, or, when prefixed to a {login
        name}, for the given user's home directory.

        The "swung dash" or "approximation" sign is not quite the same
        as {tilde} in typeset material but the ASCII tilde serves for
        both (compare {angle brackets}).

        [Has anyone else heard this called "tidal" (as in wave)?]

        (1996-10-18)

TILE Forth

        <language> A {Forth} {interpreter} in {C} for {Unix} by Mikael
        Patel <mip@sectra.se>.  TILE Forth comes with many Forth
        libraries.  It conforms to the {Forth83} {standard} and is
        distributed under {GPL}.

        Current version (1991-11-13): 2.1.

        Availalbe via {FTP} from a {GNU archive site}.

        (1991-11-13)

Tim Berners-Lee

        <person> The man who invented the {World-Wide Web} while
        working at the Center for European Particle Research (CERN).
        Now (Feb 1998) Director of the {World Wide Web Consortium}.

        [More details?]

        (1998-03-02)

time bomb

        A subspecies of {logic bomb} that is triggered by reaching
        some preset time, either once or periodically.  There are
        numerous legends about time bombs set up by programmers in
        their employers' machines, to go off if the programmer is
        fired or laid off and is not present to perform the
        appropriate suppressing action periodically.

        Interestingly, the only such incident for which we have been
        pointed to documentary evidence took place in the Soviet Union
        in 1986!  A disgruntled programmer at the Volga Automobile
        Plant (where the Fiat clones called Ladas were manufactured)
        planted a time bomb which, a week after he'd left on vacation,
        stopped the entire main assembly line for a day.  The case
        attracted lots of attention in the Soviet Union because it was
        the first cracking case to make it to court there.  The
        perpetrator got 3 years in jail.

time complexity

        <complexity> The way in which the number of steps required by
        an {algorithm} varies with the size of the problem it is
        solving.  Time complexity is normally expressed as an order of
        magnitude, e.g. O(N^2) means that if the size of the problem
        (N) doubles then the algorithm will take four times as many
        steps to complete.

        See also {computational complexity}, {space complexity}.

        (1996-05-08)

Time Complex Simulator

        <simulation> (Tcsim) {Complex arithmetic} version of {Tsim}.

        Contact: {ZOLA Technologies}.

        (1996-01-18)

time division multiple access

        {time division multiplexing}

time division multiplexing

        <communications> (TDM) A type of {multiplexing} where two or
        more channels of information are transmitted over the same
        link by allocating a different time interval ("slot" or
        "slice") for the transmission of each channel.  I.e. the
        channels take turns to use the link.  Some kind of periodic
        synchronising signal or distinguishing identifier is usually
        required so that the receiver can tell which channel is which.

        TDM becomes inefficient when traffic is intermittent because
        the time slot is still allocated even when the channel has no
        data to transmit.  {Statistical time division multiplexing}
        was developed to overcome this problem.

        Compare {frequency division multiplexing}, {code division
        multiplexing}.

        (1998-03-27)

Time Domain Reflectometer

        <hardware, networking> (TDR) An electronic device for
        detecting and locating short- or open-circuits in an
        {Ethernet} cable.  TDRs can also measure how the {characteristic
        impedance} of a line varies along its length.

        (1995-12-28)

timeout

        A period of time after which an error condition is raised if
        some event has not occured.  A common example is sending a
        message.  If the receiver does not acknowledge the message
        within some preset timeout period, a transmission error is
        assumed to have occured.

        (1995-11-09)

time quantum

        {time slice}

time-sharing

        <operating system> (Or "timesharing") An {operating system}
        feature allowing several users to run several tasks
        concurrently on one processor, or in parallel on many
        processors, usually providing each user with his own terminal
        for input and output.  {time-sharing} is {multitasking} for
        multiple users.

        (1998-04-24)

Time Sharing Option

        (TSO) System software from {IBM} that provides {time-sharing}
        on an IBM {mainframe} running in an {MVS} environment.

Time Simulator

        <simulation> (Tsim) A {stack}-based {simulation} language.

        Contact: {ZOLA Technologies}.

        (1999-10-04)

time sink

        (By analogy with "heat sink" or "current sink") A project that
        consumes unbounded amounts of time.

        (1995-02-07)

time slice

        <operating system> (Or "time quantum", "quantum") The period
        of time for which a process is allowed to run uninterrupted in
        a {pre-emptive multitasking} {operating system}.

        The {scheduler} is run once every time slice to choose the
        next process to run.  If the time slice is too short then the
        scheduler will consume too much processing time but if it is
        too long then processes may not be able to respond to extenal
        events quickly enough.

        (1998-11-06)

times-or-divided-by

        (By analogy with "plus-or-minus") A term occasionally used
        when describing the uncertainty associated with a scheduling
        estimate, for either humorous or brutally honest effect.  For
        a software project, the scheduling uncertainty factor is
        usually at least 2.

        (1995-02-07)

time T

        /ti:m T/ An unspecified but usually well-understood time,
        often used in conjunction with a later time T+1.  "We'll meet
        on campus at time T or at Louie's at time T+1" means, in the
        context of going out for dinner: "We can meet on campus and go
        to Louie's, or we can meet at Louie's itself a bit later."
        (Louie's was a Chinese restaurant in Palo Alto that was a
        favourite with hackers.)  Had the number 30 been used instead
        of the number 1, it would have implied that the travel time
        from campus to Louie's is 30 minutes; whatever time T is (and
        that hasn't been decided on yet), you can meet half an hour
        later at Louie's than you could on campus and end up eating at
        the same time.

        See also {since time T equals minus infinity}.

        (1994-12-12)

Time to Live

        (TTL) A field in the {Internet Protocol} header which
        indicates how many more {hop}s this packet should be allowed
        to make before being discarded or returned.

        (1994-12-12)

time zone

        One of approximately 24 longitudinal divisions of the globe,
        nominally 15 degrees wide, in which clocks show the same time.
        Some zones follow the boundaries of states or territories,
        others differ from neighbouring zones by more or less than one
        hour.

        Computers can be programmed to take into account the time zone
        each user is working in, which is not necessarily the same as
        the zone the computer is in.

        See also {TZ}.

        (1997-07-20)

Tinman

        The third of the series of DoD requirements that led to {Ada}.
        Written by HOLWG, DoD, Jan 1976.

        See {Strawman}, {Woodenman}, {Ironman}, {Steelman}.

        (1976-01-01)

tinman+

        Macro language for Apple II?  Published in DDJ?

TINT

        Interpreted version of {JOVIAL}.

        [Sammet 1969, p. 528].

tint

        {hue}

Tiny

        1. A language which provides {concurrency} through
        {message-passing} to named message {queues}.

        2. A tool written by Michael Wolfe <mwolfe@cse.ogi.edu> at
        {Oregon Graduate Institute of Science & Technology} for
        examining {array} data dependence {algorithm}s and {program
        transformation}s for scientific computations.

        {Extended Tiny} was used to implement the {Omega test}.
        Michael Wolfe has also made extensions to his version of tiny.

        (1994-12-12)

Tiny BASIC

        <language> A dialect of {BASIC} developed by Dr. Wang [Wong?]
        in the late 1970s.  Tiny BASIC was 2K bytes in size and was
        loaded from {paper tape}.  It ran on almost any {Intel 8080}
        or {Zilog Z80} {microprocessor} for which the user could
        provide the necessary I/O driver software.

        Tiny BASIC was distributed as [the first ever?] {freeware}.
        The program listing contained the following phrases "All
        Wrongs reserved" and "{CopyLeft}", he obviously wasn't
        interested in money.

        See also {Tiny Basic Interpreter Language}.

        [More info?]

        (1997-09-12)

Tiny Basic Interpreter Language

        <language> (TBIL) The inner {interpreter} of Tom Pittman's set
        of {Tiny Basics} in Dr Dobb's Journal.

        (1997-09-12)

Tiny Clos

        A core part of {Common Lisp Object System} (CLOS) ported to
        {Scheme} and rebuilt using a MOP ({Metaobject Protocol}).
        This should be interesting to those who want to use MOPs
        without using a full {Common Lisp} or {Dylan}.

        The first release works with {MIT Scheme} 11.74.

        {(ftp://parcftp.xerox.com/pub/mops/)}.  E-mail: Gregor
        Kiczales <gregor@parc.xerox.com>.  Mailing list: mops
        (administered by <gregor@parc.xerox.com>).

        (1992-12-14)

TIP

        1. {Texas Instruments Pascal}.

        2. A {Unix} program for interactive communication via {serial
        line}s.

        {Unix manual page}: tip(1).

TIPL

        1.  Teach IPL.  An interpretive {IPL} teaching system.

        [Sammet 1969, p. 393].

        2.  A dialect of {IGL}.

tip of the ice-cube

        [IBM] The visible part of something small and insignificant.
        Used as an ironic comment in situations where "tip of the
        iceberg" might be appropriate if the subject were at all
        important.

tired iron

        [IBM] Hardware that is perfectly functional but far enough
        behind the state of the art to have been superseded by new
        products, presumably with sufficient improvement in
        bang-per-buck that the old stuff is starting to look a bit
        like a {dinosaur}.

tits on a keyboard

        <jargon> Small bumps on certain keycaps to help touch-typists
        find the home keys (ASDF and JKL;) without looking.  They are
        nearly always on the "F" and "J" of a {QWERTY} and the "5" of
        a numeric keypad.  The {Macintosh}, perverse as usual, has
        them on the "D" and "K" keys.

        This term is based on the vernacular American expression "as
        useful as tits on a boar" (or boar-hog, bull, bullfrog, or
        many other variants), meaning "not useful".

        (1998-02-25)

tj

        <networking> The {country code} for Tajikistan.

        (1999-01-27)

Tk

        <programming, graphics> A {GUI} library, generally used with
        {TCL} by {John Ousterhout}, but also available from within {C}
        or {Perl}.  Tk is available for {X Window System}, {Microsoft
        Windows} and {Macintosh}.  Tk looks very similar to {Motif}.

        Version 3.5.

        {(ftp://ftp.cs.berkeley.edu/ucb/tcl/)}

        (1995-11-09)

tk

        <networking> The {country code} for Tokelau.

        (1999-01-27)

TK-90X

        <computer> A Brazilian {clone}, manufactured by {Micro
        Digital}, of the British {Sinclair Research} {ZX Spectrum}
        {8-bit} {microcomputer}.  It differed from the standard
        Spectrum by adding an {Interface 2}-compatible {joystick}
        {interface}, and extra {BASIC} commands to aid {programming}
        and {graphics}-editing.  Because of these differences, it was
        slightly incompatible with the standard Spectrum.

        A later model, the TK-95, which boasted an improved keyboard
        (similar to the {Commodore 64}'s) and a more compatible {ROM},
        was little more than a {Timex} {TC2048} (another Spectrum
        clone) in disguise.

        {comp.sys.sinclair FAQ
        (http://www.kendalls.demon.co.uk/cssfaq/)}.

        ["comp.sys.sinclair FAQ", D Burke M Fayzullin P Kendall et al,
        pub. Philip Kendall 1998]

        (1998-11-09)

TK-95

        {TK-90X}

T. Kohonen

        <person> A researcher at the {University of Helsinki} who has
        been studying {neural networks} for many years with the idea
        of modelling as closely as possible the behaviour of
        biological systems.  His name is commonly associated with a
        particular kind of neural network in which there are only two
        kinds of {neurons} (see {McCulloch-Pitts}), input and others.
        All the input neurons are connected to all others and the
        others are connected only to their other nearest neighbors.
        The training {algorithm} is a relatively simple one based on
        the geometric layout of the neurons, and makes use of
        {simulated annealing}.

        (1994-10-19)

TK!Solver

        Software Arts 1983.  Numerical constraint-oriented language.
        "The TK!Solver Book", M. Konopasek et al, McGraw-Hill 1984.

TL0

        {Thread Language Zero}

TL1

        Transaction Language 1.

        A subset of {ITU-T}'s {MML} from {Bellcore}, with simpler
        syntax.  TL1 is similar to {USL}.  It is used in
        communications between telephone operating systems and remote
        network test equipment.

        [OTGR, TR-TSY-000439, section 12, Bellcore].

        (1994-12-14)

TLA

        {Three-Letter Acronym}

TLAs

        At the last count, {this dictionary} gave expansions for 761
        {three-letter acronym}s, a mere 4.3%, of the 26^3 = 17576
        possible.  Here's the {grep} command used:

                egrep '^[A-Z][A-Z][A-Z]$' Dictionary | sort -u

        Here they are:

        {AAP}, {ABC}, {ABI}, {ABP}, {ACA}, {ACE}, {ACK}, {ACL}, {ACM},
        {ACP}, {ADL}, {ADM}, {ADS}, {ADT}, {AED}, {AEP}, {AES}, {AFJ},
        {AFK}, {AFS}, {AGL}, {AIA}, {AID}, {AIX}, {AKC}, {AKL}, {ALC},
        {ALF}, {ALM}, {ALP}, {AMD}, {AML}, {AMP}, {AMS}, {ANL}, {ANU},
        {AOS}, {APA}, {APC}, {API}, {APL}, {APT}, {AQL}, {ARC}, {ARL},
        {ARM}, {ARP}, {ARQ}, {ART}, {ASA}, {ASE}, {ASF}, {ASL}, {ASM},
        {ASN}, {ASP}, {ATA}, {ATK}, {ATM}, {ATS}, {AUI}, {AUP}, {AVS},
        {BAD}, {BAL}, {BAP}, {BBC}, {BBL}, {BBN}, {BBS}, {BCD}, {BCL},
        {BCS}, {BDL}, {BEA}, {BER}, {BFI}, {BGP}, {BIP}, {BLT}, {BMF},
        {BNF}, {BOF}, {BOS}, {BPS}, {BQS}, {BRB}, {BRI}, {BRS}, {BSD},
        {BSI}, {BSL}, {BSS}, {BTW}, {BWQ}, {CAD}, {CAE}, {CAF}, {CAL},
        {CAP}, {CAT}, {CBN}, {CBV}, {CCL}, {CCP}, {CCR}, {CCS}, {CDA},
        {CDC}, {CDE}, {CDF}, {CDL}, {CDM}, {CDS}, {CEN}, {CFD}, {CFP},
        {CGI}, {CGM}, {CHI}, {CID}, {CIF}, {CIL}, {CIM}, {CIS}, {CIX},
        {CLM}, {CLP}, {CLR}, {CLU}, {CLX}, {CMA}, {CMC}, {CML}, {CMS},
        {CMU}, {CMZ}, {CNC}, {CNI}, {COM}, {COS}, {CPI}, {CPL}, {CPS},
        {CPU}, {CRC}, {CRL}, {CRT}, {CSL}, {CSM}, {CSO}, {CSP}, {CSU},
        {CTC}, {CTI}, {CTL}, {CTY}, {CUA}, {CUL}, {CVS}, {CWI}, {DAA},
        {DAG}, {DAS}, {DAU}, {DBA}, {DBC}, {DBH}, {DCA}, {DCE}, {DCG},
        {DCL}, {DCT}, {DDE}, {DDL}, {DDM}, {DDN}, {DDT}, {DEA}, {DEC},
        {DED}, {DEK}, {DES}, {DEX}, {DFA}, {DFC}, {DFD}, {DGL}, {DIN},
        {DIP}, {DLG}, {DLL}, {DLM}, {DLP}, {DME}, {DML}, {DNF}, {DNS},
        {DOE}, {DOF}, {DOL}, {DOS}, {DPB}, {DPL}, {DPS}, {DSA}, {DSE},
        {DSL}, {DSM}, {DSP}, {DSS}, {DSU}, {DTD}, {DTE}, {DTP}, {DTS},
        {DUA}, {DVI}, {DXF}, {EAG}, {ECL}, {ECP}, {EDA}, {EDI}, {EDL},
        {EDU}, {EER}, {EFF}, {EFL}, {EGP}, {ELF}, {ELI}, {ELP}, {EMA},
        {EML}, {EMX}, {ENQ}, {EOF}, {EOL}, {EOU}, {EPL}, {EPS}, {ERA},
        {ERC}, {ERD}, {ESA}, {ESF}, {ESI}, {ESL}, {ESP}, {ETC}, {ETM},
        {EXE}, {FAC}, {FAD}, {FAP}, {FAQ}, {FCP}, {FDT}, {FEA}, {FEL},
        {FFP}, {FFT}, {FGL}, {FIX}, {FMQ}, {FMV}, {FNC}, {FOD}, {FPA},
        {FPU}, {FQL}, {FRL}, {FSF}, {FSL}, {FSM}, {FSP}, {FTP}, {FUD},
        {FYA}, {FYI}, {GAN}, {GAP}, {GAT}, {GCC}, {GCL}, {GCR}, {GCT},
        {GDB}, {GEA}, {GEI}, {GFR}, {GHC}, {GIF}, {GIN}, {GIP}, {GKS},
        {GLB}, {GLS}, {GLU}, {GMD}, {GNU}, {GOL}, {GOM}, {GPL}, {GPM},
        {GPV}, {GPX}, {GRG}, {GSL}, {GSM}, {GUI}, {GVL}, {GWM}, {HCF},
        {HCI}, {HCS}, {HDF}, {HDL}, {HDM}, {HEP}, {HLL}, {HOL}, {HPF},
        {HPL}, {HQX}, {HSV}, {IAB}, {IAD}, {IAL}, {IAM}, {IAW}, {IBM},
        {ICE}, {ICI}, {IDE}, {IDL}, {IEC}, {IEF}, {IEN}, {IFP}, {IFX},
        {IGC}, {IGL}, {IGP}, {IHS}, {IIS}, {IIT}, {IMP}, {IMR}, {IMS},
        {IPA}, {IPC}, {IPE}, {IPL}, {IPS}, {IPX}, {IQL}, {IRC}, {IRL},
        {IRQ}, {ISA}, {ISE}, {ISF}, {ISL}, {ISO}, {ISP}, {ISV}, {ITS},
        {ITU}, {IVY}, {JAZ}, {JCL}, {JPL}, {JRL}, {JRN}, {JSA}, {JTC},
        {JTS}, {KAP}, {KBS}, {KCL}, {KEE}, {KFX}, {KIS}, {KMS}, {KRC},
        {KRL}, {KRS}, {KSL}, {LAN}, {LAP}, {LAU}, {LAX}, {LBE}, {LBL},
        {LCC}, {LCF}, {LCL}, {LCS}, {LDB}, {LDL}, {LDP}, {LDT}, {LEP},
        {LER}, {LGN}, {LIS}, {LLC}, {LML}, {LNF}, {LOC}, {LOL}, {LOM},
        {LOP}, {LPC}, {LPG}, {LPI}, {LPL}, {LPS}, {LPT}, {LSE}, {LSL},
        {LTR}, {MAC}, {MAD}, {MAL}, {MAN}, {MAO}, {MAP}, {MAS}, {MBS},
        {MCA}, {MCC}, {MCI}, {MCL}, {MCP}, {MCS}, {MDL}, {MFE}, {MHS},
        {MIB}, {MIG}, {MIS}, {MIT}, {MIX}, {MJS}, {MLL}, {MML}, {MNP},
        {MPG}, {MPL}, {MPV}, {MRS}, {MTS}, {MTU}, {MUD}, {MVC}, {MVS},
        {NAG}, {NAK}, {NAS}, {NBS}, {NCD}, {NCS}, {NDL}, {NFA}, {NFS},
        {NFT}, {NGL}, {NIC}, {NIH}, {NII}, {NIL}, {NIS}, {NLS}, {NMI},
        {NOC}, {NPL}, {NQS}, {NSE}, {NSF}, {NSS}, {NTP}, {OBE}, {OBJ},
        {OCL}, {OCR}, {OCS}, {ODA}, {ODC}, {ODI}, {ODP}, {ODT}, {OEM},
        {OIC}, {OIL}, {OLC}, {OLE}, {OMA}, {OMF}, {OMG}, {OMT}, {ONC},
        {OOA}, {OOD}, {OOF}, {OOP}, {OPS}, {ORB}, {OSA}, {OSE}, {OSF},
        {OSI}, {OTI}, {OTT}, {OWL}, {PAD}, {PAL}, {PAT}, {PAW}, {PBD},
        {PBM}, {PBX}, {PCA}, {PCF}, {PCI}, {PCL}, {PCN}, {PCS}, {PDA},
        {PDF}, {PDL}, {PDP}, {PDS}, {PDU}, {PEM}, {PER}, {PEX}, {PFE},
        {PFL}, {PGP}, {PIC}, {PIE}, {PIL}, {PIP}, {PIT}, {PMC}, {PML},
        {POC}, {POE}, {POM}, {PPL}, {PPM}, {PPN}, {PPP}, {PRA}, {PRI},
        {PRL}, {PSA}, {PSD}, {PSI}, {PSL}, {PSN}, {PTI}, {PTT}, {PUB},
        {PVM}, {QAM}, {QBE}, {QNX}, {QPE}, {RAD}, {RAL}, {RAM}, {RCC},
        {RCL}, {RCS}, {RDL}, {RDS}, {REC}, {RFC}, {RFE}, {RFT}, {RGB},
        {RIP}, {RLF}, {RLL}, {RMS}, {RNF}, {RPC}, {RPG}, {RPI}, {RPL},
        {RPT}, {RRS}, {RSA}, {RSI}, {RSL}, {RSN}, {RTF}, {RTI}, {RTL},
        {RTM}, {RTT}, {SAA}, {SAC}, {SAL}, {SAP}, {SAS}, {SBM}, {SCC},
        {SCI}, {SCL}, {SCO}, {SDE}, {SDF}, {SDH}, {SDL}, {SDM}, {SDS},
        {SEA}, {SED}, {SEE}, {SEI}, {SEL}, {SEM}, {SEP}, {SET}, {SEX},
        {SFL}, {SGI}, {SIA}, {SIG}, {SIL}, {SIR}, {SMG}, {SMI}, {SML},
        {SMM}, {SMP}, {SNA}, {SOL}, {SOM}, {SOS}, {SPC}, {SPG}, {SPL},
        {SPM}, {SPS}, {SPX}, {SQL}, {SRI}, {SRL}, {SRP}, {SSA}, {SSL},
        {STB}, {STD}, {SYN}, {TAC}, {TAL}, {TAO}, {TBK}, {TCB}, {TCL},
        {TCM}, {TCP}, {TDF}, {TDR}, {TEI}, {TET}, {TIA}, {TIP}, {TLA},
        {TLB}, {TMG}, {TNX}, {TOK}, {TOP}, {TPL}, {TPS}, {TPU}, {TRO},
        {TRS}, {TSO}, {TSP}, {TSR}, {TTL}, {TXL}, {UAN}, {UAW}, {UBD},
        {UCB}, {UDP}, {UFO}, {UIL}, {UIS}, {ULP}, {UNI}, {URC}, {URI},
        {URL}, {URN}, {USE}, {USL}, {USR}, {UTC}, {UTP}, {VAL}, {VAR},
        {VAX}, {VDL}, {VDM}, {VEE}, {VEL}, {VGA}, {VHE}, {VIF}, {VLB},
        {VME}, {VML}, {VMS}, {VPL}, {VSF}, {VSP}, {VSX}, {VTS}, {VUE},
        {WAM}, {WAN}, {WCL}, {WEB}, {WFL}, {WRT}, {WSL}, {WTF}, {WTH},
        {WWW}, {XDL}, {XDR}, {XIE}, {XNF}, {XNS}, {XON}, {XPC}, {XPG},
        {XPL}, {XRN}, {XSB}, {XSI}, {XTI}, {XUI}, {XVT}, {XXX}, {YSM},
        {ZAP}, {ZIF}, {ZIL}, {ZOG}, {ZUG}

        (1994-12-14)

TLB

        {Translation Look-aside Buffer}

TLD

        {top-level domain}

TLI

        {Transport Layer Interface}

TL/I

        <language> An intermediate language for {Turing Machines}.

        ["Examples of Formal Semantics", D. Knuth in Symp on Semantics
        of Algorithmic Languages, E. Engeler ed, LNM 188, Springer
        1971, pp. 212-235].

        (1994-12-02)

T Lisp

        See {T}.

TM

        1. {Turing Machine}.

        2. A formal {database specification language}.

tm

        <networking> The {country code} for Turkmenistan.

        Heavily used for {vanity domains} because it looks
        like the abbreviation for "trademark".

        (1999-01-27)

(TM)

        (Trademark) An {ASCII} rendition of the trademark-superscript
        symbol, appended to phrases that the author feels should be
        recorded for posterity.

        It is sometimes used ironically as a form of protest against
        the recent spate of {software patents}, {algorithm} patents
        and "{look and feel}" lawsuits.

        (1994-12-02)

TMDL

        {Target-Machine Description Language}

TMG

        TransMoGrifier.

        An early language for writing {recursive descent} compilers.
        It was {macro}ed from the {IBM 1604} to the {IBM 709} to the
        {IBM 7094} to the {GE635}, where it was used by McIlroy and
        Morris to write the {EPL} compiler for {Multics}.

        ["TMG - A Syntax-Directed Compiler", R.M. McClure, Proc ACM
        20th Natl Conf (1965)].

        [Sammet 1969, p.636].

        (1994-12-02)

TMRC

        /tmerk'/ The Tech Model Railroad Club at {MIT}, one of the
        wellsprings of {hacker} culture.  The 1959 "Dictionary of the
        TMRC Language" compiled by Peter Samson included several terms
        that became basics of the hackish vocabulary (see especially
        {foo}, {mung}, and {frob}).

        By 1962, TMRC's legendary layout was already a marvel of
        complexity (and has grown in the thirty years since; all the
        features described here are still present).  The control
        system alone featured about 1200 relays.  There were {scram
        switch}es located at numerous places around the room that
        could be thwacked if something undesirable was about to occur,
        such as a train going full-bore at an obstruction.  Another
        feature of the system was a digital clock on the dispatch
        board, which was itself something of a wonder in those bygone
        days before cheap LEDS and seven-segment displays.  When
        someone hit a scram switch the clock stopped and the display
        was replaced with the word "FOO"; at TMRC the scram switches
        are therefore called "foo switches".

        Steven Levy, in his book "Hackers", gives a stimulating
        account of those early years.  TMRC's Power and Signals group
        included most of the early {PDP-1} hackers and the people who
        later bacame the core of the {MIT} {AI Lab} staff.  Thirty
        years later that connection is still very much alive, and this
        dictionary accordingly includes a number of entries from a
        recent revision of the TMRC dictionary (via the Hacker Jargon
        File).

TMRCie

        /tmerk'ee/, (MIT) A denizen of {TMRC}.

TMS 9900

        One of the first true 16-bit {microprocessor}s, released by
        {Texas Instruments} in June 1976 (the first are probably
        {National Semiconductor} {IMP-16} or {AMD-2901} {bit slice
        processor}s in 16-bit configuration).  It was designed as a
        single chip version of the {TI 990} {minicomputer} series,
        much like the {Intersil 6100} was a single chip {PDP-8}, and
        the {Fairchild 9440} and {Data General mN601} were both one
        chip versions of {Data General}'s {Nova}.  Unlike the IMS
        6100, however, the TMS 9900 had a mature, well thought out
        design.

        It had a 15-bit {address space} and two internal 16 bit
        {register}s.  One unique feature was that all user {register}s
        were actually kept in memory - this included {stack pointer}s
        and the {program counter}.  A single workspace {register}
        pointed to the 16 {register set} in {RAM}, so when a
        subroutine was entered or an {interrupt} was processed, only
        the single workspace register had to be changed - unlike some
        {CPU}s which required dozens or more register saves before
        acknowledging a {context switch}.

        This was feasible at the time because {RAM} was often faster
        than the {CPU}s.  A few modern designs, such as the {INMOS}
        {transputer}, use this same design using {cache}s or {rotating
        buffer}s, for the same reason of faster {context switch}es.
        Other chips of the time, such as the {650x} series had a
        similar philosophy, using {index register}s, but the TMS 9900
        went the farthest in this direction.

        That wasn't the only positive feature of the chip.  It had
        good {interrupt} handling features and very good instruction
        set.  Serial I/O was available through address lines.  In
        typical comparisons with the {Intel 8086}, the TMS9900 had
        smaller and faster programs.  The only disadvantage was the
        small {address space} and need for fast {RAM}.

        Despite very poor support from Texas Instruments, the TMS 9900
        had the potential at one point to surpass the {Intel 8086} in
        popularity.

        (1994-11-30)

tn

        <networking> The {country code} for Tunisia.

        (1999-01-27)

tn3270

        A program, similar to {telnet}, used to connect to remote
        {IBM} {mainframe} {host}s, many of which do not understand
        telnet.  The program emulates a {3270}-type terminal.

        For many tn3270 versions, the "clear screen" function is
        activated by typing Control-Z.  When logged on to an IBM host
        and "HOLDING" or "MORE..."  appears at the lower right corner
        of the screen, the "clear screen" function must be entered to
        display the next screen.  tn3270 emulations usually include
        {function key} definitions.

        (1994-11-03)

TNC

        <hardware> A threaded version of a {BNC}.

        (1996-12-21)

TNSTAAFL

        {TANSTAAFL}

TNX

        <chat> Thanks.  Also "TNX 1.0E6" or "{TNXE6}" - thanks a
        million.

        (1996-05-19)

TNXE6

        Thanks a million.  "E" is used in many programming languages
        to separate the mantissa and exponent of a {floating-point}
        constant so a number ending in "E6" means "times ten to the
        power six", i.e. times a million.

to

        <networking> The {country code} for Tonga.

        Heavily used for {vanity domains} because it looks like the
        English word "to".

        (1999-01-27)

to a first approximation

        1. When one is doing certain numerical computations, an
        approximate solution may be computed by any of several
        heuristic methods, then refined to a final value.  By using
        the starting point of a first approximation of the answer, one
        can write an algorithm that converges more quickly to the
        correct result.

        2. In jargon, a preface to any comment that indicates that the
        comment is only approximately true.  The remark "To a first
        approximation, I feel good" might indicate that deeper
        questioning would reveal that not all is perfect (e.g. a
        nagging cough still remains after an illness).

toast

        <jargon> 1. Any completely inoperable system or component,
        especially one that has just crashed and burned: "Uh, oh ... I
        think the serial board is toast."

        2. To cause a system to crash accidentally, especially in a
        manner that requires manual rebooting.  "Rick just toasted the
        {firewall machine} again."

        Compare {fried}.

        (1995-05-01)

toaster

        <jargon> 1. The archetypal really stupid {application} for an
        {embedded} {microprocessor} controller; often used in comments
        that imply that a scheme is inappropriate technology (but see
        {elevator controller}).  "{DWIM} for an assembler?  That'd be
        as silly as running {Unix} on your toaster!"

        2. A very, very dumb computer. "You could run this program on
        any dumb toaster."

        See {bitty box}, {Get a real computer!}, {toy}, {beige
        toaster}.

        3. A {Macintosh}, especially the {Classic Mac}.  Some hold
        that this is implied by sense 2.

        4. A peripheral device.  "I bought my box without toasters,
        but since then I've added two boards and a second disk drive".

        This is not usually to be taken literally but, to show off the
        expansion capabilities of the {Risc PC}, {Acorn Computers
        Ltd.} built a seven-slice machine (which they called "the
        rocket-ship") and installed every imaginable peripheral.  In a
        spare {drive bay} of the top slice they installed a toaster.
        This machine was exhibited at various shows where it attracted
        attention by occasionally ejecting a pizza.

        (1997-07-18)

toasternet

        <networking> 1. A low cost, low tech, publicly accessible
        local community {network}.  This is probably an extension of
        the term "{toaster}" used to mean a small, cheap, slow
        computer.

        {community networks
        (gopher://gopher.well.sf.ca.us/00/Community/communets/about.nets)}.

        2. The title of some informal notes on {Internet address}ing,
        ("Toasternet Part I and II"), circulated on the {IETF}
        {mailing list} during November 1991 and March 1992.

        Subsequent work was published in June 1993 in {RFC 1475} and
        {RFC 1476} and the "{CATNIP}" {Internet-Draft} by Robert
        L. Ullmann

        (1995-05-01)

to a zeroth approximation

        <jargon> (From "to a first approximation") A *really* sloppy
        approximation; a wild guess.

        Compare {social science number}.

        (1994-12-12)

toeprint

        <jargon> A {footprint} of especially small size.

        (1994-12-12)

toggle

        To change a {bit} from whatever state it is in to the other
        state; to change from 1 to 0 or from 0 to 1.  This comes from
        "toggle switches", such as standard light switches, though the
        word "toggle" actually refers to the mechanism that keeps the
        switch in the position to which it is flipped rather than to
        the fact that the switch has two positions.  There are four
        things you can do to a bit: set it (force it to be 1), clear
        (or zero) it, leave it alone, or toggle it.

        (1994-12-12)

TOK

        Referred to in Ursula K. LeGuin's "Always Coming Home."  Seems
        to be similar to the original {BASIC}.

        (1994-12-12)

token

        1. <grammar> A basic, grammatically indivisible unit of a
        language such as a {keyword}, operator or identifier.
        Compare: {lexeme}.

        2. <convention> (Or "{pumpkin}") An abstact concept passed
        between cooperating agents to ensure synchronised access to a
        shared resource.  Such a token is never duplicated or
        destroyed (unless the resource is) and whoever has the token
        has exclusive access to the resource it controls.  See for
        example {token ring}.

        If several programmers are working on a program, one
        programmer will "have the token" at any time, meaning that
        only he can change the program whereas others can only read
        it.  If someone else wants to modify it he must first obtain
        the token.

        (1999-02-23)

token bus

        <networking> (IEEE 802.4) A networking protocol which mediates
        access to a {bus} topology network as though it were a {token
        ring}.  This eliminates the {collisions} found in {carrier
        sense collision detect} protocols.  {Nodes} can be configured
        to pass the token in any order, not necessarily related to
        their physical ordering on the bus.  The token is sent from
        one node to its successor in the logical ring by broadcast on
        the bus and is ignored by the other nodes.

        (1996-12-13)

token ring

        A computer {local area network} arbitration scheme in which
        conflicts in the transmission of messages are avoided by the
        granting of "tokens" which give permission to send.  A station
        keeps the token while transmitting a message, if it has a
        message to transmit, and then passes it on to the next
        station.

        Often, "Token Ring" is used to refer to the {IEEE 802.5} token
        ring {standard}, which is the most common type of token ring.

        {Usenet} newsgroup: {news:comp.dcom.lans.token-ring}.

Tom Knight

        <person> A noted {hacker} at {MIT}.

        {(http://www.ai.mit.edu/people/tk/tk.html)}

        (1996-12-12)

tone

        {brightness}

Tony Hoare

        {Anthony Hoare}

tool

        1. <tool> A program used primarily to create, manipulate,
        modify, or analyse other programs, such as a compiler or an
        editor or a cross-referencing program.  Opposite: {app},
        {operating system}.

        2. A {Unix} {application program} with a simple, "transparent"
        (typically text-stream) interface designed specifically to be
        used in programmed combination with other tools (see {filter},
        {plumbing}).

        3. <jargon> ({MIT}: general to students there) To work; to
        study (connotes tedium).  The {TMRC} Dictionary defined this
        as "to set one's brain to the grindstone".  See {hack}.

        4. <jargon, person> ({MIT}) A student who studies too much and
        hacks too little.  MIT's student humour magazine rejoices in
        the name "Tool and Die".

        (1996-12-12)

tool bar

        <operating system> A common {graphical user interface}
        component, consisting of a permanently visible row of button
        {icons} which, when clicked with the {mouse}, cause the
        program to perform some action such as printing the current
        document or changing the {mode} of operation.

        The tool bar buttons often duplicate functions accessible via
        {menus} but are easier to use since they are permanently
        visible.  A typical use would be in a {paint} program where
        the tool bar allows the users to select one of the various
        painting "tools" - brush, pencil, bucket etc.

        (1997-11-22)

toolbook

        <tool> A {Microsoft Windows} utility to make easy-to-use
        applications with a {graphical user interface}.  E.g. a guided
        tour of some software.

        (1995-03-14)

Toolbuilder

        {Tool Builder Kit}

Tool Builder Kit

        <tool> (TBK) A product from {IPSYS} which allows users to
        develop {CASE} tools appropriate to any {software engineering}
        {methodology}.

        (1996-05-08)

Tool Command Language

        <language> /tik*l/ (Tcl) An interpreted string processing
        language for issuing commands to {interactive} programs,
        developed by {John Ousterhout} at {UCB}.  Each {application
        program} can extend tcl with its own set of commands.

        Tcl is like a text-oriented {Lisp}, but lets you write
        algebraic expressions for simplicity and to avoid scaring
        people away.  Though originally designed to be a "scripting
        language" rather than for serious programming, Tcl has been
        used successfully for programs with hundreds of thousands of
        lines.

        It has a peculiar but simple {syntax}.  It may be used as an
        embedded {interpreter} in application programs.  It has
        {exceptions} and {packages} (called libraries), {name-spaces}
        for {procedures} and {variables}, and provide/require.  It
        supports {dynamic loading} of {object code}.  It is {eight-bit
        clean}.  It has only three variable types: strings, lists and
        {associative arrays} but no {structures}.

        Tcl and its associated {GUI} {toolkit}, {Tk} run on all
        flavors of {Unix}, {Microsoft Windows}, {Macintosh} and {VMS}.
        Tcl runs on the {Amiga} and many other {platforms}.

        Current version: 8.0.3 as of 1998-09-25.

        See also {expect} (control interactive programs and pattern
        match on their output), {Cygnus Tcl Tools}, {[incr Tcl]} (adds
        classes and inheritence to Tcl), {Scriptics} (John
        Ousterhout's company that is the home of Tcl development and
        the TclPro tool suite), {Tcl Consortium} (a non-profit agency
        dedicated to promoting Tcl), {tclhttpd} (an embeddable
        Tcl-based web server), {tclx} (adds many commands to Tcl),
        {tcl-debug}.

        {comp.lang.tcl FAQ at MIT
        (ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/tcl-faq/)}
        or {at purl.org (http://www.purl.org/NET/Tcl-FAQ/)}.

        {Scriptics downloads
        (http://www.scriptics.com/software/download.html)}.
        {Kanji (ftp://srawgw.sra.co.jp/pub/lang/tcl/jp/)}.

        {Usenet} newsgroups: {news:comp.lang.tcl.announce},
        {news:comp.lang.tcl}.

        ["Tcl: An Embeddable Command Language", J. Ousterhout, Proc
        1990 Winter USENIX Conf].

        (1998-11-27)

TOOLS

        {Technology of Object-Oriented Languages and Systems}

toolsmith

        The software equivalent of a tool-and-die specialist; one who
        specialises in making the {tool}s with which other programmers
        create applications.  Many hackers consider this more fun than
        applications per se; to understand why, see {uninteresting}.
        Jon Bentley, in the "Bumper-Sticker Computer Science" chapter
        of his book "More Programming Pearls", quotes Dick Sites from
        DEC as saying "I'd rather write programs to write programs
        than write programs".

TOP

        {Technical/Office Protocol}

top-down design

        <programming> (Or "stepwise refinement").  The software design
        technique which aims to describe functionality at a very high
        level, then partition it repeatedly into more detailed levels
        one level at a time until the detail is sufficient to allow
        coding.  This approach to software design probably originated
        at {IBM}, and grew out of {structured programming} practices.

        (1996-08-04)

Top-Down Model

        <programming> A method for estimating the overall cost and
        effort of the proposed software project from global properties
        of the project.  The total cost and schedule is partitioned
        into components for planning purposes.

        (1996-05-29)

topic drift

        <messaging> Term used on GEnie, {Usenet} and other electronic
        fora to describe the tendency of a {thread} to drift away from
        the original subject of discussion (and thus, from the Subject
        header of the originating message), or the results of that
        tendency.

        Often used in gentle reminders that the discussion has strayed
        off any useful track.  "I think we started with a question
        about Niven's last book, but we've ended up discussing the
        sexual habits of the common marmoset.  Now *that's* topic
        drift!"

        (1996-05-29)

topic group

        Synonym {forum}.

topic thread

        [{Usenet}, GEnie, CompuServe] A more or less continuous chain
        of postings on a single topic.  To "follow a thread" is to
        read a series of {Usenet} postings sharing a common subject or
        (more correctly) which are connected by Reference headers.
        The better newsreaders can present news in thread order
        automatically.

top-level domain

        <networking> The last and most significant component of an
        {Internet} {fully qualified domain name}, the part after the
        last ".".  For example, {host} wombat.doc.ic.ac.uk is in
        top-level domain "uk" (for United Kingdom).

        Every other country has its own top-level domain, including
        ".us" for the U.S.A.  Within the .us domain, there are
        subdomains for the fifty states, each generally with a name
        identical to the state's postal abbreviation.  These are
        rarely used however.  Within the .uk domain, there is a .ac.uk
        subdomain for academic sites and a .co.uk domain for
        commercial ones.  Other top-level domains may be divided up in
        similar ways.

        In the US and some other countries, the following top-level
        domains are used much more widely than the country code:

                .com - commercial bodies
                .edu - educational institutions
                .gov - U. S. government
                .mil - U. S. armed services
                .net - network operators
                .org - other organisations

        Since the rapid commercialisation of the Internet in the 1990s
        the ".com" domain has become particularly heavily populated
        with every company trying to register its company name as a
        subdomain of .com, e.g. "netscape.com" so as to make it easy
        for customers to guess or remember the {URL} of the comany's
        {home page}.

        United Nations entities use the domain names of the countries
        where they are located.  The UN headquarters facility in New
        York City, for example, is un.org.

        Several new top-level domains are about to be added (Oct
        1997):
                .nom   - individual people
                .rec   - recreational organisations
                .firm  - businesses such as law, accounting, engineering
                .store - commercial retail companies
                .ent   - entertainment facilities and organisations

        (1997-10-08)

topology

        1. The study of interconnections.

        2. A {network} topology shows the {host}s and the links
        between them.  A {network layer} must stay abreast of the
        current network topology to be able to {route} {packet}s to
        their final destination.

TOPS-10

        /tops-ten/ DEC's proprietary OS for the fabled {PDP-10}
        machines, long a favourite of hackers but now effectively
        extinct.  A fountain of hacker folklore.  See also {ITS},
        {TOPS-20}, {TWENEX}, {VMS}, {operating system}.  TOPS-10 was
        sometimes called BOTS-10 (from "bottoms-ten") as a comment on
        the inappropriateness of describing it as the top of anything.

TOPS-20

        {TWENEX}

Tornado

        <programming> The {software development environment}
        previously distributed with {VxWorks}.

        (1996-11-29)

Toronto Euclid

        <language> The standard dialect of {Euclid}, as compared to
        {Ottawa Euclid}.

        (1996-11-29)

TOS

        <operating system> /toss/

        1. {IBM}'s {Tape Operating System}.

        2. The {operating system} of the {Atari} ST range of
        computers.  This range included the 512ST, 1040ST and the F,
        FM and E variations (e.g.1040STE).  Later, 32-bit machines
        (TT, Falcon030 and MegaSTE) were developed using a new version
        of TOS, called {MultiTOS} which was based on {MinT}.

        TOS went through several revisions starting initially as a
        derivative of {CP/M}, but developing into a remarkably
        complete and flexible operating system.  Features include: a
        {flat memory model}, {MS-DOS}-compatible disk format and
        support for {MIDI} and {SCSI} (in later versions).  TOS was
        designed to run Atari's version of the {GEM} {GUI}.

        There is some argument as to what TOS stands for, the main
        candidates being "Tramiel Operating System" (named after
        Atari's head at the time) or simply "The Operating System".

        3. <networking> {Terms Of Service}.

        4. Star Trek The Original Series as opposed to ST-TNG or
        ST-DS9.

        (1999-04-02)

TOSS

        {Terminal Oriented Social Science}

total function

        <mathematics> A {function} which is defined for all arguments
        of the appropriate type.  The opposite is a {partial
        function}.

        (1997-01-10)

totally ordered

        <mathematics> Having a {total ordering}.

        (1997-01-10)

totally ordered set

        <mathematics> A {set} with a {total ordering}.

total ordering

        <mathematics> A {relation} R on a set A which is a {partial
        ordering}; i.e. it is reflexive (xRx), transitive (xRyRz =>
        xRz) and antisymmetric (xRyRx => x=y) and for any two elements
        x and y in A, either x R y or y R x.

        See also {equivalence relation}, {well-ordered}.

        (1995-02-16)

toto

        <programming> /toh-toh'/ The default scratch file name among
        French-speaking programmers - in other words, a francophone
        {foo}.  The phonetic mutations "titi", "tata", and "tutu"
        canonically follow "toto", analogously to {bar}, {baz} and
        {quux} in English.

        (1995-04-18)

touchpad

        <hardware> (Or "trackpad") A stationary {pointing device} used
        mainly on {laptop computers}.  Touchpads provide a small, flat
        surface that you slide your finger over using the same
        movements as you would a {mouse}.  They were originally
        developed to provide a more natural and intuitive connection
        for the computer user than the mouse.

        Touchpads use a principle called coupling {capacitance}, and
        requires a {conductive} pointer such as a finger.  They
        contain a two-layer grid of {electrodes} which are connected
        to an {integrated circuit} (IC) mounted under the pad.  The
        upper layer contains vertical electrode strips while the lower
        layer is composed of horizontal electrode strips.  Capacitance
        from each of the horizontal electrodes to each of the vertical
        electrodes is measured by the IC.  A finger near the
        intersection of two electrodes modifies the capacitance
        between them, since a finger has very different {dielectric}
        properties than air.  The position of the finger is precisely
        determined based on these changes at various locations.

        According to one correspondent, you can use any part of your
        body, which is not surprising, but not a McDonalds Chicken
        McCrispy.  You can use reheated Pizza Hut Christmas Pizza
        though.

        {Touchpad Technical Overview
        (http://www.glidepoint.com/techovr.htm)}.

        {Touchpad New Uses (http://www.synaptics.com)}.

        (1999-01-11)

touch screen

        <hardware> An input device that allows user to interact with
        computer by touching the display screen.

        Often this uses beams of infrared light that are projected
        across the screen surface.  Interrupting the beams generates
        an electronic signal identifying the location of the screen.
        Software interprets the signal and performs the required
        operation.

        (1995-04-13)

tourist

        <jargon> A guest on the system, especially one who generally
        logs in over a network from a remote location for {comm mode},
        {electronic mail}, {games} and other trivial purposes.  A
        tourist is one step below a {luser}.

        Hackers often spell this {turist}, perhaps by some sort of
        tenuous analogy with {luser} (this also expresses the {ITS}
        culture's penchant for six-letterisms).

        Compare {twink}, {read-only user}.

        (1995-03-10)

touristic

        <jargon> Having the quality of a {tourist}.

        (1995-03-10)

tourist information

        Information in an on-line display that is not immediately
        useful, but contributes to a viewer's gestalt of what's going
        on with the software or hardware behind it.  Whether a given
        piece of info falls in this category depends partly on what
        the user is looking for at any given time.  The "bytes free"
        information at the bottom of an {MS-DOS} "dir" display is
        tourist information; so (most of the time) is the TIME
        information in a {Unix} "ps(1)" display.

Tower Technology Corporation

        A company, established in 1992 by the merger of two {OOT}
        companies, with the intention of supplying high performance
        {Eiffel} compilation systems.  Tower provides development
        tools, reusable {class} libraries, and services supporting
        large scale system development.

        {(http://www.cm.cf.ac.uk/Tower/)}

        E-mail: <tower@twr.com> (orders and inquiries), <outlook@twr.com>
        (The Eiffel Outlook Journal).

        Telephone: +1 (512) 452 9455 (8:30 to 5:30 CST business days).
        Fax: +1 (512) 452 1721.  Sales +1 (800) 285-5124 (Free, USA
        and Canada only).

        Address: Tower Technology, 1501 W. Koenig Lane, Austin, TX
        78756, USA.

        (1994-12-12)

toy

        A computer system; always used with qualifiers.

        1. "nice toy": One that supports the speaker's hacking style
        adequately.

        2. "just a toy": A machine that yields insufficient
        {computron}s for the speaker's preferred uses.  This is not
        condemnatory, as is {bitty box}; toys can at least be fun.  It
        is also strongly conditioned by one's expectations; Cray XMP
        users sometimes consider the Cray-1 a "toy", and certainly all
        RISC boxes and mainframes are toys by their standards.  See
        also {Get a real computer!}.

Toy/Ada

        A {compiler} for a subset of {Ada}, written in {SML/NJ} by
        Amit Bhatiani <bhatiaa@polly.cs.rose-hulman.edu>.

        {(ftp://master.cs.rose-hulman.edu/pub/)}

        (1992-04-08)

toy language

        <language> A language useful for instructional purposes or as
        a proof-of-concept for some aspect of computer-science theory,
        but inadequate for general-purpose programming.  {Bad Thing}s
        can result when a toy language is promoted as a general
        purpose solution for programming (see {bondage-and-discipline
        language}); the classic example is {Pascal}.  Several
        moderately well-known formalisms for conceptual tasks such as
        programming {Turing Machine}s also qualify as toy languages in
        a less negative sense.

        See also {MFTL}.

        (1995-05-09)

toy problem

        [AI] A deliberately oversimplified case of a challenging
        problem used to investigate, prototype, or test algorithms for
        a real problem.  Sometimes used pejoratively.  See also
        {gedanken}, {toy program}.

toy program

        <programming> 1. A trivial program that can be readily
        comprehended.

        2. A program for which the effort of initial coding dominates
        the costs through its {life cycle}.

        See also {noddy}.

        (1996-05-19)

tp

        <networking> The {country code} for East Timor.

        (1999-01-27)

TPF

        {Transaction Processing Facility}

TP/IX

        <networking, protocol> An {Internet} {protocol}, described in
        {RFC 1475}, which changes {TCP} and {UDP} headers to give a
        64-bit {IP address}, a 32-bit {port} number, and a 64 bit
        sequence number.

        (1995-04-03)

TPL

        1. Table Producing Language.  "The Bureau of Labor Statistics
        Table Producing Language (TPL)", R.C. Mendelssohn, Proc ACM
        Annual Conf (1974).

        2. Fleming Nielson.  A concurrent {functional language}.

        3. Terminal Programming Language.  Texas Inst, late 70's.
        Used on the TI-990/1 Small Business Computer and the TI-771
        Intelligent Terminal.

TPO

        {twisted pair only}

TPS

        Tree Pruning System.  "An Adaptive Tree Pruning System: A
        Language for Programming Heuristic Tree Searches",
        E.W. Kozdrowicki, Proc ACM 23rd Natl Conf 1968.

tptc

        A {Turbo Pascal} to {Turbo C} translator.  Comes with full
        source.

        {(ftp://wuarchive.wustl.edu/mirrors/msdos/turbopas/tptc17*.zip)}

TPU

        Text Processing Utility.  DEC.  Language for creation of
        text-processing interfaces, used to implement DEC's Extensible
        VAX Editor (EVE).

tr

        <networking> The {country code} for Turkey.

        (1999-01-27)

TRAC

        {Text Reckoning And Compiling}

traceroute

        A (typically Unix) {TCP/IP} utility which allows the user to
        determine the {route} {packet}s are taking to a particular
        {host}.  Traceroute works by increasing the "{time to live}"
        value of packets and seeing how far they get, until they reach
        the given destination; thus, a lengthening trail of hosts
        passed through is built up.

trace scheduling

        <processor> A method of controlling and coordinating the
        operation of multiple hardware elements of a {Very Long
        Instruction Word} processor.  It was developed by Josh Fisher
        at the now-defunct {Multiflow Computer} Corporation

        [Details?]

        (1995-03-01)

track

        <storage> The part of a {disk} which passes under one
        read/write head while the head is stationary.  The number of
        tracks on a disk surface therefore corresponds to the number
        of different radial positions of the head(s).  The collection
        of all tracks on all surfaces at a given radial position is
        known a {cylinder} and each track is divided into {sectors}.

        (1997-07-15)

track ball

        {tracker ball}

tracker ball

        <hardware> A {pointing device} consisting of a ball housed in
        a socket containing sensors to detect rotation of the ball
        about two axes - like an upside-down {mouse}.  The user rolls
        the ball with his thumb or the palm of his hand to move a
        cursor.  Tracker balls are common on {CAD} {workstations} for
        ease of use and on modern {portable computers}, where there
        may be no desk space on which to use a {mouse}.  Some clip
        onto the side of the keyboard and have integral buttons which
        have the same function as mouse buttons.

        (1996-08-04)

tracking

        <text> The spacing between {characters} in a line of {text}.
        This is defined when a {font} is designed but can often be
        altered in order to change the appearance of the text or for
        special effects.

        Tracking should not be confused with {kerning} which deals
        with the spacing between certain pairs of characters.

        See also {leading}.

        (1996-06-07)

trackpad

        {touchpad}

Trackpoint

        <hardware> (Or "nipple") The {pointing device} used on
        {Toshiba}, {AST} and {IBM} {notebook} computers.  The
        Trackpoint is a small knob found in the middle of the
        keyboard.  It works like a very short {joystick} - pressing it
        toward or away from you or from side to side moves the
        {pointer} on the screen.  This takes up virtually no extra
        room on the box or the work area and also requires minimal
        movement of the hands from the keyboard.

        {(http://www.research.ibm.com/mathsci/cmc/trackpoint.htm)}.

        (1999-07-21)

tractor feed

        {sprocket feed}

TrafoLa

        <language> A {functional programming} language designed in the
        {PROSPECTRA} {ESPRIT} project to support declarative
        specification of {program transformations}.  It provides
        higher-order {pattern matching} on expression trees with
        {backtracking}.

        [Heckmann88].

        (1996-06-07)

Trafola-H

        A specification language for program transformations.
        Functional, statically typed, polymorphic, with extended
        constructs for pattern-matching.  "Trafola-H Reference
        Manual", R. Heckmann et al, U Saarlandes, Saarbrucken 1991.

trampoline

        An incredibly {hairy} technique, found in some {HLL} and
        program-overlay implementations (e.g. on the Macintosh), that
        involves on-the-fly generation of small executable (and,
        likely as not, self-modifying) code objects to do indirection
        between code sections.  These pieces of {live data} are called
        "trampolines".  Trampolines are notoriously difficult to
        understand in action; in fact, it is said by those who use
        this term that the trampoline that doesn't bend your brain is
        not the true trampoline.  See also {snap}.

TRANDIR

        TRANslation DIRector.  A language for syntax-directed
        compiling.  Sammet 1969, p.640.

TRANQUIL

        1966.  ALGOL-like language with sets and other extensions, for
        the Illiac IV.  "TRANQUIL: A Language for an Array Processing
        Computer", N.E. Abel et al, Proc SJCC 34 (1969).

TRANS

        TRAffic Network Simulation Language.  "A Model for Traffic
        Simulation and a Simulation Language for the General
        Transportation Problem", Proc FJCC 37 (1970).

transaction

        A unit of interaction with a {DBMS} or similar system.  It
        must be treated in a coherent and reliable way independent of
        other transactions.  See {atomic}.

Transaction Processing Facility

        <operating system> (TPF) A {real-time} {mainframe} {operating
        system} released by {IBM} around 1976.  TPF is particularly
        suited to organisations dealing in very high I/O message
        switching and large global networks.  Current users include
        British Airways (reservations), VISA International
        (authorisations), Holiday Inn, and Quantas.

        TPF was traditionally a {370/Assembler} environment although
        the latest, release 4.1, contains {C}.  Formerly known as ACP
        (Airline Control Program), it was renamed "TPF" to suggests
        its greater scope.

        It is common for TPF sites to use IBM's {MVS} and {VM}
        operating systems for {off-line} processing.

        (1996-08-27)

transceiver

        Transmitter-receiver.  The physical device that connects a
        {host} interface (e.g. an {Ethernet} controller) to a {local
        area network}.  Ethernet transceivers contain electronics that
        apply signals to the cable and sense other host's signals and
        collisions.  See also {CSMA/CD}.

TRANSCODE

        Early system on Ferut computer.  Listed in CACM 2(5):16 (May
        1959).

transducer

        1. A device for converting sound, temperature, pressure, light
        or other signals to or from an electronic signal.

        2. {Finite State Machine}.

        This term is used particularly in language theory where
        automata are often considered as {abstract machine}s capable
        of recognising the language defined by a {regular expression}.

        [M. Crochemore "tranducters and repetitions",
        Theoritical. Comp. Sc. 46 (1986)].

        (1995-02-15)

transfer syntax

        <networking, protocol> The actual representation of data as it
        is transmitted over a {network} (as opposed to {abstract
        syntax}).

        (1998-05-19)

transfinite induction

        <mathematics> {Induction} over some (typically large)
        {ordinal}.

        (1995-03-30)

transformation

        {program transformation}

transient

        <software> A software object with a short and limited lifetime
        which is not saved for later reuse.

        (1998-04-19)

transistor

        <electronics> A three terminal {semiconductor} amplifying
        device, the fundamental component of most active electronic
        circuits, including digital electronics.  The transistor was
        invented on 1947-12-23 at {Bell Labs}.

        There are two kinds, the {bipolar transistor} (also called the
        junction transistor), and the {field effect transistor} (FET).

        Transistors and other components are interconnected to make
        complex {integrated circuit}s such as {logic gate}s,
        {microprocessor}s and memory.

        (1995-10-05)

Transistor-Transistor Logic

        (TTL) A common semiconductor technology for building discrete
        digital logic integrated circuits.  It originated from {Texas
        Instruments} in 1965.

        There have been several series of TTL logic:

         7400:  10 ns propagation time, 10 mW/gate power consumption,
                obsolete;

         74L00: Low power: higher resistances, less dissipation
                (1 mW), longer propagation time (30 ns);

         74H00: High power: lower resistances, more dissipation: less
                sensitivity for noise;

         74S00: Schottky-clamped: faster switching (3 ns, 19 mW) by
                using Schottky diodes to prevent the transistors from
                saturation;

         74LS00: Low power, Schottky-clamped (10 ns, 2 mW);

         74AS00: Advanced Schottky: faster switching, less
                 dissipation, (1.5 ns, 10 mW);

         74ALS00: Advanced Low power Schottky (4 ns, 1.3 mW).

        For each 74xxx family there is a corresponding 54xxx family.
        The 74 series are specified for operation at 0 - 70 C whereas
        the 54 (military) series can operate at -55 - 125 C

        See also {CMOS}, {ECL}.

TRANSIT

        Subsystem of ICES.  Sammet 1969, p.616.

transitive

        A relation R is transitive if x R y  &  y R z  =>  x R z.
        Equivalence relations, pre-, partial and total orders are all
        transitive.

transitive closure

        The transitive closure R* of a relation R is defined by

                x R y => x R* y
                x R y  and  y R* z => x R* z

        I.e. elements are related by R* if they are related by R
        directly or through some sequence of intermediate related
        elements.

        E.g. in graph theory, if R is the relation on nodes "has an
        edge leading to" then the transitive closure of R is the
        relation "has a path of zero or more edges to".  See also
        Reflexive transitive closure.

transit network

        A {network} which passes traffic between other networks in
        addition to carrying traffic for its own {host}s.  It must
        have paths to at least two other networks.

        See also {backbone}, {stub}.

        (1995-01-30)

Translation Look-aside Buffer

        <storage, architecture> (TLB) A table used in a {virtual
        memory} system, that lists the {physical address} {page}
        number associated with each {virtual address} {page} number.
        A TLB is used in conjunction with a {cache} whose tags are
        based on virtual addresses.  The virtual address is presented
        simultaneously to the TLB and to the cache so that cache
        access and the virtual-to-physical address translation can
        proceed in parallel (the translation is done "on the side").
        If the requested address is not cached then the physical
        address is used to locate the data in main memory.  The
        alternative would be to place the translation table between
        the cache and main memory so that it will only be activated
        once there was a cache miss.

        (1995-01-30)

Transmission Control Protocol

        (TCP) The most common {transport layer} {protocol} used on
        {Ethernet} and the {Internet}.  It was developed by {DARPA}.

        TCP is built on top of {Internet Protocol} (IP) and is nearly
        always seen in the combination {TCP/IP} (TCP over IP).  It
        adds {reliable communication}, {flow-control}, {multiplexing}
        and {connection-oriented} communication.  It provides
        {full-duplex}, process-to-process connections.

        Defined in {STD} 7, {RFC} 793.  It is {connection-oriented}
        and {stream-oriented}, as opposed to {User Datagram Protocol}.

transparent

        1. <jargon> Not visible, hidden; said of a system which
        functions in a manner not evident to the user.  For example,
        the {Domain Name System} transparently resolves a {fully
        qualified domain name} into an {Internet address} without the
        user being aware of it.

        Compare this to what {Donald Norman
        (http://www.atg.apple.com/Norman/)} calls "invisibility",
        which he illustrates from the user's point of view:

        "You use computers when you use many modern automobiles,
        microwave ovens, games, CD players and calculators.  You don't
        notice the computer because you think of yourself as doing the
        task, not as using the computer."  ["The Design of Everyday
        Things", New York, Doubleday, 1989, p. 185].

        2. <theory> Fully defined, known, predictable; said of a
        sub-system in which matters generally subject to volition or
        stochastic state change have been chosen, measured, or
        determined by the environment.  Thus for transparent systems,
        output is a known function of the inputs, and users can both
        predict the behaviour and depend upon it.

        (1996-06-04)

Transport Driver Interface

        <networking> (TDI) Developed by {SUN}, {IBM}, and {Microsoft}
        (and others?), the TDI is a {software} {interface} between the
        {protocols} and {application programing interface} layers of
        the {Windows NT network model}.

        (1997-11-05)

transport layer

        <networking> (Or "host-host layer") The middle layer in the
        {OSI} seven layer model.  The transport layer determines how
        to use the {network layer} to provide a virtual error-free,
        point to point connection so that host A can send messages to
        host B and they will arrive un-corrupted and in the correct
        order.  It establishes and dissolves connections between
        hosts.  It is used by the {session layer}.

        An example transport layer {protocol} is {Transmission Control
        Protocol} (TCP).

        {OSI} documents: {ITU} Rec. X.214 (ISO 8072), ITU Rec. X.224
        (ISO 8073).

        (1997-12-07)

Transport Layer Interface

        <networking, programming> (TLI, or "Transport Level
        Interface") A {protocol}-independant interface for accessing
        network facilities, modelled after the {ISO} {transport layer}
        (level 4), that first appeared in {Unix SVR3}.

        TLI is defined by {SVID} as transport mechanism for networking
        interfaces, in preference to {sockets}, which are biased
        towards {IP} and friends.  A disavantage is that a process
        cannot use read/write directly, but has to use backends using
        {stdin} and {stdout} to communicate with the network
        connection.  TLI is implemented in SVR4 using the {STREAMS}
        interface.  It adds no new {system calls}, just a library,
        libnsl_s.a.  The major functions are t_open, t_bind,
        t_connect, t_listen, t_accept, t_snd, t_rcv, read, write.

        According to the {Solaris} t_open {man page}, XTI (X/OPEN
        Transport Interface) evolved from TLI, and supports the TLI
        {API} for compatibility, with some variations on semantics.

        (1999-06-10)

Transport Level Interface

        {Transport Layer Interface}

Transport Service Access Point

        <networking> (TSAP) Part of the {OSI} {IP Presentation
        Addressing schema}.

        A TSAP identifes the {service access point} between the
        {session layer} and the {transport layer}.

        (1999-08-01)

transputer

        (Note lower case) A family of {microprocessor}s from {Inmos}
        with interprocessor links, programmable in {occam}.

        [More details?]

        (1994-11-18)

TRANS-USE

        Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16
        (May 1959).

trap

        1. A program interrupt, usually an interrupt caused by some
        exceptional situation in the user program.  In most cases, the
        OS performs some action, then returns control to the program.

        2. To cause a trap.  "These instructions trap to the monitor."
        Also used transitively to indicate the cause of the trap.
        "The monitor traps all input/output instructions."

        This term is associated with assembler programming
        ("interrupt" or "exception" is more common among {HLL}
        programmers) and appears to be fading into history among
        programmers as the role of assembler continues to shrink.
        However, it is still important to computer architects and
        systems hackers (see {system}, sense 1), who use it to
        distinguish {deterministic}ally repeatable exceptions from
        timing-dependent ones (such as I/O interrupts).

trap door

        Or "trapdoor" 1. {back door}.

        2. {trap-door function}

trap-door function

        A function which is is easy to compute but whose inverse is
        very difficult to compute.  Such functions are {Good Thing}s
        with important applications in {cryptography}, specifically in
        {public-key cryptography}.

trash

        To destroy, e.g. the contents of a data structure.  The most
        common of the family of near-synonyms including {mung},
        {mangle}, and {scribble}.

        (1994-11-03)

Trash-80

        Derogatory name for {Tandy}'s {TRS-80}.

        (1994-11-03)

traveling salesman problem

        <spelling> US spelling of {travelling salesman problem}.

        (1996-12-13)

travelling salesman problem

        <algorithm, complexity> (TSP or "shortest path", US:
        "traveling") Given a set of towns and the distances between
        them, determine the shortest path starting from a given town,
        passing through all the other towns and returning to the first
        town.

        This is a famous problem with a variety of solutions of
        varying complexity and efficiency.  The simplest solution (the
        {brute force} approach) generates all possible routes and
        takes the shortest.  This becomes impractical as the number of
        towns, N, increases since the number of possible routes is
        !(N-1).  A more intelligent {algorithm} (similar to {iterative
        deepening}) considers the shortest path to each town which can
        be reached in one hop, then two hops, and so on until all
        towns have been visited.  At each stage the algorithm
        maintains a "frontier" of reachable towns along with the
        shortest route to each.  It then expands this frontier by one
        hop each time.

        {Pablo Moscato's TSP bibliography
        (http://www.densis.fee.unicamp.br/~moscato/TSPBIB_home.html)}.
        {Fractals and the TSP
        (http://www.ing.unlp.edu.ar/cetad/mos/FRACTAL_TSP_home.html)}.

        (1998-03-24)

trawl

        To sift through large volumes of data (e.g. {Usenet} postings,
        FTP archives, or the {Jargon File}) looking for something of
        interest.
tree

        <mathematics, data> A {directed acyclic graph}; i.e. a graph
        wherein there is only one route between any pair of nodes, and
        there is a notion of "toward top of the tree" (i.e. the {root
        node}), and its opposite direction, toward the {leaves}.  A
        tree with n nodes has n-1 edges.

        Although maybe not part of the widest definition of a tree,
        it's a common constraint on trees that no node can have more
        than one parent.  Moreover, for some applications, it is
        necessary to consider a node's {daughter} nodes to be an
        ordered {list}, instead of merely a {set}.

        As a data structure in computer programs, trees are used in
        everything from {b-trees} in {databases} and {file systems}, to
        {game trees} in {game theory}, to {syntax trees} in a human or
        computer {languages}.

        (1998-11-12)

tree-killer

        <jargon, abuse> (Sun) 1. A printer.

        2. A person who wastes paper.  This epithet should be
        interpreted in a broad sense; "wasting paper" includes the
        production of {spiffy} but {content-free} documents.  Thus,
        most {suits} are tree-killers.

        The negative loading of this term may derive from
        J.R.R. Tolkien's "Lord of the Rings" in which Treebeard the
        Ent uses it to refer to the orcs' master, Saruman of Isengard.
        Saruman represents, among other things, technology at its most
        misguided.

        (1998-03-18)

TREET

        E.C. Haines, 1964.  An experimental variant of LISP1.5,
        implemented on the STRETCH computer.  Basic structure was a
        trinary tree.

        ["The TREET {Time-Sharing} System", H.A. Bayard et al, Proc
        2nd Symp Symb and Alg Manip, ACM (Mar 1971)].

        [Sammet 1969, pp.457-461].

TREETRAN

        A {FORTRAN IV} subroutine package for tree manipulation.

treeware

        <jargon> /tree'weir/ Printouts, books, {documentation} and
        other information media made from pulped dead trees by a
        {tree-killer}.

        (1999-01-15)

Trellis

        1. An {object-oriented} language from the University of
        Karlsruhe(?) with {static type-checking} and {encapsulation}.

        2. An {object-oriented} application development system from
        {DEC}, based on the {Trellis} language.  (Formerly named Owl).

        E-mail: Jerry Smith <smith@pipe.enet.dec.com>

        ["Persistent and Shared Objects in trellis/owl", P. O'Brien et
        al, Proc 1986 IEEE Workshop on Object-Oriented Database
        Systems, IEEE, NY 1986].

Trellis Code Modulation

        (TCM) A modulation technique with hardware {error detection
        and correction}.

        [Details?]

        (1995-02-22)

Trident

        <company> A {video card} manufacturer.

        [More info?]

        (1997-07-16)

trigger

        <database> An action causing the automatic invocation of a
        procedure, for instance to preserve {referential integrity}.
        A triggers goes into effect when a user attempts to modify
        data with an insert, delete, or update command.  A trigger can
        instruct the system to take any number of actions when a
        specified change is attempted.  By preventing incorrect,
        unauthorized, or inconsistent changes to data, triggers help
        maintain the integrity of the database.

        [Sybase SQL Server Release 10.0 Transact-SQL User's Guide].

        (1995-02-22)

trigger finger

        {overuse strain injury}

TRIGMAN

        A system for {symbolic mathematics}, especially celestial
        mechanics.

        (1994-12-14)

trillion

        <mathematics> In Britain, France, and Germany, 10^18 or a
        million cubed.

        In the USA and Canada, 10^12.

        [Elsewhere?]

        (1996-10-03)

Trilogy

        A strongly typed Logic programming language with numerical
        constraint-solving over the natural numbers, developed by Paul
        Voda <voda@mff.uniba.cs> of {UBC} in 1988.  Trilogy is
        syntactically a blend of {Prolog}, {Lisp} and {Pascal}.  It
        contains three types of {clause}s: {predicate}s
        ({backtracking} but no assignable variables), procedures
        (if-then-else but no backtracking; assignable variables), and
        subroutines (like procedures, but with input and system calls;
        callable only from top level or from other subroutines).

        ["The Constraint Language Trilogy: Semantics and
        Computations", P. Voda <voda@wimsey.cs.ubc.ca>, Complete Logic
        Systems, 741 Blueridge Ave, North Vancouver BC, V7R 2J5].

        [Papers by Voda].

        [BYTE review].

triple DES

        <cryptography> A {product cipher} which, like {DES}, operates
        on 64-bit data blocks.  There are several forms, each of which
        uses the DES cipher 3 times.  Some forms use two 56-bit keys,
        some use three.  The DES "modes of operation" may also be used
        with triple-DES.

        (1995-05-11)

tri state

        <hardware> A feature of some {digital} electronic devices
        which allows a connector (pin) to either act as a normal
        output, driving a signal onto a line, or to be "tri stated" -
        set to a high-impedance ("high Z") condition.  This allows
        other outputs to drive signals onto the line.  Often the same
        connector also functions as an input when its output circuitry
        is tri stated.

        Tri-state outputs are typically used for the connection of
        several digital circuits to a shared {bus} onto which any one
        of them may output data for the others to input.

        (1996-07-26)

trit

        <unit> /trit/ (By analogy with "{bit}") One base-3 digit; the
        amount of information conveyed by a selection among one of
        three equally likely outcomes.  Trits arise, for example, in
        the context of a {flag} that should actually be able to assume
        *three* values - such as yes, no, or unknown.  Trits are
        sometimes jokingly called "3-state bits".  A trit may be
        semi-seriously referred to as "a bit and a half", although it
        is linearly equivalent to 1.5849625 bits (that is, log2(3)
        bits).

        (1995-05-11)

Triton

        <processor> {Intel}'s {Pentium} {core} logic {chip set}.  In
        addition to the traditional features, this chip set supports:
        {EDO DRAM} to increase the {bandwidth} of the {DRAM}
        interface; "{pipelined} {burst SRAM}" for a cheaper, faster
        {second level cache}; "{bus master} {IDE}" control logic to
        reduce processor load; a plug and play port for easy
        implementation of functions such as audio.

        The Triton I chipset (official name 82430FX) consists of 4
        chips: one 82437FX TSC (Triton Sysetm Controller), two 82438FX
        TDP (Triton Data Path), and one 82371FB PIIX (PCI IDE
        Xcellerator).  It supports {PB Cache}, {EDO DRAM}, and a
        maximum {PCI} and memory burst data transfer rate of 100
        {megabytes} per second.

        There are also {Moble Triton} (82430MX), {Triton II}
        (82430HX), and the {Triton VX} (82430VX) chip sets.

        {Introduction
        (http://www.asus.com.tw/Products/TB/triton-intro.html)}.

        (1996-04-03)

Triton II

        <processor> (Official name 82430HX) A version of {Intel}'s
        {Triton} processor chip set with all the features of the
        Triton I plus support for {ECC}, {parity RAM}, two-way {SMP},
        {USB}, and {Concurrent PCI} to improve speed.

        It consists of one 82439HX TXC and one 82371SB PIIX3.

        (1996-04-03)

Triton VX

        <processor> (Official name 82430VX) A version of {Intel}'s
        {Triton} processor chip set with all the features of the
        Triton I plus support for {SDRAM}, {USB}, and a {UMA} option.

        Triton VX consists of one 82437VX TVC, two 82438VX TVP, and
        one 82371SB PIIX3.

        (1996-04-03)

Trivial File Transfer Protocol

        <networking> (TFTP) A simple file transfer protocol used for
        {down-load}ing {boot code} to {diskless workstations}.

        TFTP is defined in {RFC 1350}.

        [Details?  Other uses?  Relationship to {FTP}?]

        (1997-08-30)

TRO

        {tail recursion optimisation}

troff

        <text, tool> /T'rof/ or /trof/ The grey eminence of {Unix}
        text processing; a formatting and phototypesetting program,
        written originally in {PDP-11} {assembly code} and then in
        barely-structured early {C} by the late Joseph Ossanna,
        modelled after the earlier {ROFF} which was in turn modelled
        after {Multics}' {RUNOFF} by Jerome Saltzer (*that* name came
        from the expression "to run off a copy").  A companion
        program, {nroff}, formats output for terminals and line
        printers.

        In 1979, Brian Kernighan modified troff so that it could drive
        phototypesetters other than the Graphic Systems CAT.  His
        paper describing that work ("A Typesetter-independent troff",
        AT&T CSTR #97) explains troff's durability.  After discussing
        the program's "obvious deficiencies - a rebarbative input
        syntax, mysterious and undocumented properties in some areas,
        and a voracious appetite for computer resources" and noting
        the ugliness and extreme hairiness of the code and internals,
        Kernighan concludes:

        None of these remarks should be taken as denigrating
        Ossanna's accomplishment with TROFF.  It has proven a
        remarkably robust tool, taking unbelievable abuse from a
        variety of preprocessors and being forced into uses that
        were never conceived of in the original design, all with
        considerable grace under fire.

        The success of {TeX} and desktop publishing systems have
        reduced troff's relative importance, but this tribute
        perfectly captures the strengths that secured troff a place in
        hacker folklore; indeed, it could be taken more generally as
        an indication of those qualities of good programs that, in the
        long run, hackers most admire.

        {groff} is {GNU}'s implementation of {roff} in {C++}.

        (1995-03-21)

troglodyte

        <jargon> (Commodore) 1. A hacker who never leaves his cubicle.
        The term "Gnoll" (from Dungeons & Dragons) is also reported.

        2. A curmudgeon attached to an obsolescent computing
        environment.  The combination "ITS troglodyte" was flung
        around some during the {Usenet} and {e-mail} wringle-wrangle
        attending the 2.x.x revision of the {Jargon File}; at least
        one of the people it was intended to describe adopted it with
        pride.

        (1995-01-11)

troglodyte mode

        <jargon> (Rice University) Programming with the lights turned
        off, sunglasses on, and the terminal inverted (black on white)
        because you've been up for so many days straight that your
        eyes hurt (see {raster burn}).  Loud music blaring from a
        stereo stacked in the corner is optional but recommended.

        See {larval stage}, {hack mode}.

        (1995-03-21)

Trojan horse

        <application, security> (Coined by
        {MIT}-hacker-turned-NSA-spook Dan Edwards) A malicious,
        security-breaking program that is disguised as something
        benign, such as a directory lister, archiver, game, or (in one
        notorious 1990 case on the Mac) a program to find and destroy
        {virus}es!  A Trojan horse is similar to a {back door}.

        See also {RFC 1135}, {worm}, {phage}, {mockingbird}.

        (1995-03-21)

TROLL

        An {array} language for {continuous simulation}, econometric
        modeling or statistical analysis.

        ["TROLL Reference Manual", D0062, Info Proc Services, MIT
        (1973-76)].

troll

        An {electronic mail} message, {Usenet} posting or other
        (electronic) communication which is intentionally incorrect,
        but not overtly controversial (compare {flame bait}), or the
        act of sending such a message.  Trolling aims to elicit an
        emotional reaction from those with a hair-trigger on the reply
        key.  A really subtle troll makes some people lose their
        minds.

        (1994-10-17)

TRON

        <project> A project headed by Dr. Ken Sakamura of the
        {University of Tokyo} and supported by most of the major
        Japanese computer makers and {NTT}.

        (1995-03-15)

tron

        <jargon> ({NRL}, {CMU}, probably from the film "Tron") To
        become inaccessible except via {electronic mail} or {talk}
        especially when one is normally available via telephone or in
        person.

        Compare {spod}.

        (1994-11-03)

Trouble Came Back

        <jargon> (TCB) An {IBM} term for an intermittent or
        difficult-to-reproduce problem that has failed to respond to
        neglect or {shotgun debugging}.

        Compare {heisenbug}.

        (1998-07-02)

TRS

        {term rewriting system}

TRS-80

        <computer> A series of {personal computers} sold by {Tandy
        Radio Shack}.  The '80' refers to the use of {Zilog Z-80}
        processor (NOT {Intel 80x8x}).

        There were 7.5 computers in the TRS-80 line: Models I, II,
        III, 4, 100, 102, 200.  The Model 4P was a portable version of
        the Model 4 with no tape drive -- only 2 1/2-height single
        sided disk drives.

        Later models that Radio Shack produced were not TRS-80
        machines -- they were based on the {Intel 80x8x} architecture.
        These included Tandy 1000, Tandy 2000, Tandy 3000, and others.
        The 1000 had a proprietary Color card.  The 2000 was a
        powerful machine for its time, but was based on the {Intel
        80186}, so when {IBM} didn't build a computer based on this
        chip, it failed.  It was used to design a boat for the
        America's Cup.

        The TRS-80 {GUI}, DeskMate, was proprietary, but no more than
        {Windoze} at the time.

        Many joke about "{TRaSh-80}" machines but several models were
        in fact classics of their time.

        (1996-02-18)

True BASIC

        <language> A compiled {BASIC}, by John Kemeny and Thomas
        E. Kurtz, requiring no {line numbers}.

        (1996-03-24)

true colour

        <graphics> A system where the red, green, and blue components
        of a colour are stored in {display memory}, as opposed to
        storing {logical colours} and using a {colour palette} to
        convert them to red, green, blue components.

        The advantage of true colour over a palette is that it does
        not restrict the range of colours which can be displayed on
        screen simultaneously.  For example, if eight bits are used to
        store each component of each {pixel} then a total of 2^24
        (about 17 million) different colours can be displayed at once
        which would require a (very expensive) palette with 3 * 2^24
        bytes (about 50 megabytes) of memory.

        The disadvantage of true colour is that image transformations
        which would normally be done by changing the palette must be
        done to every pixel of the image which can be much slower.

        Compare {high colour}.

        (1996-03-24)

true hacker

        <person> (By analogy with "trufan" from SF fandom) One who
        exemplifies the primary values of hacker culture, especially
        competence and helpfulness to other hackers.  A high
        compliment.  "He spent 6 hours helping me bring up UUCP and
        netnews on my FOOBAR 4000 last week - manifestly the act of a
        true-hacker".

        Compare {demigod}, opposite: {munchkin}.

        (1996-01-07)

TrueType

        <text, standard> An {outline font} {standard} first developed
        by {Apple Computer}, and later embraced by {Microsoft}, as a
        competitor to {Adobe Systems, Inc.}'s {PostScript} which is
        still more popular.

        (1995-03-16)

Trumpet

        A {news reader} for {Microsoft Windows}, using the {WinSock}
        library.  There is also an {MS-DOS} version.  Trumpet is
        {shareware} from Australia.

        {(ftp://ftp.utas.edu.au/pc/trumpet)}

        {(ftp://ftp.demon.co.uk/pub/ibmpc/winsock/stacks/trumpwsk/)}

        {news:alt.winsock.trumpet}.

        [Author?]

        (1995-01-12)

TRUSIX

        {TRUSted Unix operating system}

truth table

        <logic> A table listing all possible combinations of inputs
        and the corresponding output of a {Boolean} function such as
        {AND}, {OR}, {NOT}, {IMPLIES}, {XOR}, {NAND}, {NOR}.  Truth
        tables can be used as a means of representing a function or as
        an aid in designing a circuit to implement it.

        (1998-07-30)

TS

        Typed Smalltalk.

        A {Smalltalk} by Ralph Johnson <johnson@speedy.cs.uiuc.edu> of
        the {University of Illinois}.

        ["TS: An Optimising Compiler for Smalltalk", R.E. Johnson et
        al, SIGPLAN Notices 23(11) (Nov 1988)].

        (1995-01-12)

TSAP

        {Transport Service Access Point}

TSEE

        Technical and Engineering Environment: part of the RTEE
        toolset.

Tsim

        {Time Simulator}

TSL-1

        Task Sequencing Language.  Language for specifying sequences
        of tasking events in Ada programs.

        ["Task Sequencing Language for Specifying Distributed Ada
        Systems", D.C. Luckham et al in PARLE: Parallel Architectures
        and Langs Europe, LNCS 259, Springer 1987, pp.444-463].

TSO

        {Time Sharing Option}

TSP

        {travelling salesman problem}

TSR

        {Terminate and Stay Resident}

tt

        <networking> The {country code} for Trinidad and Tobago.

        (1999-01-27)

TTD

        {Telecommunications Device for the Deaf}

TTFN

        <chat> ta-ta for now - goodbye for now.  Used in the UK, USA
        and probably elsewhere.

        (1998-07-02)

TTL

        1. {transistor-transistor logic}.

        2. {Time to Live}.

TTS

        {Text To Speech}

tty

        <hardware> /tit'ee/ ({ITS} pronunciation, but some {Unix}
        people say it this way as well; this pronunciation is not
        considered to have sexual undertones) /T T Y/ 1. A {teletype}
        {terminal}, characterised by a noisy mechanical printer, a
        very limited character set, and poor print quality.  Usage:
        antiquated (like the TTYs themselves).

        See also {bit-paired keyboard}.

        2. (Especially {Unix}) Any terminal at all; sometimes used to
        refer to the particular terminal controlling a given job (it
        is also the name of a Unix command which outputs the name of
        the current controlling terminal).

        3. ({Unix}) Any {serial port}, whether or not the device
        connected to it is a terminal; so called because under Unix
        such devices have names of the form tty*.  Ambiguity between
        senses 2 and 3 is common but seldom bothersome.

        4. A {TDD}.

        (1995-11-23)

TTYL

        <chat> talk to you later.

        (1998-01-18)

TUB

        {Technische Universita't Berlin}.  (Berlin technical
        university).

TUBA

        <networking, protocol> An {Internet} {protocol}, described in
        {RFC 1347}, {RFC 1526} and {RFC 1561}, and based on the {OSI}
        {Connectionless Network Protocol} (CNLP).

        TUBA is one of the proposals for {Internet Protocol Version
        6}.

        (1995-04-03)

tube

        1. <hardware> A {CRT} terminal.  Never used in the mainstream
        sense of TV; real hackers don't watch TV, except for Loony
        Toons, Rocky & Bullwinkle, Trek Classic, the Simpsons, and the
        occasional cheesy old swashbuckler movie.

        2. <electronics> {electron tube}.

        3. <jargon> (IBM) To send a copy of something to someone
        else's terminal.  "Tube me that note."

        (1996-02-05)

tube time

        Time spent at a terminal or console.  More inclusive than
        hacking time; commonly used in discussions of what parts of
        one's environment one uses most heavily.  "I find I'm spending
        too much of my tube time reading mail since I started this
        revision."

Tuckals

        An old statistical package still in use on some {VM}
        computers.

        (1995-11-28)

Tui

        Functional.  "Tui Language Manual", B. Boutel, TR CSD-8-021,
        Victoria U of Wellington, 1988.

Tuki

        An intermediate code for functional languages.  "Another
        Implementation Technique for Applicative Languages", H. Glaser
        et al, ESOP86, LNCS 213, Springer 1986.

tunafish

        <humour, operating system> In hackish lore, refers to the
        mutated punchline of an age-old joke to be found at the bottom
        of the manual pages of "tunefs(8)" in the original {4.2BSD}
        distribution.  The joke was removed in later releases once
        commercial sites started using 4.2.  Tunefs relates to the
        "tuning" of {file-system} parameters for optimum performance,
        and at the bottom of a few pages of wizardly inscriptions was
        a "BUGS" section consisting of the line "You can tune a file
        system, but you can't tunafish".  Variants of this can be seen
        in other BSD versions, though it has been excised from some
        versions by humourless management {droid}s.  The [nt]roff
        source for SunOS 4.1.1 contains a comment apparently designed
        to prevent this: "Take this out and a Unix Demon will dog your
        steps from now until the "time_t's wrap around."

        (1997-01-12)

tune

        <jargon> (From musical, possibly via automotive, usage) To
        {optimise} a program or system for a particular environment,
        especially by adjusting numerical parameters designed as
        {hooks} for tuning, e.g. by changing "#define" lines in C.
        One may "tune for time" (fastest execution), "tune for space"
        (least memory use), or "tune for configuration" (most
        efficient use of hardware).

        See {bum}, {hot spot}, {hand-hacking}.

        (1999-06-05)

tunnelling

        <networking> (US: "tunneling") Encapsulation of {protocol} A
        within protocol B, such that A treats B as though it were a
        {data link layer}.  Tunnelling is used to get data between
        {administrative domains} which use a protocol that is not
        supported by the {internet} connecting those domains.

        (1997-03-26)

TUPLE

        Toyohashi University Parallel Lisp Environment.  A parallel
        Lisp based on KCL.

        ["Memory Management and Garbage Collection of an Extended
        Common Lisp System for Massively Parallel SIMD Architecture",
        Taiichi Yuasa, in Memory Management, IWMM92, Springer 1992,
        490-507].

        (1994-11-08)

tuple

        In {functional language}s, a data object containing two or
        more components.  Also known as a product type or pair,
        triple, quad, etc.  Tuples of different sizes have different
        types, in contrast to lists where the type is independent of
        the length.  The components of a tuple may be of different
        types whereas all elements of a list have the same type.
        Examples of tuples in {Haskell} notation are (1,2),
        ("Tuple",True), (w,(x,y),z).  The degenerate tuple with zero
        components, written (), is known as the unit type since it has
        only one possible value which is also written ().

        The implementation of tuples in a language may be either
        "{lifted}" or not.  If tuples are lifted then (bottom,bottom)
        /= bottom and the evaluation of a tuple may fail to terminate.
        E.g. in Haskell:

                f (x,y) = 1    -->    f bottom = bottom
                                      f (bottom,bottom) = 1

        With lifted tuples, a tuple pattern is refutable.  Thus in
        Haskell, {pattern matching} on tuples is the same as pattern
        matching on types with multiple constructors ({algebraic data
        type}s) - the expression being matched is evaluated as far as
        the top level constructor, even though, in the case of tuples,
        there is only one possible constructor for a given type.

        If tuples are unlifted then (bottom, bottom) = bottom and
        evaluation of a tuple will never fail to terminate though any
        of the components may.  E.g. in {Miranda}:

                f (x,y) = 1    -->    f bottom = 1
                                      f (bottom,bottom) = 1

        Thus in Miranda, any object whose type is compatible with a
        tuple pattern is assumed to match at the top level without
        evaluation - it is an {irrefutable} pattern.  This also
        applies to user defined data types with only one constructor.
        In Haskell, patterns can be made irrefutable by adding a "~"
        as in

                f ~(x,y) = 1.

        If tuple constructor functions were {strict} in all their
        arguments then (bottom,x) = (x,bottom) = bottom for any x so
        matching a refutable pattern would fail to terminate if any
        component was bottom.

tuple calculus

        <database> A form of {relational calculus} in which a
        variable's only permitted values are {tuples} of a given
        {relation}.

        {Codd}'s unimplemented language {ALPHA} and the subsequent
        {QUEL} are examples of the tuple calculus.

        (1998-10-05)

Tuple Space Smalltalk

        ["Using Tuple Space Communication in Distributed
        Object-Oriented Languages", S. Matsuoka et al, SIGPLAN Notices
        23(11):276-284 (Nov 1988)].

        (1994-11-08)

tupling

        A {program transformation} where several results are returned
        from a single traversal of a data structure.  E.g.

                mean l = sum l / length l

                        ==>

                mean l = s/n
                         where
                         (s,n) = sumLen l

                sumLen []     = (0,0)
                sumLen (x:xs) = (s+x, n+1)
                                where
                                (s,n) = sumLen xs

        In {procedural} languages this technique is known as
        {horizontal loop combination} because it uses one loop to
        calculate several results.

        Another form of tupling transformation is used to avoid
        repeated evaluation where a function generates several
        identical calls to itself.  By analysing the pattern of
        recursion (see {descent function}) it is possible to arrange
        for these identical calls to share results.  E.g.

                fib 0 = 1
                fib 1 = 1
                fib n = fib (n-1) + fib (n-2)

                        ==>

                fib n = v where (_,v) = fibt n
                fibt 0 = (1,1)
                fibt n = (u+v,u) where (u,v) = fibt (n-1)

        (1995-01-12)

Turbo C

        <language> {Borland}'s {C} {compiler} for {IBM PC}s.

        Turbo C, version 1.0, was introduced by Borland in 1987.  It
        offered the first integrated edit-compile-run development
        environment for {C} on {IBM PC}s.  It ran in 384KB of memory.
        It allowed inline assembly, supported all memory models, and
        offered optimisations for speed, size, {constant folding}, and
        {jump elimination}.

        Version 1.5 shipped on five 360 KB diskettes of uncompressed
        files, and came with sample C programs, including a stripped
        down spreadsheet called mcalc.

        Turbo C 2.0 has a debugger, a fast assembler, and an extensive
        graphics library.

        Turbo C has been largely supplanted by {Turbo C++}, introduced
        circa September, 1990 for both {MS-DOS} and {Microsoft
        Windows}.

        ["Compiling the facts on C", Richard Hale Shaw, PC Magazine,
        September 13, 1988, pages 115-183].

        (1996-10-31)

Turbo Debugger

        <programming> A {source-level debugger} designed for use with
        {Borland} and other {compilers}.

        {(http://www.borland.com/)}.

        (1999-04-23)

turbo nerd

        {computer geek}

Turbo Pascal

        <language, product> {Borland International}'s {Pascal}.
        Perhaps the first integrated development environment for
        {MS-DOS}.

        Versions 1.0-3.0: standard Pascal with a few extensions
        Versions 4.0 (1987) and 5.0: {separate compilation}.  Version
        5.5: {object-oriented}.  Version 6.0: {Turbo Vision} OOP
        library.

        {Home (http://www.borland.com/Product/ProdInfo.html)}

        {tptc} translates Turbo Pascal to {Turbo C}.

        (1995-05-01)

Turbo Prolog

        A {strongly typed} Prolog-like {logic programming} language.
        1986.  It has user-defined domains.  Programs are arranged in
        sections: DOMAINS, CLAUSES, PREDICATES, DATABASE and GOAL.  It
        is currently known as {PDC Prolog} and is distributed by
        {Prolog Development Center}, Atlanta +1 404 873 1366.  E-mail:
        <pdc@mcimail.com>.

Turing

        1. {Alan Turing}.

        2. R.C. Holt <holt@csri.toronto.edu> & J.R. Cordy
        <cordy@qucis.queensu.ca>, U Toronto, 1982.  Descendant of
        Concurrent Euclid, an airtight super-Pascal.  Used mainly for
        teaching programming at both high school and university level.

        Available from Holt Software Assocs, Toronto.

        Versions for Sun, {MS-DOS}, Mac, etc.

        E-mail: <distrib@turing.toronto.edu>.

        ["Turing Language Report", R.C. Holt & J.R. Cordy, Report
        CSRI-153, CSRI, U Toronto, Dec 1983].

        ["The Turing Programming Language", R.C. Holt & J.R. Cordy,
        CACM 31(12) (Dec 1988)].

Turing Machine

        <computability> A hypothetical machine defined in 1935-6 by
        {Alan Turing} and used for {computability theory} proofs.  It
        consists of an infinitely long "tape" with symbols (chosen
        from some {finite set}) written at regular intervals.  A
        pointer marks the current position and the machine is in one
        of a finite set of "internal states".  At each step the
        machine reads the symbol at the current position on the tape.
        For each combination of current state and symbol read, a
        program specifies the new state and either a symbol to write
        to the tape or a direction to move the pointer (left or right)
        or to halt.

        In an alternative scheme, the machine writes a symbol to the
        tape *and* moves at each step.  This can be encoded as a write
        state followed by a move state for the write-or-move machine.
        If the write-and-move machine is also given a distance to move
        then it can emulate an write-or-move program by using states
        with a distance of zero.  A further variation is whether
        halting is an action like writing or moving or whether it is a
        special state.

        [What was Turing's original definition?]

        Without loss of generality, the symbol set can be limited to
        just "0" and "1" and the machine can be restricted to start on
        the leftmost 1 of the leftmost string of 1s with strings of 1s
        being separated by a single 0.  The tape may be infinite in
        one direction only, with the understanding that the machine
        will halt if it tries to move off the other end.

        All computer {instruction set}s, {high level language}s and
        computer architectures, including {parallel processor}s, can
        be shown to be equivalent to a Turing Machine and thus
        equivalent to each other in the sense that any problem that
        one can solve, any other can solve given sufficient time and
        memory.

        Turing generalised the idea of the Turing Machine to a
        "Universal Turing Machine" which was programmed to read
        instructions, as well as data, off the tape, thus giving rise
        to the idea of a general-purpose programmable computing
        device.  This idea still exists in modern computer design with
        low level {microcode} which directs the reading and decoding
        of higher level {machine code} instructions.

        A {busy beaver} is one kind of Turing Machine program.

        Dr. Hava Siegelmann of {Technion} reported in Science of 28
        Apr 1995 that she has found a mathematically rigorous class of
        machines, based on ideas from {chaos} theory and {neural
        network}s, that are more powerful than Turing Machines.  Sir
        Roger Penrose of {Oxford University} has argued that the brain
        can compute things that a Turing Machine cannot, which would
        mean that it would be impossible to create {artificial
        intelligence}.  Dr. Siegelmann's work suggests that this is
        true only for conventional computers and may not cover {neural
        network}s.

        See also {Turing tar-pit}, {finite state machine}.

        (1995-05-10)

Turingol

        <language> A {high-level language} for programming {Turing
        Machine}s by {Donald Knuth}.  It was the subject of the first
        construction of a nontrivial {attribute grammar}.

        ["Semantics of Context-Free Languages", D. Knuth, Math Sys Thy
        2:127-145 (1975)].

        (1995-10-08)

Turing Plus

        Systems programming language, a concurrent descendant of
        Turing.

        ["The Turing Plus Report", R.C. Holt & J.R. Cordy, CSRI, U
        Toronto, Feb 1987].

        Available from Holt Software Assocs, Toronto
        <distrib@hsa.on.ca>.

Turing tar-pit

        A place where anything is possible but nothing of interest is
        practical.  {Alan M. Turing} helped lay the foundations of
        computer science by showing that all machines and languages
        capable of expressing a certain very primitive set of
        operations are logically equivalent in the kinds of
        computations they can carry out, and in principle have
        capabilities that differ only in speed from those of the most
        powerful and elegantly designed computers.  However, no
        machine or language exactly matching Turing's primitive set
        has ever been built (other than possibly as a classroom
        exercise), because it would be horribly slow and far too
        painful to use.

        A "Turing tar-pit" is any computer language or other tool that
        shares this property.  That is, it's theoretically universal
        but in practice, the harder you struggle to get any real work
        done, the deeper its inadequacies suck you in.  Compare
        {bondage-and-discipline language}.

        A tar pit is a geological occurence where subterranean tar
        leaks to the surface, creating a large puddle (or pit) of tar.
        Animals wandering or falling in get stuck, being unable to
        extricate themselves from the tar.  La Brea, California, has a
        museum built around the fossilized remains of mammals and
        birds found in such a tar pit.

        (1998-06-27)

Turing test

        <artificial intelligence> A criterion proposed by {Alan
        Turing} in 1950 for deciding whether a computer is
        intelligent.  Turing called it "the Imitation Game" and
        offered it as a replacement for the question, "Can machines
        think?"

        A human holds a written conversation on any topic with an
        unseen correspondent (nowadays it might be by {electronic
        mail} or {chat}).  If the human believes he is talking to
        another human when he is really talking to a computer then the
        computer has passed the Turing test and is deemed to be
        intelligent.

        Turing predicted that within 50 years (by the year 2000)
        technological progress would produce computing machines with a
        capacity of 10**9 bits, and that with such machinery, a
        computer program would be able to fool the average questioner
        for 5 minutes about 70% of the time.

        The {Loebner Prize} is a competition to find a computer
        program which can pass an unrestricted Turing test.

        {Julia (http://fuzine.mt.cs.cmu.edu/mlm/julia.html)} is a
        program that attempts to pass the Turing test.

        See also {AI-complete}.

        (1995-01-04)

turist

        /too'rist/ Variant spelling of {tourist}.  Possibly influenced
        by {luser} and "{Turing}".

TURN

        <messaging, protocol> An {SMTP} command with which a {client}
        asks the {server} to open an SMTP connection to the client,
        thus reversing their roles.

        Superceded by {ETRN}.

        (1997-11-21)

turn-key

        <jargon, application> A term which describes a system
        (hardware and software) which can be used for a specific
        application without requiring further programming or software
        installation.  The user can just "turn the key" (switch it on)
        and use it.

        (1995-02-06)

TUTOR

        A Scripting language on {PLATO} systems from {CDC}.

        ["The TUTOR Language", Bruce Sherwood, Control Data, 1977].

TUXEDO

        <database, networking> A {Database Transaction Monitor}
        ("{Middleware}") offered by {Novell, Inc.}

        {Home (http://tuxedo.novell.com/tree.htm)}

        (1996-02-22)

TV

        {television}

tv

        <networking> The {country code} for Tuvalu.

        Heavily used for {vanity domains} by TV stations.

        (1999-01-27)

tw

        <networking> The {country code} for Taiwan.

        (1999-01-27)

TWAIN

        Technology Without An Important Name (or maybe "Interesting").

        An {open} {standard} industry interface that directly acquires
        image data from external sources such as {scanner}s without
        forcing you to leave the software application.  Used under
        {Microsoft} {Windows} 3 and on the {Macintosh}.

        [More detail?  On-line spec?  Other OSes?  Correct expansion?]

        (1995-05-18)

tweak

        1. To change slightly, usually in reference to a value.  Also
        used synonymously with {twiddle}.  If a program is almost
        correct, rather than figure out the precise problem you might
        just keep tweaking it until it works.  See {frobnicate} and
        {fudge factor}; also see {shotgun debugging}.

        2. To {tune} or {bum} a program; preferred usage in the UK.

tweening

        <graphics> An {interpolation} technique where an {animation}
        program generates extra frames between the key frames that the
        user has created.  This gives smoother animation without the
        user having to draw every frame.

        A scene is described by a mathematical model - a set of two-
        or three-dimensional objects whose positions in are given by
        sets of coordinates.  Tweening uses mathematical formulae to
        generate these coordinates at a sequence of discrete times.
        The simplest system would move each point at a constant rate
        in a straight line between its initial and final positions,
        though other kinds of path are possible.  The coordinates at
        each time step are used to generate (or "render") a
        two-dimensional image of the scene which forms one "frame" of
        the animation.

        Tweening is similar to {morphing} except that morphing is
        usually performed by interpolating between corresponding
        points marked by the user on two images, rather than between
        two configurations of a model.

        (1995-04-04)

tweeter

        {woofer}

TWENEX

        <operating system> /twe'neks/ The TOPS-20 {operating system}
        by {DEC} - the second proprietary OS for the {PDP-10} -
        preferred by most PDP-10 hackers over TOPS-10 (that is, by
        those who were not {ITS} or {WAITS} partisans).  TOPS-20 began
        in 1969 as {Bolt, Beranek & Newman}'s {TENEX} operating system
        using special paging hardware.  By the early 1970s, almost all
        of the systems on the {ARPANET} ran TENEX.  DEC purchased the
        rights to TENEX from BBN and began work to make it their own.
        The first in-house code name for the operating system was
        VIROS (VIRtual memory Operating System); when customers
        started asking questions, the name was changed to SNARK so DEC
        could truthfully deny that there was any project called VIROS.
        When the name SNARK became known, the name was briefly
        reversed to become KRANS; this was quickly abandoned when
        someone objected that "krans" meant "funeral wreath" in
        Swedish (though some Swedish speakers have since said it means
        simply "wreath"; this part of the story may be apocryphal).

        Ultimately DEC picked TOPS-20 as the name of the operating
        system, and it was as TOPS-20 that it was marketed.  The
        hacker community, mindful of its origins, quickly dubbed it
        TWENEX (a contraction of "twenty TENEX"), even though by this
        point very little of the original TENEX code remained
        (analogously to the differences between AT&T V6 Unix and BSD).
        DEC people cringed when they heard "TWENEX", but the term
        caught on nevertheless (the written abbreviation "20x" was
        also used).  TWENEX was successful and very popular; in fact,
        there was a period in the early 1980s when it commanded as
        fervent a culture of partisans as Unix or ITS - but DEC's
        decision to scrap all the internal rivals to the VAX
        architecture and its relatively stodgy VMS OS killed the
        DEC-20 and put a sad end to TWENEX's brief day in the sun.
        DEC attempted to convince TOPS-20 users to convert to {VMS},
        but instead, by the late 1980s, most of the TOPS-20 hackers
        had migrated to Unix.

        (1995-04-01)

Twente Compiler Generator System

        <language, tool> (TCGS) A {compiler generator} developed at
        the {University of Twente}, The Netherlands.

        (1998-04-27)

Twentel

        A {functional language}.

        ["The TWENTEL System (Version 1).", H. Kroeze, CS Dept TR, U
        Twente, 1986].

twiddle

        1. The tilde character ("~", ASCII 126).  Also called
        "squiggle", "sqiggle" (sic - pronounced /skig'l/), and
        "twaddle", but twiddle is the most common term.

        2. A small and insignificant change to a program.  Usually
        fixes one bug and generates several new ones (see also
        {shotgun debugging}).

        3. To change something in a small way.  Bits, for example, are
        often twiddled.  Twiddling a switch or knob implies much less
        sense of purpose than toggling or {tweak}ing it; see
        {frobnicate}.  {Bit twiddling} connotes aimlessness, and at
        best doesn't specify what you're doing to the bit; to
        "{toggle} a bit" has a more specific meaning.

        (1995-01-31)

TWIG

        Tree-Walking Instruction Generator.

        A {code generator} language.  {ML-Twig} is an {SML/NJ}
        variant.

        ["Twig Language Manual", S.W.K. Tijang, CS TR 120, Bell Labs,
        1986].

        (1995-01-31)

twilight zone

        [IRC]  Notionally, the area of cyberspace where {IRC}
        operators live.  An {op} is said to have a "connection to the
        twilight zone".

twink

        /twink/ [UCSC] Equivalent to {read-only user}.  Also reported
        on the {Usenet} group soc.motss; may derive from gay slang for
        a cute young thing with nothing upstairs (compare mainstream
        "chick").

twinning

        <storage> Keeping a {mirror} of a {magnetic tape}.

        (1997-07-18)

twip

        <unit, graphics> (TWentIeth of a Point) 1/1440th of an inch,
        1/20 of a printer's {point}.  There are thus 1440 twips to an
        inch or about 567 twips to a centimeter.

        This unit of measurement seems only to have seen use in
        {Microsoft} formats and products- notably {Rich Text Format},
        {Visual BASIC}, and {Visual C++}.

        (26 July 1996)

        (1997-07-18)

twirling baton

        <graphics> The overstrike sequence -/|\-/|\- which produces an
        animated twirling baton.  If you output it with a single
        backspace between characters, the baton spins in place.  If
        you output the sequence BS SP between characters, the baton
        spins from left to right.  If you output BS SP BS BS between
        characters, the batton spins from right to left.

        The twirling baton was a popular component of animated
        signature files on the pioneering {PLATO} educational
        {time-sharing} system.  The "{archie}" {Internet} service is
        perhaps the best-known baton program today; it uses the
        twirling baton as an idler indicating that the program is
        working on a query.

        (1995-02-23)

twisted pair

        <hardware> A type of cable in which pairs of conductors are
        twisted together to randomise possible {cross-talk} from
        nearby wiring.  Inadequate twisting is detectable using modern
        cable testing instruments.

        (1995-02-23)

twisted pair only

        <networking> (TPO) A network connection to an {Ethernet}
        {PCMCIA} card using {twisted pair} cable.

        [Other options?]

        (1997-05-12)

twm

        Tab Window Manager.

        A {window manager} for the {X Window System}.  Twm provides
        {titlebar}s, shaped windows, several forms of icon management,
        user-defined macro functions, {click-to-type} and
        pointer-driven {keyboard focus}, and user-specified key and
        pointer button bindings.  It can be extensively configured by
        a startup file.

        Twm was written by Tom LaStrange, {Solbourne Computer}; Jim
        Fulton, MIT {X Consortium}; Steve Pitschke, {Stardent
        Computer}; Keith Packard, MIT X Consortium; Dave Sternlicht,
        MIT X Consortium; Dave Payne, {Apple Computer}.

        An extended version, {vtwm}, provides a {virtual desktop}.

        [Why "Tab"?]

        (1995-02-14)

.twmrc

        <operating system> (Tab Window Manager run commands) The
        configuration file for {twm}.

        See also {rc}.

        (1996-04-09)

two-binary, one-quaternary

        <communications> (2B1Q) A {physical layer} encoding used for
        {Integrated Services Digital Network} {basic rate interface}.
        2B1Q uses four signal levels (1Q), equivalent to two {bit}s
        (2B).

        (1998-10-22)

twonkie

        /twon'kee/ The software equivalent of a Twinkie (a variety of
        sugar-loaded junk food, or (in gay slang) the male equivalent
        of "chick"); a useless "feature" added to look sexy and
        placate a {marketroid}.

        Compare {Saturday-night special}.

        The term may also be related to "The Twonky", title menace of
        a classic SF short story by Lewis Padgett (Henry Kuttner and
        C. L. Moore), first published in the September 1942
        "Astounding Science Fiction" and subsequently much
        anthologised.

        (1994-10-20)

twos complement

        A system used in some computers to represent negative numbers
        in {binary}.  Each {bit} of the number is inverted (zeros are
        replaced with ones and vice versa), as for {ones complement},
        but then one (000...0001) is added (ignoring overflow).  This
        avoids the two representations for zero found in ones
        complement by using all ones to represent -1.

                ...
                000...00011 = +3
                000...00010 = +2
                000...00001 = +1
                000...00000 =  0
                111...11111 = -1
                111...11110 = -2
                111...11101 = -3
                ...

        This representation simplifies the logic required for addition
        and subtraction, at the expense of a little extra complexity
        for negation.

        (1994-10-31)

two-to-the-N

        An amount much larger than {N} but smaller than {infinity}.
        "I have 2-to-the-N things to do before I can go out for lunch"
        means you probably won't show up.

        Numbers of the form two-to-the-N are very important in
        computing because they represent the value of bit N of a
        binary number (counting from 0) and the number of things you
        can count with an N bit number.

        (1994-12-06)

two-valued logic

        <logic> (Commonly known as "{Boolean algebra}") A mathematical
        system concerning the two {truth values}, TRUE and FALSE and
        the functions {AND}, {OR} and {NOT}.  Two-valued logic is one
        of the cornerstones of {logic} and is also fundamental in the
        design of digital electronics and programming languages.

        The term "Boolean" is used here with its common meaning -
        two-valued, though strictly {Boolean algebra} is more general
        than this.

        Boolean functions are ususally represented by {truth tables}
        where "0" represents "false" and "1" represents "true".  E.g.:

                A | B | A AND B
                --+---+--------
                0 | 0 |    0
                0 | 1 |    0
                1 | 0 |    0
                1 | 1 |    1

        This can be given more compactly using "x" to mean "don't
        care" (either true or false):

                A | B | A AND B
                --+---+--------
                0 | x |    0
                x | 0 |    0
                1 | 1 |    1

        Similarly:

                A | NOT A       A | B | A OR B
                --+------       --+---+--------
                0 |  1          0 | 0 |   0
                1 |  0          x | 1 |   1
                                1 | x |   1

        Other functions such as {XOR}, {NAND}, {NOR} or functions or
        more than two inputs can be constructed using combinations of
        AND, OR and NOT.  AND and OR can be constructed from each
        other using {DeMorgan's Theorem}:

                A OR B   =  NOT ((NOT A) AND (NOT B))
                A AND B  =  NOT ((NOT A) OR (NOT B))

        In fact any Boolean function can be constructed using just NOR
        or just NAND using the identities:

                NOT A  =  A NOR A
                A OR B  =  NOT (A NOR B)

        and {DeMorgan's Theorem}.

        (1995-01-05)

TX-0

        The first transistorised computer, the direct ancestor of the
        {PDP-1} built at {MIT}'s Lincoln Lab in 1957.

        (1994-12-06)

TXL

        Tree Transformation Language.

        A hybrid {functional language} and {rule-based language} by
        Jim R. Cordy <cordy@qucis.queensu.ca> et al of {Queen's
        University}, Canada in 1988.  TXL is suitable for performing
        source to source transformations and for rapidly prototyping
        new languages and language processors.  It uses {structural
        transformation}.

        It has also been used to prototype specification languages,
        command languages, and more traditional {program
        transformation} tasks such as {constant folding}, {type
        inference}, source optimisation and {reverse engineering}.
        TXL takes as input an arbitrary {context-free grammar} in
        extended {BNF}-like notation, and a set of show-by-example
        transformation rules to be applied to inputs parsed using the
        {grammar}.

        Version 7.4.  Source in {ANSI C}.

        {(ftp://ftp.qucis.queensu.ca/pub/txl/)}

        ["TXL: A Rapid Prototyping System for Programming Language
        Dialects", J.R. Cordy et al, Comp Langs 16(1) (Jan 1991)].

        ["Specification and Automatic Prototype Implementation of
        Polymorphic Objects in Turing Using the TXL Dialect
        Processor", J.R. Cordy & E.M. Promislow, Proc IEEE Intl Conf
        on Comp Lang ICCL'90 (Mar 1990)].

        (1993-08-04)

TYMCOM-X

        <operating system> {Tymshare}'s {operating system} which ran
        for many years on Tymshare's {PDP-10}s.  It was a descendent
        of {TOPS-10} but had many of the important features of
        {TOPS-20} such as real {paging} and controllable/spawnable
        processes.  TYMCOM-X, one of the best kept secrets in the
        PDP-10 folklore, was written by Bill Weiher, Vance Socci
        <vsocci@vcctech.com>, Allen Ginzburg, Karen Kolling, Art
        Atkinson, Gary Morgenthaler (founder of the company that
        produced {IDRIS}), Todd Corenson and Murray Bowles.  Some
        copies still run today.  Most {TYMNET} development was done
        under TYMCOM-X and Tymshare sold a TYMCOM-X system to {TRW} to
        use in their credit reporting network, which was based on a
        purchased copy of TYMNET circa 1979.

        [E-mail from Vance Socci 1994-05-20].

        (1995-11-09)

TYMNET

        <networking, history> A United States-wide commercial computer
        network, created by {Tymshare, Inc.} some time before 1970,
        and used for {remote login} and file transfer.  In its
        original implementation, it was made up of a number of fairly
        simple circuit-oriented {nodes}, whose circuits were created
        by one central network supervisor writing into the appropriate
        nodes' "permuter tables".  The supervisors also performed
        login validations as well as circuit management.  Circuits
        were character oriented and the network was oriented towards
        interactive character-by-character {full duplex}
        communications circuits.

        There was a clever scheme to switch the echoing function
        between the local node and the host based on whether or not a
        special character had been typed by the user.  Data transfers
        were also possible via "auxiliary circuits".

        The network had more than one supervisor running, but only one
        was active, the others being put to sleep with "sleeping pill"
        messages.  If the active supervisor went down, all the others
        would wake up and battle for control of the network.  After
        the battle, the supervisor with the highest pre-set priority
        would dominate, and the network would then again be controlled
        by only one supervisor.  (During the takeover battle, the net
        consisted of subsets of itself across which new circuits could
        not be built).  Existing circuits were not affected by
        supervisor switches.

        {Tymshare, Inc.} originally wrote and implemented TYMNET to
        provide nationwide access for their {time-sharing} customers.
        When Tymshare started using {Interdata 8/32} {minicomputers}
        as nodes they started developing TYMNET on {PDP-10}.  The
        Tymshare hosts (which ran customer code) were {SDS 940}, {XDS
        940}[?], {DEC} {PDP-10}, and eventually {IBM 370} computers.
        The switches were originally: {Varian Data Machines} 620 [?]
        and {Interdata 8/32}.  PDP-10s supported (and still do in
        1999) cross-platform development and billing.

        Tymshare sold the TYMNET network software to {TRW}, who
        created their own private network (which was not called
        TYMNET).  In about 1979, TYMNET Inc. was spun off from
        Tymshare, Inc. to continue administration and development of
        the network.

        TYMNET was the largest commercial network in the United States
        in its heyday, with nodes in every major US city and a few
        overseas as well.  Tymshare acquired a French subsidiary,
        {SLIGOS}, and had TYMNET nodes in Paris, France.

        TYMNET has outlived its parent company Tymshare and is now
        owned by {MCI}.  As of May 1994 they still ran three {DEC
        KL-10}s under {TYMCOM-X}, although they planned to
        decommission them soon.

        The original creators of TYMNET include: Ann Hardy, Norm
        Hardy, Bill Frantz.  Laroy Tymes (who always insisted that his
        name was NOT the source of the name) wrote the first
        supervisor which ran on the 940.  Joe Rinde made many
        significant technical and marketing contributions.  Laroy
        wrote most of the code of the network proper.  Several others
        wrote code in support of development and administration.  Just
        recently (1999) Laroy, on contract, wrote a version of the
        supervisor to run on {SPARC} hardware.

        The name TYMNET was suggested by Vigril Swearingen[?] in a
        weekly meeting between Tymshare technical and marketing staff
        in about 1970.

        {(http://www.mediacity.com/~norm/ETH.html)}.

        (1999-03-17)

Tymshare, Inc.

        <company> The US company that created the {TYMNET} network.

        (1999-03-17)

type

        <theory, programming> (Or "data type") A set of values from
        which a variable, constant, function, or other expression may
        take its value.

        Types supported by most programming languages include
        {integers} (usually limited to some range so they will fit in
        one {word} of storage), {Booleans}, {real numbers}, and
        characters.  {Strings} are also common, though they may be
        represented as {lists} of characters in some languages.

        If s and t are types, then so is s -> t, the type of
        {functions} from s to t; that is, give them a term of type s,
        functions of type s -> t will return a term of type t.

        Some types are {primitive} - built-in to the language, with no
        visible internal structure - e.g. Boolean; others are
        composite - constructed from one or more other types (of
        either kind) - e.g. lists, {structures}, {unions}.

        Some languages provide {strong typing}, others allow {implicit
        type conversion} and/or {explicit type conversion}.

        (1999-09-19)

type assignment

        A mapping of the {free variable}s of some expression E to
        types.  This is used in {type inference} to deduce the type of
        E and its subexpressions.

type class

        A set of types for which certain operations or {method}s are
        defined.  E.g. the class Number might have methods for addition
        and subtraction.  {Class}es are a feature of {object oriented
        language}s and of the {functional programming} language
        {Haskell}.  See also {inheritance}.

typed lambda-calculus

        <theory> (TLC) A variety of {lambda-calculus} in which every
        term is labelled with a {type}.

        A {function application} (A B) is only synctactically valid if
        A has type s --> t, where the type of B is s (or an {instance}
        or s in a {polymorphic} language) and t is any type.

        If the types allowed for terms are restricted, e.g. to
        {Hindley-Milner types} then no term may be applied to itself,
        thus avoiding one kind of non-terminating evaluation.

        Most {functional programming} languages, e.g. {Haskell}, {ML},
        are closely based on variants of the typed lambda-calculus.

        (1995-03-25)

TypedProlog

        <language> A {strongly typed} {logic programming} language.

        (1995-03-25)

typeface

        <text> The style or design of a {font}.  Other independent
        parameters are size, boldness (thickness of lines), and
        obliqueness (a sheer transformation applied to the characters,
        not to be confused with a specifically designed italic font).

        (1996-08-02)

type inference

        <programming> An {algorithm} for ascribing types to
        expressions in some language, based on the types of the
        constants of the language and a set of type inference rules
        such as

                f :: A -> B,  x :: A
                ---------------------  (App)
                      f x :: B

        This rule, called "App" for application, says that if
        expression f has type A -> B and expression x has type A then
        we can deduce that expression (f x) has type B.  The
        expressions above the line are the premises and below, the
        conclusion.  An alternative notation often used is:

                G |- x : A

        where "|-" is the turnstile symbol ({LaTeX} \vdash) and G is a
        type assignment for the free variables of expression x.  The
        above can be read "under assumptions G, expression x has type
        A".  (As in Haskell, we use a double "::" for type
        declarations and a single ":" for the {infix} list constructor,
        cons).

        Given an expression

                plus (head l) 1

        we can label each subexpression with a type, using type
        variables X, Y, etc. for unknown types:

                (plus :: Int -> Int -> Int)
                        (((head :: [a] -> a) (l :: Y)) :: X)
                        (1 :: Int)

        We then use {unification} on {type variable}s to match the
        {partial application} of plus to its first argument against
        the App rule, yielding a type (Int -> Int) and a substitution
        X = Int.  Re-using App for the application to the second
        argument gives an overall type Int and no further
        substitutions.  Similarly, matching App against the
        application (head l) we get Y = [X].  We already know X = Int
        so therefore Y = [Int].

        This process is used both to infer types for expressions and
        to check that any types given by the user are consistent.

        See also {generic type variable}, {principal type}.

        (1995-02-03)

type scheme

        A typing of an expression which may include {type variable}s.
        E.g.

                \ x . x :: a -> a

        where a is a {generic type variable} which may be instantiated
        to any type.

        (1994-10-31)

typo

        {typographical error}

typographical error

        (typo) An error while inputting text via keyboard, made
        despite the fact that the user knows exactly what to type in.
        This usually results from the operator's inexperience at
        keyboarding, rushing, not paying attention, or carelessness.

        Compare: {mouso}, {thinko}.

        (1996-04-20)

TYPOL

        A specialised {logic programming} language.

        ["TYPOL: A Formalism to Implement Natural Semantics",
        T. Despeyroux, RR 94, INRIA, 1988].

        (1994-10-31)

TZ

        <operating system> The {Unix} {environment variable}
        containing the current {time zone} identifier, e.g. "GMT",
        "EST".

        In early versions of Unix this variable simply contained the
        standard identifier for the zone, an offset in hours from GMT
        and an identifier to use during daylight saving time
        (e.g. "GMT0BST").  In later systems it stores the name of a
        file containing the details of a particular zone such as the
        dates when DST is in force.

        {Unix manual page}: ctime(3V).

        (1997-07-20)

tz

        <networking> The {country code} for Tanzania.

        (1999-01-27)

ua

        <networking> The {country code} for the Ukraine.

        (1999-01-27)

UAN

        User Action Notation.  A notation from {VPI} for
        representation of activity in a {graphical user interface}.

        [H. Hartson et al, ACM Trans on Info Sys, July 1990].

        (1994-10-31)

UART

        {Universal Asynchronous Receiver/Transmitter}

UAW

        <spelling> Misspelling of "{IAW}"?

UBASIC

        Yuji Kida <kida@rkmath.rikkyo.ac.jp>.

        An extension of {BASIC} for {symbolic mathematics} and {number
        theory}.

        UBASIC supports {bignum}s, fractions, complex numbers,
        polynomials and integer factorisation.  It runs under {MS-DOS}
        and is written in {assembly language}.  Current version: 8.

        {(ftp://ftp.simtel.com/math/utk/software/msdos/number.theory/ubasic/)}

        [Review, W.D. Neumann, Notices of AMS 36 (May/June 1989)]

        ["A math-oriented high-precision BASIC", Notices of the A.M.S,
        38 (Mar 1991)].

        (1992-07-06)

UBD

        {User Brain Damage}

ubiquitous computing

        Computers everywhere.  Making many computers available
        throughout the physical environment, while making them
        effectively invisible to the user.  Ubiquitous computing is
        held by some to be the Third Wave of computing.  The First
        Wave was many people per computer, the Second Wave was one
        person per computer.  The Third Wave will be many computers
        per person.  Three key technical issues are: power
        consumption, user interface, and wireless connectivity.

        The idea of ubiquitous computing as invisible computation was
        first articulated by Mark Weiser in 1988 at the Computer
        Science Lab at {Xerox PARC}.

        {(http://www.ubiq.com/hypertext/weiser/weiser.html)}

        (1994-12-23)

uC++

        Micro-C++.  A extension of {C++}, by Peter A Ruhr
        <pabuhr@plg.uwaterloo.ca> of the {University of Waterloo},
        with {light-weight concurrency} {coroutine}s and {mutual
        exclusion}.

        Version 3.7 for {Unix} uses {GCC} 2.3.3 and requires {dmake}
        3.0+ and the setitimer and sigcontext library calls.  It
        runs on {Sequent}, {Sun-4}, {Sun-3}, {Ultrix}, {SGI},
        {RS/6000}, {HP-PA}.

        {(ftp://plg.uwaterloo.ca/pub/uSystem/u++-3.7.tar.Z)}

        [Software--Practice and Experience, 22(2):137-172, February
        1992].

        (1993-06-10)

UCB

        {University of California at Berkeley}

U-Code

        Universal Pascal Code.  Intermediate language, a
        generalisation of P-code for easier optimisation.  Developed
        originally for the Los Alamos Cray-1 and the Lawrence
        Livermore S-1.  A refined version currently used by MIPS
        compilers is descended from one at Stanford U.  "Machine
        Independent Pascal Code Optimisation", D.R. Perkins et al,
        SIGPLAN Notices 14(8): 201-201 (1979).  "A Transporter's Guide
        to the Stanford U-Code Compiler System", P. Nye et al, TR CSL
        Stanford U, June 1983.  (See HPcode).

UCS

        {Universal Character Set}

UCSD Pascal

        {Pascal-P}

udb

        {Universal Debugger}

UDF

        {Universal Disk Format}

UDMA

        {ATA-4}

UDP

        {User Datagram Protocol}

uemacs

        {MicroEMACS}.  ("u" looks a bit like the Greek letter micro).

UFO

        <language> (United Functions and Objects) A hybrid
        {functional} and {object-oriented} language designed by John
        Seargant at {Manchester University} for general-purpose
        parallel computation.

        To a first approximation, UFO is a strict, higher-order
        functional language with an object-oriented type system, and
        strong support for numeric computation in the form of
        SISAL-style arrays and loops.  Parallelism is implicit, and
        applies at various different levels of granularity, thereby
        facilitating implementations on a wide range of parallel
        architectures.

        It is planned to run it on a 64 processor {KSR} machine.

        (1996-08-22)

ug

        <networking> The {country code} for Uganda.

        (1999-01-27)

UGLIAC

        AN early system on the {Datatron 200} series.

        [Listed in CACM 2(5):16 (May 1959)].

UHELP

        A {linear programming} system.

        ["UHELP User's Manual", D. Singh, Indus Eng Dept, U Houston
        (Oct 1969)].

UI

        {Unix International}

uid

        <programming, database>

        1. {user identifier}.

        2. unique identifier - of any sort, possibly following sense 1.

        Compare with {SKU} for sense-development.

        (1998-09-27)

UIDL

        {Unique ID Listing}

UIL

        {User Interface Language}

UIMS

        User Interface Management System: a system supporting the
        development and execution of user interfaces, usually on top
        of windowing systems.

UIMX

        An interface builder for Motif from Visual Edge.

UIS

        <graphics, programming> A {VMS} graphics programming interface
        package for {VAXstations}.

        (1998-10-25)

uk

        <networking> The {country code} for United Kingdom.

        (1999-01-27)

UKERNA

        {United Kingdom Education and Research Networking Association}

UKUUG

        United Kingdom Unix Users Group.

        {(http://web.dcs.bbk.ac.uk/ukuug/home.html)}

ULCC

        {University of London Computing Centre}

Ulm's Modula-2 System

        <language> A {Modula-2} {compiler}, library and tools by
        Andreas Borchert <borchert@mathematik.uni-ulm.de>.  The
        compiler is derived from the {ETHZ} compiler for the {Lilith}
        system.  Version 2.2.1 conforms to {PIM3}.  It requires {gas}
        version 1.36 (to be found in the same directory).  Commercial
        use requires a licence.  It runs on {Sun3}, {Nixdorf}
        {Targon}/31, {Concurrent} 3200 Series.

        {(ftp://titania.mathematik.uni-ulm.de/pub/soft/modula/ulm/sun3/modula-2
.2.1.tar.Z)}

        (1992-03-02)

ULP

        1. <language> A small structured language for use on
        {microprocessors}.

        ["User's Guide to the ULP Language for the PDP-11", CS TR 536,
        U Maryland, May 1977].

        2. <protocol> {Upper Layer Protocol}.

        (1999-02-17)

Ultra64

        <hardware, games> A {Nintendo} games machine, unveiled in May
        1995.

        [Details?]

        (1995-05-10)

Ultra-ATA

        {ATA-4}

Ultra DMA

        {ATA-4}

Ultra-SCSI

        <hardware> An extension of {SCSI-2} proposed by a group of
        manufacturers which doubles the transfer speed of {Fast-SCSI}
        to give 20MByte/s on an 8-bit connection and 40MByte/s on a
        16-bit connection.

        (1995-04-19)

Ultrix

        <operating system> A version of {Unix} based on the {Berkeley}
        version, designed and implemented by {DEC} to run on their
        {VAX} and {DECstation} processors.

        (1994-10-26)

um

        <networking> The {country code} for United States minor
        outlying islands.

        (1999-01-27)

UMB

        1. {Upper Memory Block}.

        2. A university(?).

        (1996-01-10)

UMB Scheme

        A {Scheme} system including an editor and debugger by William
        Campbell <bill@cs.umb.edu>.  Conforms to the {R4RS}.

        {(ftp://nexus.yorku.ca/pub/scheme/)}

        (1994-10-28)

UMDL

        {University of Michigan Digital Library Project}

UML

        {Unified Modeling Language}

uML

        {Micro ML}

UMTS

        {Universal Mobile Telecommunications System}

unary

        1. <programming> A description of an {operator} which takes
        one argument, e.g. the unary minus operator which negates its
        argument.

        2. <data, humour> Base one.  A number base with only one
        digit, namely zero, and which can therefore only be used to
        express the number zero.  Attempting to add one to zero
        results in an infinite sequence of carries.  Numbers in unary
        notation can be represented particularly efficiently however
        since each digit requires no storage.

        (1998-07-29)

UNC

        <networking> {Uniform Naming Convention}.

        (1995-11-09)

UNCL

        {Universal Naming Code Locater}

UNCOL

        UNiversal Computer Oriented Language.  A universal
        intermediate language, discussed but never implemented.

        ["A First Version of UNCOL", T.B. Steel, Proc JCC 19:371-378
        (Winter 1961)].

        [Sammet 1969, p.708].

uncompression

        {compression}

uncountable

        {countable}

uncurrying

        <programming> Transforming a {curried function} of the form
        f x y z = ... to one of the form f (x,y,z) = ... , i.e. all
        {arguments} are passed as one {tuple}.

        (1998-07-02)

undefined external reference

        [Unix] A message from {Unix}'s linker, {ld}.  Used in speech
        to flag loose ends or dangling references in an argument or
        discussion.

underflow

        <programming> (or "floating point underflow", "floating
        underflow", after "{overflow}") A condition that can occur
        when the result of a {floating-point} operation would be
        smaller in magnitude (closer to zero, either positive or
        negative) than the smallest quantity representable.  Underflow
        is actually (negative) {overflow} of the {exponent} of the
        {floating point} quantity.  For example, an eight-bit {twos
        complement} exponent can represent multipliers of 10^-128 to
        10^127.  A result less than 10^-128 would cause underflow.

        Depending on the {processor}, the programming language and the
        {run-time system}, underflow may set a status bit, raise an
        {exception} or generate a {hardware} {interrupt} or some
        combination of these effects.  Alternatively, it may just be
        ignored and zero substituted for the unrepresentable value,
        though this might lead to a later {divide by zero} error which
        cannot be so easily ignored.

        (1997-08-25)

Undernet

        <networking> An {Internet Relay Chat} network dating from the
        1990s, when it broke away from the main (still larger) IRC
        network, {EFNet}.

        {Home (http://www.undernet.org/)}

        {The History of the Undernet
        (http://www2.undernet.org:8080/~cs93jtl/unet_history.txt)}.

        (1995-11-09)

underscore

        <character> _, {ASCII} 95.

        Common names: {ITU-T}: underline; underscore; underbar; under.
        Rare: score; backarrow; skid; {INTERCAL}: flatworm.

        See also {left arrow}.

        (1995-03-06)

under the hood

        [hot-rodder talk] 1. The underlying implementation of a
        product (hardware, software, or idea).  Implies that the
        implementation is not intuitively obvious from the appearance,
        but the speaker is about to enable the listener to {grok} it.
        "Let's now look under the hood to see how ...."

        2. Can also imply that the implementation is much simpler than
        the appearance would indicate: "Under the hood, we are just
        fork/execing the shell."

        3. Inside a chassis, as in "Under the hood, this baby has a
        40MHz 68030!"

undocumented feature

        See {feature}.

U-NET Limited

        A {dial-up} {Internet} access provider based in Warrington,
        UK.  Speeds 4800 - 28.8kbps.  The currently support {Microsoft
        Windows} and {RISC OS} users.  For 12 pounds to join and 12
        pounds per month or 100 pounds per year you get a full {SLIP}
        account with a pernament {IP address} and {POP3} {electronic
        mail} account.  Membership includes a disk with {Mosaic},
        {Eudora}, {Trumpet2}, Newsreader, {FTP} and {Telnet} and full
        {Internet} access.  Users can choose their own {user name} and
        {hostname}.  Allows some extra services such as more than one
        POP3 account per access account.  User name is significant so
        that a company can have accounts with the same hostname
        (i.e. their company name) but the mail going to diffent
        machines.  Mail in users POP3 account is accessible from
        anywhere not just via the dial-up connection.  On your next
        business trip you can still check your {e-mail} (provided you
        can get onto the Internet).

        {(http://www.u-net.com/)}

        E-mail: <hi@u-net.com>.

        (1994-11-18)

unfold

        {inline}

unfold/fold

        A {program transformation} where a {recursive} call to a
        function is {unfold}ed to an instance of the function's body
        and then later an instance of the function's body is replaced
        by a call.  E.g.

                sumdouble l = sum (double l)

                double l = case l of
                           []   -> []
                           x:xs -> 2*x + double xs

                ==> (unfold double)

                sumdouble l = sum (case l of
                                   []   -> []
                                   x:xs -> 2*x : double xs)

                ==> (distribute over case)

                sumdouble l = case l of
                              []   -> sum []
                              x:xs -> sum (2*x : double xs)

                ==> (unfold sum)

                sumdouble l = case l of
                              []   -> 0
                              x:xs -> 2*x + sum (double xs)

                ==> (fold sumdouble)

                sumdouble l = case l of
                              []   -> 0
                              x:xs -> 2*x + sumdouble xs

        (1994-11-03)

UNI

        1. <standard, body> {Ente Nazionale Italiano di Unificazione}.

        2. <networking> {User Network Interface}.

        (1999-02-01)

Unicode

        1. <character> A 16-bit {character set} standard, designed and
        maintained by the non-profit consortium Unicode Inc.

        Originally Unicode was designed to be universal, unique, and
        uniform, i.e., the code was to cover all major modern written
        languages (universal), each character was to have exactly one
        encoding (unique), and each character was to be represented by
        a fixed width in bits (uniform).

        Parallel to the development of Unicode an {ISO}/{IEC}
        standard was being worked on that put a large emphasis on
        being compatible with existing character codes such as {ASCII}
        or {ISO Latin 1}.  To avoid having two competing 16-bit
        standards, in 1992 the two teams compromised to define a
        common character code standard, known both as Unicode and
        {BMP}.

        Since the merger the character codes are the same but the two
        standards are not identical.  The ISO/IEC standard covers only
        coding while Unicode includes additional specifications that
        help implementation.

        Unicode is not a {glyph encoding}.  The same character can be
        displayed as a variety of {glyphs}, depending not only on the
        {font} and style, but also on the adjacent characters.  A
        sequence of characters can be displayed as a single glyph or a
        character can be displayed as a sequence of glyphs.  Which
        will be the case, is often font dependent.

        See also Jrgen Bettels and F. Avery Bishop's paper {Unicode:
        A universal character code
        (http://www.digital.com/info/DTJB02/DTJB02SC.TXT)}.

        2. <language> Pre-{FORTRAN} on the {IBM 1103}, similar to
        {MATH-MATIC}.

        [Sammet 1969, p.137].

        (1997-11-15)

unicos

        A {Unix} variant for {Cray} computers.

        [More details?]

        (1994-12-06)

Uniface

        1. <database, programming, product> A {4GL} {development
        environment} marketed by {Compuware}.  Uniface is database
        independent, with interfaces to more than 30 {database
        management} and {file retrieval systems}.  It is currently
        supported on {Macintosh}, {MS-DOS}, {Windows}, {Windows 95},
        {Unix} and {VMS}.

        {Home (http://www.compuware.com/products/uniface/)}.

        {Usenet} newsgroup: {news:comp.soft-sys.app-builder.uniface}.

        Mailing list: UNIFACE-L at listserv@ctc.ctc.edu (development
        and support of software using Uniface).

        2. <text> Synonym of {bitmap font}.

        (1999-01-05)

unification

        <programming> The generalisation of {pattern matching} that is
        the {logic programming} equivalent of {instantiation} in
        {logic}.  When two {term}s are to be unified, they are
        compared.  If they are both constants then the result of
        unification is success if they are equal else failure.  If one
        is a variable then it is bound to the other, which may be any
        term (which satisfies an "{occurs check}"), and the
        unification succeeds.  If both terms are structures then each
        pair of sub-terms is unified {recursive}ly and the unification
        succeeds if all the sub-terms unify.

        The result of unification is either failure or success with a
        set of variable bindings, known as a "{unifier}".  There may
        be many such unifiers for any pair of terms but there will be
        at most one "{most general unifier}", other unifiers simply
        add extra bindings for sub-terms which are variables in the
        original terms.

        (1995-12-14)

Unified Han

        {Han character}

Unified Modeling Language

        <language> (UML) A non-proprietary, third generation {modeling
        language}.  The Unified Modeling Language is an open method
        used to specify, visualise, construct and document the
        artifacts of an {object-oriented} software-intensive system
        under development.  The UML represents a compilation of "best
        engineering practices" which have proven successful in
        modeling large, complex systems.

        UML succeeds the concepts of {Booch}, {OMT} and {OOSE} by
        fusing them into a single, common and widely usable modeling
        language.  UML aims to be a standard modeling language which
        can model {concurrent} and distributed systems.

        UML is not an {industry standard}, but is taking shape under
        the auspices of the {Object Management Group} (OMG).  OMG has
        called for information on object-oriented methodologies, that
        might create a rigorous software modeling language.  Many
        industry leaders have responded in earnest to help create the
        standard.

        See also: {STP}, {IDE}.

        {UML guide (http://www.awl.com/cp/uml/uml.html)}.  {UML
        discussion (http://www.rational.com/HyperMail/otug)}.

        (1997-08-08)

unifier

        The unifier of a set of expressions is a set of substitutions
        of terms for variables such that the expressions are all
        equal.

        See also {most general unifier}, {unification}.

        (1994-12-06)

UNIFORM

        An intermediate language developed for reverse engineering
        both {COBOL} and {FORTRAN}.

        ["The REDO Compendium", H. van Zuylen ed, Wiley 1993].

        (1994-12-06)

Uniform Naming Convention

        <networking> (UNC) Used in {IBM PC} networking to completely
        specify a directory on a {file server}.

        The basic format is:

                \\servername\sharename

        where "servername" is the {hostname} of a network file server,
        and "sharename" is the name of a networked or shared
        directory.  Note this is not the same as the conventional
        {MS-DOS} "C:\windows" directory name.  E.g.

                \\server1\dave

        might be set up to point to

                C:\users\homedirs\dave

        on a server called "server1".

        It is possible to execute a program using this convention
        without having to specifically link a drive, by running:

        \\server\share\directory\program.exe

        The {undocumented} DOS command, TRUENAME can be used to find
        out the UNC name of a file or directory on a network drive.

        (1995-11-14)

Uniform Resource Citation

        <World-Wide Web> (URC) A set of attribute/value pairs
        describing an object.  Some of the values may be {URI}s of
        various kinds.  Others may include, for example, athorship,
        publisher, datatype, date, copyright status and shoe size.  A
        URC is not normally considered as a string, but a set of
        fields and values with some defined free formatting.

        (1995-03-24)

Uniform Resource Locater

        {Uniform Resource Locator}

Uniform Resource Locator

        <World-Wide Web> (URL, previously "Universal") A draft
        {standard} for specifying the location of an object on the
        {Internet}, such as a file or a {newsgroup}.  URLs are used
        extensively on the {World-Wide Web}.  They are used in {HTML}
        documents to specify the target of a {hyperlink} which is
        often another HTML document (possibly stored on another
        computer).

        Here are some example URLs:

         http://www.w3.org/default.html
         http://www.acme.co.uk:8080/images/map.gif
         http://foldoc.doc.ic.ac.uk/?Uniform+Resource+Locator
         http://www.w3.org/default.html#Introduction
         ftp://wuarchive.wustl.edu/mirrors/msdos/graphics/gifkit.zip
         ftp://spy:secret@ftp.acme.com/pub/topsecret/weapon.tgz
         mailto:dbh@doc.ic.ac.uk
         news:alt.hypertext
         telnet://dra.com

        The part before the first colon specifies the access scheme or
        {protocol}.  Commonly implemented schemes include: {ftp},
        {http} (World-Wide Web), {gopher} or {WAIS}.  The "file"
        scheme should only be used to refer to a file on the same
        host.  Other less commonly used schemes include {news},
        {telnet} or mailto ({e-mail}).

        The part after the colon is interpreted according to the
        access scheme.  In general, two slashes after the colon
        introduce a {hostname} (host:port is also valid, or for {FTP}
        user:passwd@host or user@host).  The {port} number is usually
        omitted and defaults to the standard port for the scheme,
        e.g. port 80 for HTTP.

        For an HTTP or FTP URL the next part is a {pathname} which is
        usually related to the pathname of a file on the server.  The
        file can contain any type of data but only certain types are
        interpreted directly by most {browsers}.  These include {HTML}
        and images in {gif} or {jpeg} format.  The file's type is
        given by a {MIME} type in the HTTP headers returned by the
        server, e.g. "text/html", "image/gif", and is usually also
        indicated by its {filename extension}.  A file whose type is
        not recognised directly by the browser may be passed to an
        external "viewer" {application}, e.g. a sound player.

        The last (optional) part of the URL may be a query string
        preceded by "?" or a "fragment identifier" preceded by "#".
        The later indicates a particular position within the specified
        document.

        Only alphanumerics, reserved characters (:/?#"<>%+) used for
        their reserved purposes and "$", "-", "_", ".", "&", "+" are
        safe and may be transmitted unencoded.  Other characters are
        encoded as a "%" followed by two {hexadecimal} digits.  Space
        may also be encoded as "+".  Standard {SGML} "&<name>;"
        character entity encodings (e.g. "&eacute;") are also accepted
        when URLs are embedded in HTML.  The terminating semicolon may
        be omitted if &<name> is followed by a non-letter character.

        {The authoritative W3C URL specification
        (http://www.w3.org/hypertext/WWW/Addressing/Addressing.html)}.

        (1998-05-12)

Uniform Resource Name

        <World-Wide Web> (URN) 1. Any {URI} which is not a {URL}.

        2. A particular scheme which is currently (1991-4) under
        development by the {IETF}, which should provide for the
        resolution using {Internet} {protocol}s of names which have a
        greater persistence than that currently associated with
        Internet {host} names or organisations (as used in {URL}s).
        Uniform Resource Names will be URI schemes that improve on
        URLs in reliability over time, including authenticity,
        replication, and high availability.

        When defined, a URN in sense 1 will be an example of a URN in
        sense 2.

        {(http://www.w3.org/pub/WWW/Addressing/Addressing.html)}

        (1995-10-27)

Uniform Resource Number

        Former name for {Uniform Resource Name}.

Unify

        <database, product> A {relational database} produced by {Unify
        Corporation}.

        (1995-03-15)

unify

        <algorithm> To perform {unification}.

        (1995-03-15)

Unify Corporation

        <company> Developers of the {Unify} {relational database}.  At
        one time, before {Sybase}, they were a competitor of {Oracle},
        et al.

        {Home (http://www.unify.com/)}

        {(ftp://ftp.unify.com/)}.

        (1995-03-15)

Unihan

        {Han character}

uninstaller

        <operating system> A {utility} program to remove another
        {application program} from a computer's disks.

        Most commonly found on {IBM PCs}, as applications tend to
        leave files in various places on the {hard disc}, so special
        software is required to tidy up after them.

        Ken Spreitzer <ken@maximized.com> claims to have written the
        original PC program called "UnInstaller", first licensed to
        {MicroHelp} and now (Feb 1998) sold by {CyberMedia}.

        Compare with {installer}.

        (1998-02-09)

uninteresting

        <jargon> 1. Said of a problem that, although {nontrivial}, can
        be solved simply by throwing sufficient resources at it.

        2. Also said of problems for which a solution would neither
        advance the state of the art nor be fun to design and code.

        Hackers regard uninteresting problems as intolerable wastes of
        time, to be solved (if at all) by lesser mortals.  *Real*
        hackers (see {toolsmith}) generalise uninteresting problems
        enough to make them interesting and solve them - thus
        solving the original problem as a special case (and, it must
        be admitted, occasionally turning a molehill into a mountain,
        or a mountain into a tectonic plate).

        See {WOMBAT}, {SMOP}.  Compare {toy problem}.  Oppose
        {interesting}.

        (1995-03-10)

Uninterruptible Power Supply

        <hardware> (UPS) A battery powered power supply that is
        guaranteed to provide power to a computer in the event of
        interruptions in the incoming electrical power.  Different
        rating UPSs will provide power for different lengths of time.

        Modern UPSs connect to the computer's {serial port} and
        provide information such as battery time remaining, allowing
        the computer to shut down {gracefully} before complete loss of
        power.

        (1996-12-11)

Unipalm Group plc

        <company> A company floated in March 1994.

        {Home (http://www.unipalm.co.uk/index.html)}.

        (1996-12-11)

Unipress Software, Inc.

        <company> A developer and distributor of {Unix} software.
        They produce PC-UNIX connectivity software, development tools
        and applications and provide technical support and
        maintenance, porting services, training and consulting.

        {Home (http://www.unipress.com/)}.

        (1996-12-11)

uniprocessor

        <processor> (From "uni" - one) A computer with a single
        {central processing unit}, in contrast to a {parallel
        processor}.  Most {personal computers} are currently (March
        1997) uniprocessors.  Some more expensive computers, typically
        {servers}, have multiple processors to provide increased
        {throughput}.

        See also {symmetric multiprocessor} and {massively parallel
        processor}.

        (1997-03-23)

UNIQUE

        <language> A {portable} {job control language}.

        ["The UNIQUE Command Language - Portable Job Control",
        I.A. Newman, Proc DATAFAIR 73, 1973, pp. 353-357].

        (1994-11-22)

Unique ID Listing

        <messaging> (UIDL) A system used by {POP3} {electronic mail}
        {servers} to uniquely identify a mail message.  Normally, a
        message is identified by its position in the list of messages
        but this will change when an earlier message is deleted.  The
        UIDL is a fixed string of characters which is unique to the
        message.  The UIDL of a message never changes and will never
        be reused, even when the message has been deleted from the
        user's {mailbox}.

        {RFC 1725 (http://ds0.internic.net/rfc/rfc1725.txt)}.

        (1997-04-16)

unique key

        <database> A {key} which identifies only one body of
        information out of several.

        (1997-04-26)

unique sales point

        <product> (USP) A feature that the salesman hopes will
        convince you to buy his product instead of another.

        (1999-10-21)

UNISAP

        An early system on {UNIVAC} I or II.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-22)

Unisys Corporation

        <company> The company formed in 1984-5 when {Burroughs
        Corporation} merged with {Sperry Corporation}.  This was when
        the phrase "{dinosaurs mating}" was coined.

        Unisys is one of the largest providers of information
        services, technology, and software in the world.  They employ
        about 49,000 people and do business in some 100 countries.  In
        1994 about 80 percent of revenue was derived from commercial
        information systems and services, with the remainder coming
        from electronic systems and services for the defense market.
        The defense business was sold to {Loral} in early 1995.
        Slightly more than half of Unisys's revenue is from business
        in the United States.

        They specialise in providing business-critical solutions,
        based on open information networks, for organisations that
        operate in transaction-intensive environments.  These
        organisations include financial services companies, airlines,
        telecommunications companies, government agencies, and other
        commercial enterprises.

        In August 1994, quarterly sales were $1799M and profits $50M.

        {Home (http://www.unisys.com/)}

        (1995-03-21)

United Technologies Research Cente

        (UTRC) {http://utrcwww.utc.com/}.

        (1994-11-29)

Unit Separator

        <character> (US) {ASCII} character 31.

        (1996-06-29)

UNITY

        A high-level parallel language.

        A translator into {MPL} is available by
        {(ftp://sanfrancisco.ira.uka.de/pub/maspar/maspar_unity.tar.Z)}.

        See also {MasPar Unity}.

        ["Parallel Program Design", K.M. Chandry and Misra, A-W 1988].

        (1994-11-29)

Univac

        <processor, company> A brand of computer.

        There is a historical placard in the United States Census
        Bureau that has the following, "The Bureau of the Census
        dedicated the world's first electronic general purpose data
        processing computer, UNIVAC I, on June 14, 1951.
        Eckert-Mauchly Computer Corporation".

        The {Eckert-Mauchly Computer Corporation} designed and built
        Univac.  Over the years, rights to the Univac name changed
        hands several times.  Circa 1987, {Sperry Univac} merged with
        the {Burroughs Corporation} to form {Unisys Corporation}.

        (1994-11-22)

Universal algebra

        <logic> The {model theory} of {first-order} {equational
        logic}.

        (1997-02-25)

Universal Asynchronous Receiver/Transmitter

        <communications, hardware> (UART) An {integrated circuit} used
        for serial communications, containing a transmitter
        (parallel-to-serial converter) and a receiver
        (serial-to-parallel converter), each clocked separately.

        The parallel side of a UART is usually connected to the {bus}
        of a computer.  When the computer writes a byte to the UART's
        transmit data register (TDR), the UART will start to transmit
        it on the serial line.  The UART's status register contains a
        {flag} bit which the computer can read to see if the UART is
        ready to transmit another byte.  Another status register bit
        says whether the UART has received a byte from the {serial
        line}, in which case the computer should read it from the
        receive data register (RDR).  If another byte is received
        before the previous one is read, the UART will signal an
        "overrun" error via another status bit.

        The UART may be set up to {interrupt} the computer when data
        is received or when ready to transmit more data.

        The UART's serial connections usually go via separate {line
        driver} and {line receiver} {integrated circuits} which
        provide the power and voltages required to drive the serial
        line and give some protection against noise on the line.

        Data on the {serial line} is formatted by the {UART} according
        to the setting of the UART's control register.  This may also
        determine the transmit and recieve baud rates if the UART
        contains its own clock circuits or "{baud} rate generators".
        If incorrectly formated data is received the UART may signal a
        "{framing error}" or "{parity} error".

        Often the clock will run at 16 times the baud rate (bits per
        second) to allow the receiver to do {centre sampling} - i.e. to
        read each bit in the middle of its allotted time period.  This
        makes the UART more tolerant to variations in the {clock rate}
        ("jitter") of the incoming data.

        An example of a late 1980s UART was the {Intel 8450}.  In the
        1990s, newer UARTs were developed with on-chip {buffer} space
        for data.  This allowed higher transmission speed without data
        loss and without requiring such frequent attention from the
        computer.  For example, the {Intel} {16550} has a 16 byte
        {FIFO}.

        See also {bit bang}.

        [Is this the same as an {ACIA}?]

        (1995-01-12)

Universal Character Set

        <character, standard> (UCS, ISO/IEC 10646) A 1993 {ISO} and
        {IEC} standard {character set}, also known as "Universal
        Multiple-Octet Coded Character Set".

        UCS comes in two flavours: a 16-bit variant called UCS-2 and a
        32-bit variant called UCS-4, which is composed of 16-bit UCS-2
        "planes".  So far only one 16-bit plane has been defined,
        which is known as the {Basic Multilingual Plane}.

        The implementation of UCS is still in in its infancy, though
        some moves, such as the {Java} language defining a character
        to be 16 bits, are tale-telling.

        (1997-07-04)

Universal Debugger

        <tool, parallel> (udb) {KSR}'s interactive {source level
        debugger} for serial and parallel programs written in {KSR},
        {Fortran}, {KSR C} and {KSR1} {assembly language}.

        Udb is a source level debugger for testing and debugging
        serial and parallel programs; it is compatible with {GDB} and
        {dbx}.  The user can direct udb either by typing commands or
        graphically through an {X}-based window interface; the latter
        provides simultaneous display of source code, I/O and
        instructions.  For parallel programs, operations can be
        carried out per-{thread}.

        {Home
        (http://www.tc.cornell.edu/Parallel.Tools/tools/udb.html)}.

        (1995-05-07)

Universal Disk Format

        <storage, standard> (UDF) A {CD-ROM} {file system} {standard}
        that is required for {DVD ROMs}.  UDF is a replacement for the
        {ISO 9660} file system used on CD-ROMs, but will be mostly
        used on DVD.  DVD multimedia disks use UDF to contain {MPEG}
        {audio} and {video} {streams}.

        To read DVDs you need a DVD drive, the {kernel} driver for the
        drive, MPEG video support, and a UDF driver.  DVDs containing
        both UDF filesystems and ISO 9660 filesystems can be read
        without UDF support.

        UDF can also be used by {CD-R} and {CD-RW} recorders in
        {packet writing} mode.

        (1999-09-01)

universal quantifier

        {quantifier}

Universal Resource Identifier

        <World-Wide Web> (URI, originally "UDI" in some {WWW}
        documents) The generic set of all names and addresses which
        are short strings which refer to objects (typically on the
        {Internet}).  The most common kinds of URI are {URL}s and
        {relative URLs}.

        URIs are defined in {RFC 1630}.

        {W3 specification
        (http://www.w3.org/hypertext/WWW/Addressing/URL/URI_Overview.html)}.

        (1997-07-16)

Universal Resource Locator

        {Uniform Resource Locator}

Universal Serial Bus

        <hardware, standard> (USB) An external {peripheral} interface
        {standard} for communication between a computer and external
        {peripherals} over an inexpensive cable using {biserial}
        transmission.  USB is standard on current (1999) {Macintosh}
        computers and is promoted by {Intel} as an option for the {IBM
        PC} where it is supported by later versions of {Windows 95}.

        USB works at 12 Mbps with specific consideration for low cost
        peripherals.  It supports up to 127 devices and both
        {isochronous} and {asynchronous} data transfers.  Cables can
        be up to five metres long and it includes built-in power
        distribution for low power devices.  It supports {daisy
        chaining} through a tiered star multidrop topology.

        Before March 1996 Intel started to integrate the necessary
        logic into PC {chip sets} and encourage other manufacturers to
        do likewise, so widespread availability and support can be
        expected starting the second half of 1997.

        Because its relatively low speed USB is intended to replace
        existing {serial ports}, {parallel ports}, {keyboard}, and
        {monitor} connectors and be used with {keyboards}, {mice},
        {monitors}, {printers}, and possibly some low-speed {scanners}
        and removable {hard drives}.  For faster devices existing
        {IDE}, {SCSI}, or emerging {FC-AL} or {FireWire} interfaces
        can be used.

        {Home (http://www.teleport.com/~usb/)}.

        (1997-03-15)

universal thunk

        <programming, operating system> A software mechanism allowing
        a {Windows 3.1} {application} to call a {32-bit} {dynamically
        linked library} (DLL) under {Win32s}.

        The {Windows 3.1} {application} which wants to call an entry
        in a 32-bit DLL instead calls a corresponding entry in a
        {16-bit} DLL.  The programmer must also include {code} to
        detect whether the {32-bit} DLL is loaded.  A {32-bit} {EXE}
        loads the {32-bit} DLL.

        See also {Generic Thunk}, {Flat Thunk}.

        ["Calling a Win32 DLL from a Windows 3.1 Application", Win32
        SDK Knowledge Base, Article ID Q97785].

        [Better explanation?]

        (1997-10-11)

Universal Time Coordinated

        <unit> (UTC) Not exactly the same as Greenwich Mean Time
        (GMT).

        (1998-08-26)

University of Arizona

        <body, education> The University was founded in 1885 as a Land
        Grant institution with a three-fold mission of teaching,
        research and public service.  Today, the University is one of
        the top 20 research universities in the nation, with a student
        enrollment of more than 35,000, a faculty and staff of 12,500,
        and a 345-acre campus.

        {Home (http://www.arizona.edu/)}.

        Address: Tucson, Arizona, USA.

University of California at Berkeley

        <body, education> (UCB)

        See also {Berzerkley}, {BSD}.

        {Home (http://www.berkeley.edu/)}

        Note to British and Commonwealth readers: that's /berk'lee/,
        not /bark'lee/ as in British Received Pronunciation.

        (1994-11-29)

University of Durham

        <body, education> A busy research and teaching community in
        the historic cathedral city of Durham, UK (population 61000).
        Its work covers key branches of science and technology and
        traditional areas of scholarship.  Durham graduates are in
        great demand among employers and the University helps to
        attract investment into the region.  It provides training,
        short courses, and expertise for industry.  Through its
        cultural events, conferences, tourist business and as a major
        employer, the University contributes in a wide social and
        economic sense to the community.

        Founded in 1832, the University developed in Durham and
        Newcastle until 1963 when the independent University of
        Newcastle upon Tyne came into being.  Durham is a collegiate
        body, with 14 Colleges or Societies which are a social and
        domestic focus for students.  In 1992, the Universities of
        Durham and Teesside launched University College,
        Stockton-on-Tees, which has 190 students in the first year.

        {Home (http://www.dur.ac.uk/)}

        (1995-03-17)

University of East London

        <body, education> (UEL) A UK University with six academic
        Faculties: Design and The Built Environment, East London
        Business School, Institute Of Health and Rehabilitation,
        Faculty Of Science, Social Sciences and Technology.

        {Home (http://www.uel.ac.uk/)}

        (1994-11-29)

University of Edinburgh

        <body, education> A university in the centre of Scotland's
        capital.  The University of Edinburgh has been promoting and
        setting standards in education for over 400 years.  Granted
        its Royal Charter in 1582 by James VI, the son of Mary Queen
        of Scots, the University was founded the following year by the
        Town Council of Edinburgh, making it the first
        post-Reformation university in Scotland, and the first civic
        university to be established in the British Isles.

        Known in its early years as King James College, or the Tounis
        (Town's) College, the University soon established itself
        internationally, and by the 18th century Edinburgh was a
        leading centre of the European Enlightenment and one of the
        continent's principal universities.  The University's close
        relationship with the city in which it is based, coupled with
        a forward-looking, international perspective, has kept
        Edinburgh at the forefront of new research and teaching
        developments whilst enabling it to retain a uniquely Scottish
        character.

        Edinburgh's academics are at the forefront of developments in
        the study and application of languages, medicine,
        micro-electronics, biotechnology, computer-based disciplines
        and many other subjects.  Edinburgh's standing as a world
        centre for research is further enhanced by the presence on and
        around University precincts of many independently-funded, but
        closely linked, national research institutes

        {Home (http://www.ed.ac.uk/)}

        Address:  Old College, South Bridge, Edinburgh, Scotland EH8
        9YL, UK.

        Telephone: +44 (131) 650 1000.

        See also {ABSET}, {ABSYS}, {Alice}, {ASL+}, {Baroque},
        {C++Linda}, {Cogent Prolog}, {COWSEL}, {Echidna}, {Edinburgh
        Prolog}, {Edinburgh SML}, {EdML}, {ELLIS}, {ELSIE},
        {ESLPDPRO}, {Extended ML}, {Hope}, {IMP}, {LCF}, {Lisp-Linda},
        {Marseille Prolog}, {metalanguage}, {MIKE}, {ML}, {ML Kit},
        {ML-Linda}, {Multipop-68}, {Nuprl}, {Oblog}, {paraML},
        {Pascal-Linda}, {POP-1}, {POP-2}, {POPLER}, {Prolog},
        {Prolog-2}, {Prolog-Linda}, {Scheme-Linda}, {Skel-ML},
        {Standard ML}, {Sticks&Stones}, {supercombinators},
        {SWI-Prolog}, {tail recursion modulo cons}, {WPOP}.

        (1995-12-29)

University of Hawaii

        <body, education> A University spread over 10 campuses on 4
        islands throughout the state.

        {Home (http://www.hawaii.edu/uhinfo.html)}

        See also {Aloha}, {Aloha Net}.

        (1995-12-10)

University of Iceland

        <body, education> The Home of {Fjolnir}.

        Hskli slands.

        {Home (http://www.rhi.hi.is/)}

        (1995-03-17)

University of London Computing Centre

        <body, education> (ULCC) One of the UK's national high
        performance computing centres.  It provides networking
        services and large-scale computing facilities which are used
        by researchers from all over the UK.

        ULCC was founded in 1968 to provide a service for education
        and research.  It has been at the forefront of advanced
        research computing since its foundation, initially providing
        large-scale {CDC}-based facilities, then from 1982 to 1991 a
        national {Cray} {vector} supercomputing service.  Its high
        performance computing facilities are now centred on a 6
        processor, 4 Gbyte {Convex C3860} {supercomputer} (Neptune)
        with a Convex C3200 front-end (Pluto).

        ULCC is the main site for national and international network
        connections in the UK.  They run the {Network Operations and
        Service Centre} for the {JANET Internet Protocol Service}
        (JIPS), the largest of the {JANET} {NOC}s and various
        international links and relays on behalf of {UKERNA}.

        ULCC's pilot {National Data Repository} service provides a
        network-accessible digital archive and filestore, based on a
        robotic tape system with 6 Terabytes of storage.  Although the
        data is stored on tape, you can access it very quickly, as if
        it were on-line.  It is made available to you via high-speed
        links to the {JANET} and {SuperJANET} networks.

        {Home (http://www.ulcc.ac.uk/)}

        (1994-11-29)

University of Michigan

        <body, education> A large cosmopolitan university in the
        Midwest USA.  Over 50000 students are enrolled at the
        University of Michigan's three campuses.  The students come
        from 50 states and over 100 foreign countries.  70% of the
        University's students graduated in the top 10% of their high
        school class.  90% rank in the top 20% of their high school
        class.  60% of the students receive financial aid.

        The main Ann Arbor Campus lies in the Huron River valley, 40
        miles west of Detroit.  The campus boasts 2700 acres with 200
        buildings, six million volumes in 23 libraries, nine museums,
        seven hospitals, hundreds of laboratories and institutes, and
        over 18000 {microcomputer}s.

        {Home (http://www.umich.edu/)}

        (1995-02-23)

University of Michigan Digital Library Project

        <project> (UMDL) The {University of Michigan}'s part of the
        {Digital Library Initiative}.

University of Minnesota

        <body, education> The home of {Gopher}.

        {Home (http://www.umn.edu/)}

        Address: Minneapolis, Minnesota, USA.

        (1995-01-30)

University of Nijmegen

        <body, education> Katholieke University of Nijmegen (KUN),
        Nijmegen, the Netherlands.

        KUN's {Computing Science Institute (http://www.cs.kun.nl/csi)}
        is known for the {Clean}, {Comma}, {Communicating Functional
        Processes}, and {GLASS} projects.

        {Home (http://www.kun.nl/)}

        (1995-11-07)

University of Pennsylvania

        <body, education> The home of {ENIAC} and {Machiavelli}.

        {Home (http://www.upenn.edu/)}

        Address: Philadelphia, PA, USA.

        [More info?]

        (1995-02-21)

University of Tasmania

        <body, education>

        {Home (ftp://ftp.utas.edu.au/)}

        (1995-01-25)

University of Twente

        <body, education> A university in the east of The Netherlands
        (Holland) for technical and social sciences.  It was founded
        in 1961, making it one of the youngest universities in
        Holland.  It has 7000 students studying Applied Educational
        Science; Applied Mathematics; Applied Physics; Chemical
        Technology; Computer Science; Electrical Engineering;
        Mechanical Engineering; Philosophy of science, Technology and
        Society; Educational Technology.

        {Home (http://www.nic.utwente.nl/uthomuk.htm)}

        (1995-04-16)

Unix

        <operating system> /yoo'niks/ (Or "UNIX", in the authors'
        words, "A weak pun on Multics") Plural "Unices".  An
        interactive {time-sharing} {operating system} invented in 1969
        by {Ken Thompson} after {Bell Labs} left the {Multics}
        project, originally so he could play games on his scavenged
        {PDP-7}.  {Dennis Ritchie}, the inventor of {C}, is considered
        a co-author of the system.

        The turning point in Unix's history came when it was
        reimplemented almost entirely in C during 1972 - 1974, making
        it the first source-portable OS.  Unix subsequently underwent
        mutations and expansions at the hands of many different
        people, resulting in a uniquely flexible and
        developer-friendly environment.

        By 1991, Unix had become the most widely used multi-user
        general-purpose operating system in the world.  Many people
        consider this the most important victory yet of hackerdom over
        industry opposition (but see {Unix weenie} and {Unix
        conspiracy} for an opposing point of view).  Unix is now
        offered by many manufacturers and is the subject of an
        international standardisation effort with the Unix trademark
        being owned by {X/Open}.  Unix or Unix-like operating systems
        include {OSF}, {Version 7}, {BSD}, {USG Unix}, {Xenix},
        {Ultrix}, {Linux}, and {GNU}.

        "Unix" or "UNIX"?  Both seem roughly equally popular, perhaps
        with a historical bias towards the latter.  "UNIX" is a
        trademark, however, since it is a name and not an acronym,
        "Unix" has been adopted in this dictionary except where a
        larger name includes it in upper case.  Since the OS is
        {case-sensitive} and exists in many different versions, it is
        fitting that its name should reflect this.

        More: {The UNIX Reference Desk
        (http://www.eecs.nwu.edu/unix.html)}.

        {Spanish fire extinguisher
        (ftp://linux.mathematik.tu-darmstadt.de/pub/linux/people/okir/unix_flam
e.gif)}.

        (1999-07-14)

Unix box

        {box}

Unix brain damage

        Something that has to be done to break a network program
        (typically a mailer) on a non-{Unix} system so that it will
        interoperate with Unix systems.  The hack may qualify as "Unix
        brain damage" if the program conforms to published {standard}s
        and the {Unix} program in question does not.  Unix brain
        damage happens because it is much easier for other (minority)
        systems to change their ways to match non-conforming behaviour
        than it is to change all the hundreds of thousands of Unix
        systems out there.

        An example of Unix brain damage is a {kluge} in a mail server
        to recognise bare line feed (the Unix newline) as an
        equivalent form to the Internet standard newline, which is a
        carriage return followed by a line feed.  Such things can make
        even a hardened {jock} weep.

Unix conspiracy

        [ITS] According to a conspiracy theory long popular among
        {ITS} and {TOPS-20} fans, Unix's growth is the result of a
        plot, hatched during the 1970s at Bell Labs, whose intent was
        to hobble AT&T's competitors by making them dependent upon a
        system whose future evolution was to be under AT&T's control.
        This would be accomplished by disseminating an operating
        system that is apparently inexpensive and easily portable, but
        also relatively unreliable and insecure (so as to require
        continuing upgrades from AT&T).  This theory was lent a
        substantial impetus in 1984 by the paper referenced in the
        {back door} entry.

        In this view, Unix was designed to be one of the first
        computer viruses (see {virus}) - but a virus spread to
        computers indirectly by people and market forces, rather than
        directly through disks and networks.  Adherents of this "Unix
        virus" theory like to cite the fact that the well-known
        quotation "Unix is snake oil" was uttered by DEC president
        Kenneth Olsen shortly before DEC began actively promoting its
        own family of Unix workstations.  (Olsen now claims to have
        been misquoted.)

Unix International

        <body> (UI) A consortium including {Sun}, {AT&T} and others
        formed to promote an open environment based on {Unix} {System
        V}, including the {Open Look} windowing system.

Unixism

        <operating system, jargon> A piece of code or a coding
        technique that depends on the protected {multitasking}
        environment with relatively low process-spawn overhead that
        exists on {virtual-memory} {Unix} systems.

        Common {Unixism}s include: gratuitous use of "{fork}"; the
        assumption that certain undocumented but well-known features
        of Unix libraries such as "{stdio}" are supported elsewhere;
        reliance on obscure side-effects of {system calls} (use of
        "sleep" with a 0 argument to tell the scheduler that you're
        willing to give up your time-slice, for example); the
        assumption that freshly allocated memory is zeroed; and the
        assumption that {fragmentation} problems won't arise from
        never freeing memory.

        Compare {vaxocentrism}.  See also {New Jersey}.

        (1995-02-27)

Unix man page

        {Unix manual page}

Unix manual page

        <operating system} (man page) A part of {Unix}'s extensive
        on-line documentation.  To read a manual page, type

                man [section] <page>

        at a shell prompt, e.g. "man ftp" (the section number can
        usually be omited).  Pages are traditionally referred to using
        the notation "page(section)", e.g. ftp(1).

        Under {SunOS} (which is fairly typical), Section 1 covers
        commands, 2 {system calls}, 3 C library routines, 4 devices
        and networks, 5 file formats, 6 games and {demos}, 7
        miscellaneous, 8 system administration.  Each section has an
        introduction which can be obtained with, e.g., "man 2 intro".

        Manual pages are stored as {nroff} source files.  Formatted
        versions are also usually cached.

        {Unix manual page}: man(1).

        {WWW man gateway (http://foldoc.doc.ic.ac.uk/man.cgi)}.

        (1997-01-26)

Unix System V

        {System V}

Unix to Unix Copy

        <networking, messaging> (uucp) A {Unix} utility program and
        {protocol} that allows one Unix system to send files to
        another via a {serial line} which may be a cable going
        directly from one machine's {serial port} to another's or may
        involve a {modem} at each end of a telephone line.

        Software is also available to allow uucp to work over
        {Ethernet} though there are better alternatives in this case,
        e.g. {FTP} or {rcp} for file transfer, {SMTP} for {electronic
        mail} or {NNTP} for {news}.

        The term is now also used to describe the large international
        network which uses UUCP to pass {Usenet} {news} and
        {electronic mail}, also known as "UUCPNET".

        {Unix manual page}: uucp(1).

        See also {cu}, {uuencode}.

        (1997-01-12)

UnixWare

        <operating system> {Novell}'s implementation of {Unix} {System
        5} heavily based on Release 4.2 but with enhancements and new
        bundled products.

        In 1993 Novell acquired {Unix Systems Laboratories} from
        {AT&T} along with the UNIX trademark.  UnixWare was the result
        of Novell's efforts to make Unix interoperable with {Novell
        NetWare}.  However, UnixWare never became very popular and in
        later in 1993 Novell decided to give the Unix trademark to
        {X/Open}.

        (1997-02-20)

Unix weenie

        <jargon> ({ITS}) 1. A derogatory play on "{Unix wizard}",
        common among hackers who use {Unix} by necessity but would
        prefer alternatives.  The implication is that although the
        person in question may consider mastery of Unix arcana to be a
        wizardly skill, the only real skill involved is the ability to
        tolerate (and the bad taste to wallow in) the incoherence and
        needless complexity that is alleged to infest many Unix
        programs.  "This shell script tries to parse its arguments in
        69 bletcherous ways.  It must have been written by a real Unix
        weenie."

        2. A derogatory term for anyone who engages in uncritical
        praise of {Unix}.  Often appearing in the context "stupid Unix
        weenie".

        See {Weenix}, {Unix conspiracy}, {weenie}.

        (1995-02-27)

Unix wizard

        <job> Someone with a deep understanding of {Unix}.

        See {wizard}.

        (1995-05-11)

unnormalised

        {normalisation}

unproto

        A translator from {ANSI C} to {K&R C} by Wietse Venema
        <wietse@wzv.win.tue.nl>.

        {(ftp://ftp.win.tue.nl/pub/Unix/unproto4.shar.Z)}

unshar

        A {Unix} utility that removes {e-mail} and {news} {header}
        lines from its input, and feeds the remainder (which is
        presumed to be a {shar file}) to /bin/sh to unpack it.  unshar
        is designed for unpacking archives directly from the news or
        mail systems simply by {piping} a message into it.

unshielded twisted pair

        (UTP) Normal telephone wire (in the USA).  It may be used for
        computer to computer communications, e.g. using a version of
        {Ethernet} or {localtalk}.  It is much cheaper than standard
        "full-spec" Ethernet cable.

        (1995-02-15)

unswizzle

        The opposite of {swizzle}.

        (1995-02-15)

unwind-protect

        ({MIT}) A {Lisp} operator which evaluates an expression and
        then, even if that expression causes a {non-local exit},
        evaluates zero or more other expressions.  This can be used to
        ensure that essential "clean-up" operations are performed even
        in the presence of errors.

        (1994-11-03)

unwind the stack

        During the execution of a {procedural} language, one is said
        to "unwind the stack" from a called {procedure} up to a caller
        when one discards the {stack frame} and any number of frames
        above it, {pop}ping back up to the level of the given caller.
        In {C} this is done with "{longjmp}"/"{setjmp}", in {Lisp}
        with "{throw}/{catch}".  See also {smash the stack}.

UN*X

        <operating system, convention> Used to refer to the {Unix}
        {operating system} (a trademark of {AT&T}) in writing, but
        avoiding the need for the ugly (TM) typography.  Also used to
        refer to any or all varieties of Unixoid operating systems.
        Ironically, lawyers now say that the requirement for the
        TM-postfix has no legal force, but the asterisk usage is
        entrenched anyhow.

        It has been suggested that there may be a psychological
        connection to practice in certain religions (especially
        Judaism) in which the name of the deity is never written out
        in full, e.g. "YHWH" or "G--d" is used.

        See also {glob}.

        (1998-04-17)

unzip

        1. <tool, compression> To extract files from an archive
        created with {PKWare}'s {PKZIP} archiver.

        2. <tool, compression> A program to list, test, or extract
        files from a {ZIP} archive, commonly found on {MS-DOS}
        systems.  zip, creates ZIP archives; both programs are
        compatible with archives created by {PKWARE}'s {PKZIP} and
        {PKUNZIP} for {MS-DOS}.

        (1995-03-06)

up

        <jargon> Working, in order.  E.g. "The down escalator is up."

        Opposite: {down}.

        (1995-03-06)

uparrow

        <character> The graphic which the 1963 version of {ASCII} had
        in place of the {caret} character, {ASCII} 94.

        (1995-03-06)

\uparrow

        <character> An upward pointing arrow in {LaTeX}.

        See {closure}.

        (1995-03-16)

UPenn

        {University of Pennsylvania}

upgradability

        <jargon> (Or "upgradeability") How easily {upgrades} to a
        system can be produced and applied.  E.g. "Buying a PC with
        more {PCI} slots gives you increased upgradeability."

        (1999-10-11)

upgrade

        1. A new or better version of some {hardware} or {software}.

        Often used in {marketroid}-speak to mean "{bug fix}".

        2. The act of developing or installing a new version.

        (1995-03-14)

upgradeability

        {upgradability}

upload

        /uhp'lohd/ To transfer programs or data over a digital
        communications link from a smaller or peripheral "client"
        system to a larger or central "host" one.

        Opposite: {download}.

        (1994-10-27)

UPMAIL Tricia Prolog

        {(ftp://ftp.csd.uu.se/pub/Tricia/README)}

        E-mail: <tricia-request@csd.uu.se>.

        [Description?]

        (1994-10-27)

upper bound

        An upper bound of two elements x and y under some {relation}
        <= is an element z such that x <= z and y <= z.

        ("<=" is written in {LaTeX} as {\sqsubseteq}).

        See also {least upper bound}.

        (1995-02-15)

Upper Layer Protocol

        <protocol> 1. (ULP, or upper-layer protocol)
        Any {protocol} residing in {OSI} layers five or above.

        The {Internet} protocol suite includes many upper layer
        protocols representing a wide variety of applications
        e.g. {FTP}, {NFS}, {RPC}, and {SMTP}.  These and other network
        applications use the services of {TCP/IP} and other {lower
        layer protocols} to provide users with basic network services.

        2. A protocol higher in the OSI reference model than the
        current reference point.  Upper Layer Protocol is often used
        to refer to the next-highest protocol in a particular
        {protocol stack}.

        (1999-02-17)

upper memory block

        <storage> (UMB) Up to 64 {kilobytes} of the {expanded memory
        page frame} above the first 64 kilobytes.  The UMB can be used
        to store {TSR} programs or {device drivers} thereby freeing
        parts of the precious {conventional memory}.  The UMB is
        provided by special memory manager programs; many {EMM}s can
        provide UMB as well.

        (1996-01-10)

Upper Side-Band modulation

        <communications> (USB) A kind of {modulation} applied to a
        sinusoidal {carrier}.

        [Details?]

        (1997-07-16)

UPS

        1. {uninterruptible power supply}.

        2. A source level {C} debugger that runs under {X11} or
        {SunView} by Mark Russell <mtr@ukc.ac.uk>.  Ups includes a {C}
        {interpreter} which allows you to add fragments of code simply
        by editing them into the source window.  Version 2.1.

        Ported to {Sun}, {DECstation}, {VAX} {Ultrix}, {HLH}
        {Clipper}.

        {(ftp://export.lcs.mit.edu/contrib/)}.  Mailing list:
        ups-users-request@ukc.ac.uk.

        Unofficial enhancements by Rod Armstrong <rod@sj.ate.slb.com>
        {(ftp://sj.ate.slb.com/misc/Unix/ups/contrib/rob)}.

        (1991-05-20)

upstream

        <networking> Fewer {network} {hops} away from a {backbone} or
        {hub}.  For example, a small {ISP} that connects to the
        {Internet} through a larger ISP that has their own connection
        to the backbone is {downstream} from the larger ISP, and the
        larger ISP is {upstream} from the smaller ISP.

        (1999-08-05)

upthread

        Earlier in the discussion (see {thread}), i.e. "above".  See
        also {followup}.

upward closure

        See {closure}.

Uranus

        Hideyuki Nakashima <nakashim@el.go.jp>, 1993.  A logic-based
        knowledge representation language.  An extension of Prolog
        written in Common Lisp, with Lisp-like syntax.  Extends Prolog
        with a multiple world mechanism, plus term descriptions to
        provide functional programming.

        {(ftp://etlport.etl.go.jp/pub/uranus/ftp)}

urban legend

        <publication> A story, which may have started with a grain of
        truth, that has been embroidered and retold until it has
        passed into the realm of myth.  It is an interesting
        phenomenon that these stories get spread so far, so fast and
        so often.  Urban legends never die, they just end up on the
        {Internet}!  Some legends that periodically make their rounds
        include "The Infamous Modem Tax", "Craig Shergold/Brain
        Tumor/Get Well Cards", and "The $250 Cookie Recipe".

        (1996-05-08)

URC

        {Uniform Resource Citation} (previously Universal).

urchin

        See {munchkin}.

URI

        {Universal Resource Identifier}

URL

        {Uniform Resource Locator}

URL forwarding

        {URL redirection}

URL redirection

        <World-Wide Web> (Or "URL forwarding")

        When a {web server} tells the {client} {browser} to obtain a
        certain requested page from a different location.  This is
        controlled by {directives} in the server's configuration files
        or a "Location: header output by a {CGI} script.

        The web server stores all its documents in a {directory tree}
        rooted at some configured directory, known as its "document
        root".  Normally the {URI} part of the {URL} (the part after
        the {hostname}) is used as a {relative path} from the document
        root to the desired file or directory.  A redirect directive
        allows the server administrator to specify exceptions to this
        general mapping from URL to file name by telling the browser
        "try this URL instead".  The new URL may be on the same server
        or a different one and may itself be subject to redirection.

        The user is normally unaware of this process except that it
        may introduce extra delay while the browser sends the new
        request and the browser will usually display the new URL
        rather than the one the user originally requested.

        (1997-07-15)

URN

        {Uniform Resource Name} (previously Uniform/Universal Resource
        Number).

URouLette

        (After {URL} and roulette, the gambling game) A {World-Wide
        Web} service which selects other web pages at random.

        {(http://kuhttp.cc.ukans.edu/cwis/organizations/kucia/uroulette/uroulet
te.html)}

        (1994-11-24)

US

        {Unit Separator}

us

        <networking> The {country code} for the United States.

        Usually used only by schools, libraries, and some state and
        local governments.  Other US sites, and many international
        ones, use the non-national {top-level domains} .com, .edu etc.

        (1999-01-27)

usability

        <programming> The effectiveness, efficiency, and satisfaction
        with which users can achieve tasks in a particular environment
        of a product.  High usability means a system is: easy to learn
        and remember; efficient, visually pleasing and fun to use; and
        quick to recover from errors.

        {(http://www.orrnet.com/)}.

        (1999-04-01)

USAModSim

        <language> United States Army {ModSim} compiler.

        Version 1.0 runs on {SPARC}/{SunOS}, {Silicon Graphics},
        {MS-DOS}.

        {(ftp://max.cecer.army.mil/ftp/isle)}

        E-mail: Charles Herring <herring@lincoln.cecer.army.mil>.

        (1993-12-29)

usa.net

        {Internet Express}

US-ASCII

        <character> The 7-bit version of {ASCII}, which preceded (and
        is the basis for) 8-bit versions such as {Latin-1}, {MacASCII}
        and later, even larger coded character sets such as {Unicode}.

        US-ASCII is defined in Standard ANSI X3.4-1986,
        "US-ASCII. Coded Character Set - 7-Bit American Standard Code
        for Information Interchange".

        (1998-10-18)

USB

        1. <architecture> {Universal Serial Bus}.

        2. <communications> {Upper Side-Band modulation}.

        (1997-07-16)

USE

        An early system on the {IBM 1103} or 1103A.

        [Listed in CACM 2(5):16 (May 1959)].

        (1994-11-11)

Usenet

        <messaging> /yoos'net/ or /yooz'net/ (Or "Usenet news", from
        "Users' Network") A distributed {bulletin board} system
        supported mainly by {Unix} machines and the people who post
        and read articles thereon.  Originally implemented in 1979 -
        1980 by Steve Bellovin, Jim Ellis, Tom Truscott, and Steve
        Daniel at Duke University, it has swiftly grown to become
        international in scope and is now probably the largest
        decentralised information utility in existence.

        Usenet encompasses government agencies, universities, high
        schools, businesses of all sizes and home computers of all
        descriptions.  As of early 1993, it hosts well over 1200
        {newsgroup}s ("groups" for short) and an average of 40
        megabytes (the equivalent of several thousand paper pages) of
        new technical articles, news, discussion, chatter, and
        {flamage} every day.  To join in you need a {news reader}.
        Several {web browsers} include news readers and {URL}s
        beginning "news:" refer to Usenet newsgroups.

        Not all {Internet} {hosts} subscribe to Usenet and not all
        Usenet hosts are on the Internet but there is a large overlap.

        {Network News Transfer Protocol} is a {protocol} used to
        transfer news articles between a news {server} and a {news
        reader}.  The {uucp} {protocol} is sometimes used to transfer
        articles between servers, though this is probably less common
        now that most {backbone} sites are on the {Internet}.

        {Stanford University} runs a service to send news articles by
        {electronic mail}.  Send electronic mail to
        <netnews@db.stanford.edu> with "help" in the message body.
        [Still?  URL?]

        {(http://www.openmarket.com/info/internet-index/current-sources.html)}

        {Notes on news
        (http://www.ifi.uio.no/~larsi/notes/notes.html)} by Lars Magne
        Ingebrigtsen <larsi@ifi.uio.no>.

        [Gene Spafford <spaf@cs.purdue.edu>, "What is Usenet?",
        regular posting to {news:news.announce.newusers}].

        (1998-07-19)

Usenet news

        {Usenet}

Usenetter

        <networking> A (regular) user of {Usenet}.

        (1996-09-08)

USENIX

        <body> Since 1975, the USENIX Association has provided a forum
        for the communication of the results of innovation and
        research in {Unix} and modern {open system}s.  It is well
        known for its technical conferences, tutorial programs, and
        the wide variety of publications it has sponsored over the
        years.

        USENIX is the original not-for-profit membership organisation
        for individuals and institutions interested in {Unix} and
        {Unix}-like systems, by extension, {X}, {object-oriented}
        technology, and other advanced tools and technologies, and the
        broad interconnected and interoperable computing environment.

        USENIX's activities include an annual technical conference;
        frequent specific-topic conferences and symposia; a highly
        regarded tutorial program covering a wide range of topics,
        introductory through advanced; numerous publications,
        including a book series, in cooperation with The {MIT Press},
        on advanced computing systems, proceedings from USENIX
        symposia and conferences, the quarterly journal "Computing
        Systems", and the biweekly newsletter; "login: ";
        participation in various {ANSI}, {IEEE} and {ISO} {standard}s
        efforts; sponsorship of local and special technical groups
        relevant to Unix.  The chartering of SAGE, the {System
        Administrators Guild} as a Special Technical Group within
        USENIX is the most recent.

        {(http://usenix.org)}

        {Usenet} newsgroup: {news:comp.org.usenix}.

        (1994-12-07)

user

        1. <person> Someone doing "real work" with the computer, using
        it as a means rather than an end.  Someone who pays to use a
        computer.  A programmer who will believe anything you tell
        him.  One who asks silly questions without thinking for two
        seconds or looking in the documentation.  Someone who uses a
        program, however skillfully, without getting into the
        internals of the program.  One who reports {bug}s instead of
        just fixing them.  See also {luser}, {real user}.

        Users are looked down on by {hackers} to some extent because
        they don't understand the full ramifications of the system in
        all its glory.  The term is relative: a skilled hacker may be
        a user with respect to some program he himself does not hack.
        A LISP hacker might be one who maintains LISP or one who uses
        LISP (but with the skill of a hacker).  A LISP user is one who
        uses LISP, whether skillfully or not.  Thus there is some
        overlap between the two terms; the subtle distinctions must be
        resolved by context.

        2. <jargon> Any person, organisation, process, device,
        program, {protocol}, or system which uses a service provided
        by others.

        The term "{client}" (as in "{client-server}" systems) is
        rather more specific, usually implying two processes
        communicating via some protocol.

        (1996-04-28)

user base

        <jargon> The number of users of some product or standard.

        This term typically arises in discussions of {backward
        compatibility} or {lock-in}.

        (1998-01-15)

User Brain Damage

        <humour> (UBD) A description (usually abbreviated) used to
        close a trouble report obviously due to utter cluelessness on
        the user's part.  Compare {pilot error}; opposite: {PBD}; see
        also {brain-damaged}, {PEBCAK}.

        (1998-08-27)

User Datagram Protocol

        <protocol> (UDP) {Internet} {standard} {network layer},
        {transport layer} and {session layer} {protocols} which
        provide simple but {unreliable} {datagram} services.  UDP is
        defined in {STD 6}, {RFC 768}.  It adds a {checksum} and
        additional process-to-process addressing information [to
        what?].  UDP is a {connectionless protocol} which, like {TCP},
        is layered on top of {IP}.

        UDP neither guarantees delivery nor does it require a
        connection.  As a result it is lightweight and efficient, but
        all error processing and retransmission must be taken care of
        by the {application program}.

        {Unix manual page}: udp(4).

        [Postel, Jon, User Datagram Protocol, RFC 768, Network
        Information Center, SRI International, Menlo Park, Calif.,
        August 1980].

        (1998-02-11)

user-friendly

        Programmer-hostile.  Generally used by hackers in a critical
        tone, to describe systems that hold the user's hand so
        obsessively that they make it painful for the more experienced
        and knowledgeable to get any work done.  See {menuitis},
        {drool-proof paper}, {Macintrash}, {user-obsequious}.

user id

        {user identifier}

user identifier

        <operating system> 1. (Or "uid", "user id") A number or name
        which is unique to a particular user of a computer or group of
        computers which share user information.  The {operating
        system} uses the uid to represent the user in its data
        structures, e.g. the owner of a file or process, the person
        attempting to access a system resource etc.

        A user database, e.g. {Unix}'s /etc/passwd file or {NIS}, maps
        the uid to other information about that user such as their
        {user name}, {password}, {home directory} and real name.

        2. {user name}.

        (1997-03-01)

user interface

        The aspects of a computer system or program which can be seen
        (or heard or otherwise perceived) by the human user, and the
        commands and mechanisms the user uses to control its operation
        and input data.

        A {graphical user interface} emphasises the use of pictures
        for output and a pointing device such as a {mouse} for input
        and control whereas a {command line interface} requires the
        user to type textual commands and input at a keyboard and
        produces a single stream of text as output.

        See also {user interface copyright}.

        (1995-02-20)

user interface copyright

        There have been several attempts, mostly by big US software
        companies, to enforce patents and {copyright} on user
        interfaces.  Such legal action aims to restrict the use of
        certain command languages or {graphical user interface}s to
        products from one software supplier.  This is undesirable
        because it either forces users to buy software from the
        company whose interface they have learned or to learn more
        than one interface.  An analogy is often drawn with the user
        interface of a car - the arrangement of pedals and steering
        wheel etc.  If each car manufacturer was forced to use a
        different interface this would be very bad for car users.

        Following a non-jury trial, which began in early January 1987,
        a federal judge ruled on 28 June 1990 that keyboard commands
        and on-screen images produced by {Lotus Development
        Corporation}'s popular {1-2-3} {spreadsheet} are protected by
        {copyright}.  {Paperback Software International} and
        subcontractor Stephenson Software Ltd. who lost the case,
        argued that the copyright applies only to the inner workings
        of the software.  US District Judge Robert Keeton wrote that
        "The user interface of 1-2-3 is its most unique element and is
        the aspect that has made 1-2-3 so popular.  That defendants
        went to such trouble to copy that element is a testament to
        its substantiality".  Defence attorneys had argued that the
        Lotus commands represented "instructions for a machine rather
        than the expression of an idea".

        Soon after this decision, on 2 July 2 1990, Lotus sued
        {Borland International} and the {Santa Cruz Operation} for
        producing {spreadsheet}s (Quattro, Quattro Pro and SCO
        Professional) whose interfaces could be configured to look
        like 1-2-3's.

        (1994-11-16)

User Interface Language

        <language, graphics> (UIL) A language for specifying {widget}
        hierarchies etc. in {OSF}/Motif and {DECwindows}.

        (1997-03-01)

user name

        <operating system, security> (Or "logon") A unique name for
        each user of computer services which can be accessed by
        several persons.

        Users need to identify themselves for accounting, {security},
        logging, and {resource management}.  Usually a person must
        also enter a {password} in order to access a service.  Once
        the user has logged on the {operating system} will often use a
        (short) {user identifier}, e.g. an integer, to refer to them
        rather than their user name.

        User names can usually be any short string of alphanumeric
        characters.  Common choices are first name, initials, or some
        combination of first name, last name, initials and an
        arbitrary number.  User names are often assigned by {system
        administrators} according to some local policy, or they may be
        chosen by the users themselves.

        User names are often also used as {mailbox} names in
        {electronic mail} addresses.

        (1997-03-16)

User Network Interface

        <communications, networking> (UNI) An interface point between
        {ATM} end users and a private {ATM switch}, or between a
        private ATM switch and the {public carrier} ATM network.

        The physical and {protocol} specifications for UNIs are
        defined by the {ATM Forum}'s UNI documents, which allow for
        various types of physical interfaces.

        See also: {NNI}

        (1999-01-23)

user-obsequious

        <jargon> Emphatic form of {user-friendly}.  Connotes a system
        so verbose, inflexible, and determinedly simple-minded that it
        is nearly unusable.  "Design a system any fool can use and
        only a fool will want to use it."

        See {WIMP}, {Macintrash}.

        See also {user-unctuous}.

        (1999-06-27)

user-unctuous

        <jargon> (By analogy with {user-friendly} and
        {user-obsequious}) User-interfaces that attempt to soothe (or,
        some would say, stupify) users instead of cooperating with
        them.  Common "features" of user-unctuous systems include:
        icons of happy faces; mellow colors; melodic sound effects or
        even mood music; help tips appearing unbidden and at unhelpful
        moments; and a cloying tone either in system messages ("Oops!
        I couldn't seem to find my old preferences file!  I do think
        I'll have to make a new one!  Please press OK to continue!")
        or in labelling of system components (such as the main hard
        drive being labelled "Your Hard Drive" -- or, with infantile
        pronoun-reversal, "My Hard Drive").

        (1999-06-27)

Use the Source Luke

        <humour, programming> (UTSL) (A pun on Obi-Wan Kenobi's "Use
        the Force, Luke!" in "Star Wars") A more polite version of
        {RTFS}.  This is a common way of suggesting that someone would
        be better off reading the source code that supports whatever
        feature is causing confusion, rather than making yet another
        futile pass through the manuals, or broadcasting questions on
        {Usenet} that haven't attracted {wizard}s to answer them.

        Once upon a time in {Elder Days}, everyone running {Unix} had
        source.  After 1978, {AT&T}'s policy tightened up, so this
        objurgation was in theory appropriately directed only at
        associates of some outfit with a Unix {source licence}.  In
        practice, bootlegs of Unix source code (made precisely for
        reference purposes) were so ubiquitous that one could utter it
        at almost anyone on {the network} without concern.

        Nowadays, free Unix clones are becoming common enough that
        almost anyone can read source legally.  The most widely
        distributed is probably {Linux}.  {FreeBSD}, {NetBSD},
        {386BSD}, {jolix} also have their followers.  Cheap commercial
        Unix implementations with source such as {BSD/OS} from {BSDI}
        are accelerating this trend.

        (1996-01-02)

USG Unix

        {operating system} /U-S-G yoo'niks/ Refers to AT&T {Unix}
        commercial versions after {Version 7}, especially System III
        and System V releases 1, 2, and 3.  So called because during
        most of the lifespan of those versions AT&T's support crew was
        called the "Unix Support Group".

        Compare {BSD}.

        (1997-02-20)

usim

        A {Motorola} {6809} simulator.  Version 0.11 by Ray P. Bellis
        <rpb@psy.ox.ac.uk>.

        {(ftp://ftp.cns.ox.ac.uk/pub/mc6809/)}

        (1993-02-14)

USL

        1. Query language, close to natural English.

        2. User System Language.  Bellcore, "Operations Technology
        Generic Requirements: User System Interface", TR-825.

        3. Unix System Laboratories: the software subsidiary of
        {AT&T}, responsible for {Unix} {System V} and related
        software.

USP

        {unique sales point}

USR

        {U.S. Robotics, Inc.}

usr

        User.  The "/usr" directory hierarchy on {Unix} systems.  Once
        upon a time, in the early days of Unix, this area actually
        held users' home directories and files.  Since these tend to
        expand much faster than system files, /usr would be mounted on
        the biggest disk on the system.  The root directory, "/" in
        contrast, contains only what is needed to {boot} the {kernel},
        after which /usr and other disks could be mounted as part of
        the multi-user start-up process.

        /usr has been used as the "everything else" area, with many
        "system" files such as compiler libraries (/usr/include,
        /usr/lib), utilty programs (/usr/bin, /usr/ucb), games
        (/usr/games), local additions (/usr/local), manuals
        (/usr/man), temporary files and queues for various {daemon}s
        (/usr/spool).  These optional extras have grown in size as
        Unix has evolved and disks have dropped in price.  Under later
        versions of {SunOS}, the user files have fled /usr altogether
        for a new "/home" {partition} and temporary files have moved
        to "/var".  This allows /usr to be mounted read-only with some
        gain in security and performance since access times are not
        updated for files on read-only file systems.

US Robotics

        {U.S. Robotics, Inc.}

U.S. Robotics, Inc.

        <company> A US {modem} manufacturer.

        {Home (http://www.usr.com/)}

        {(ftp://ftp.usr.com/)}

        Finger: usr.com.

        E-mail: <support@usr.com>, <salesinfo@usr.com> (USA and Canada),
        <eurosupport@usr.com>, <eurosales@usr.com> (Europe),
        <intlsales@usr.com> (other).

        (1995-03-14)

USSA

        Object-oriented state language by B. Burshteyn, Pyramid, 1992.

        {Documentation (ftp://primost.cs.wisc.edu/pub/ussa.ps.Z)}

UTC

        {Universal Time Coordinated}

UTF

        {UCS transformation format}

UTF-8

        <character> (UCS transformation format 8) An
        {ASCII}-compatible multibyte {Unicode} and {UCS} encoding,
        used by {Java} and {Plan 9}.

        The {Unicode character} set occupies a 16-bit code space.  The
        most obvious Unicode encoding (known as UCS-2) consists of a
        sequence of 16-bit words.  Such strings can contain bytes like
        '\0' or '/' which have a special meaning in filenames and
        other {C} library function parameters.  In addition, the
        majority of {Unix} tools expects ASCII files and can't read
        16-bit words as characters without major modifications.  For
        these reasons, UCS-2 is not a suitable external encoding of
        Unicode in filenames, text files, environment variables, etc.

        The {ISO 10646} {Universal Character Set} (UCS), a superset of
        Unicode, occupies a 31-bit code space and the obvious UCS-4
        encoding for it (a sequence of 32-bit words) has the same
        problems.

        The UTF-8 encoding of Unicode and UCS avoids the problems of
        fixed-length Unicode encodings because an ASCII file encoded
        in UTF is exactly same as the original ASCII file and all
        non-ASCII characters are guaranteed to have the most
        significant bit set (bit 0x80).  This means that normal tools
        for text searching etc. work as expected.

        UTF-8 is defined in {RFC 2279}.

        ["File System Safe UCS Transformation Format (FSS_UTF)",
        X/Open Preliminary Specification, X/Open Company Ltd.,
        Document Number: P316.  This information also appears in
        ISO/IEC 10646, Annex P].

        {Plan 9 UTF manual entry
        (ftp://ftp.uu.net/doc/obi/Bell.Labs/plan9pm/09utf.ps.Z)}.

        (1998-07-29)

utility-coder

        <language> A language for data manipulation and report
        generation.

        ["User's Manual for utility-coder", Cambridge Computer
        Association, Jul 1977].

        (1997-12-09)

UTOPIST

        E. Tyugu, Acad Sci Estonia, Tallinn, early 1980's.
        Specification language for attribute grammars.

        ["Synthesis of a Semantic Processor from an Attribute
        Grammar", Prog and Comp Soft, 9(1):29-39 (Jan 1983)].

UTP

        {unshielded twisted pair}

UTRC

        {United Technologies Research Cente}

UTSL

        <humour> {Use the Source Luke}

        (1996-01-02)

uucp

        {Unix to Unix Copy}

UUCPNET

        The international {store and forward} network consisting of
        all the world's connected {Unix} machines (and others running
        some clone of the {UUCP} software).  Any machine reachable
        only via a {bang path} is on UUCPNET.  See {network address}.

uudecode

        A Unix program to convert the ASCII output of uuencode back to
        binary.  See uuencode for details.

uuencode

        Unix program for encoding binary data as ASCII.  Uuencode was
        originally used with uucp to transfer binary files over serial
        lines which did not preserve the top bit of characters but is
        now used for sending binary files by e-mail and posting to
        {Usenet} newsgroups etc.  The program uudecode reverses the
        effect of uuencode, recreating the original binary file
        exactly.

        Uuencoded data starts with a line of the form

                begin <mode> <file>

        where <mode> is the files read/write/execute permissions as
        three {octal} digits and <file> is the name to be used when
        recreating the binary data.

        Uuencode repeatedly takes in a group of three bytes, adding
        trailing zeros if there are less than three bytes left.
        These 24 bits are split into four groups of six which are
        treated as numbers between 0 and 63.  Decimal 32 is added to
        each number and they are ouput as ASCII characters which will
        lie in the range 32 (space) to 32+63 = 95 (underscore).  Each
        group of sixty ouptut characters (corresponding to 45 input
        bytes) is output as a separate line preceded by an 'M' (ASCII
        code 77 = 32+45).  At the end of the input, if there are N
        output characters left after the last group of sixty and N>0
        then they will be preceded by the character whose code is
        32+N.  Finally, a line containing just a single space is
        output, followed by one containing just "end".

        Sometimes each data line has an extra dummy character added to
        avoid problems which mailers that strip trailing spaces.
        These characters are ignored by uudecode.

        Despite using this limited range of characters, there are
        still some problems encountered when uuencoded data passes
        through certain old computers.  The worst offenders are
        computers using non-ASCII character sets such as EBCDIC.

UUNET PIPEX

        <company> An {Internet provider}, part of the Unipalm Group.
        PIPEX launched their Internet service in March 1992, and by
        November 1993 provided Internet service to 150 customer sites
        in the UK.  Each site is either a complete commercial company
        or a branch of one, or a public-sector organisation.  They
        provide a commercial {internetworking} service, with 24-hour
        support, and a resilient backbone with multiple international
        links.  PIPEX provides for individual users through their
        "PIPEX Dial" service, and has a number of re-sellers connected
        to its backbone, including {CityScape}, {Direct Connection}
        and the {IBM PC User Group}, who also offer such services.

        {Home (http://www.pipex.net)}.

        E-mail: <support@pipex.net>.

        Address (Head office): Cambridge ?

        Address: King St. London EC2V(?)

        (1996-10-13)

UUPC

        {UUCP} for {MS-DOS}, {Microsoft Windows}, and {OS/2}.

        E-mail: <server@netmail.com> with subject SEND INDEX.

uy

        <networking> The {country code} for Uruguay.

        (1999-01-27)

uz

        <networking> The {country code} for Uzbekistan.

        (1999-01-27)

V

        Upper case V, {ASCII} character 86, known in {INTERCAL} as
        book.

        1. A testbed for distributed system research.

        2. Wide-spectrum language used in the knowledge-based
        environment {CHI}.  "Research on Knowledge-Based Software
        Environments at Kestrel Inst", D.R.  Smith et al, IEEE Trans
        Soft Eng SE-11(11):1278-1295 (1985).

V.21

        <protocol> An {ITU-T} {modem} {protocol} for 300 bits per
        second two-wire {full duplex} communications using {Frequency
        Shift Keying} {modulation}.

        All modern modems support both V.21 and the close variant,
        Bell 103.

        (1996-07-22)

V.22

        An {ITU-T} {modem} {protocol} which allowed data rates of 1200
        bits per second.  {V.22bis} doubled this.

V.22bis

        {V.22} twice.  An {ITU-T} {modem} {protocol} which allowed a
        data rate of 2400 bits per second, twice that of {V.22}.

V.23

        An old {ITU-T} {modem} {protocol} which allowed {half-duplex}
        (unidirectional) data transmission at 1200 bits per second.
        This was the main standard used for {British Telecom}'s
        {Prestel} service.

V.24

        <standard> The {ITU-T} {standard} defining interchange
        circuits between {DTE} and {DCE}.  V.24 is the {ITU-T}
        equivalent of {EIA} standard {RS-232C}.

        V.24 recommends 12 {modem} {carrier} frequencies that will not
        interfere with {Dual Tone Multi-Frequency} or other telephone
        control tones.  These are:

          GROUP A   =    920 Hz, 1000 Hz, 1080 Hz, 1160 Hz
          GROUP B   =    1320 Hz, 1400 Hz, 1480 Hz, 1560 Hz
          Group C   =    1720 Hz, 1800 Hz, 1880 Hz, 1960 Hz

        (1995-03-02)

V.25

        A standard allowing an {auto-answer} {modem} to determine the
        correct modulation standard to use.

V.32

        The {ITU-T} standard {protocol} for {modem}s transmitting at
        4800 or 9600 bits per second.  {V.32bis} extended this to
        14400 bps.

        V32 and V.32bis acheive bidirectional data transmission not by
        having different sets of tones at each end but by subtracting
        what is sent from what is received.

        (1994-12-15)

V.32bis

        V.32 twice.  An extension of the {ITU-T} {V.32} {modem}
        {protocol} allowing speeds of 7200, 12000 and 14400 bits per
        second.  The {modem} should select the appropriate speed
        according to the current line conditions.

        See also {V.32ter}.

        (1994-12-15)

V.32ter

        An extension of the {ITU-T} {V.32bis} {modem} {protocol}.
        While waiting for {V.34}, many {modem} manufacturers decided
        to extend V.32bis to 19.2 kbps.  This was known as V.32ter
        which some {marketroid}s rechristened V.32 terbo which is not
        only misspelled but misses the fact that V.32ter means the
        third revision of V.32.

        (1994-12-15)

V.34

        <protocol> An {ITU-T} {standard} {modem} serial line
        {protocol} using {symbol rate}s of 2400, 2743, 2800, 3000,
        >3200 and 3429 and up to 28800 bits per second.

        The official V.34 draft recommendation was titled:

           Modem operating at data signalling rates of up to 28 800
           bit/s for use on the general switched telephone network and
           on leased point-to-point 2-wire telephone-type circuits.

        During the lengthy process of approval by {ITU-T}, many
        manufacturers released 28.8 kbps modems described as "V.FAST".
        The V.34 recommendation was ratified by {ITU-T} on 20
        September 1994.  {Rockwell} and {US Robotics} both have seats
        on the ITU-T, and have both released {chip set}/{BIOS}
        combinations that they feel will meet V.34.  V.34 modems will
        also support {V.FC} if the manufacturer currently supports
        V.FC (e.g. {Rockwell}).  Some (all?) V.34 modems will also
        support {line probing}.

        {ITU document
        (http://www.itu.int/itudoc/itu-t/rec/v/v34_25302.html)}.

        (1998-07-03)

V.35

        <communications, standard> The {ITU-T} {standard} for data
        transmission at 48 kilobits per second over 60 - 108 KHz group
        band circuits.  It contains the 34-pin {V.34} connector
        specifications normally implemented on a modular {RJ-45}
        connector.

        (1995-03-02)

V.42

        An {ITU-T} standard {protocol} for {error correction} between
        {modem}s which includes {MNP} up to level 4.

V.42bis

        An extension of the {ITU-T} {V.42} standard {modem} {protocol}
        to included {compression}.

        [Details?  On-line spec?]

V.90

        <protocol> An {ITU-T} {standard} {modem} serial line
        {protocol} allowing download speeds of up to 56 {kbps} with
        upload speeds of 33.6 {kbps}.  {V.90} modems are designed for
        connections that are digital at one end and have only one
        digital-to-analogue conversion.

        As of 1998-02-06 the V.90 standard, formerly called V.pcm, has
        been given final approval by {ITU-T}.  On 1998-10-27 the ITU-T
        announced that approval of the V.90 standard was completed.
        Interoperability testing is complete or in progress for
        several modem manufacturers.  The V.90 standard reconciles two
        competing standards, {X2} and {K56flex}.

        The {ITU-T} has initiated the approval process for a new
        all-digital version of the protocol, to be known as {V.91}.

        {ITU Press Release 98-04
        (http://www.itu.int/newsroom/press/releases/1998/98-04.html)}
        and {NP-3
        (http://www.itu.int/newsroom/press/releases/1998/NP-3.html)}.

        (1999-01-25)

V.91

        <protocol> An all-digital version of the {V.90} {protocol},
        undergoing {ITU-T} approval.

        (1999-01-13)

va

        <networking> The {country code} for the Vatican.

        (1999-01-27)

vacuum tube

        {electron tube}

vadding

        <games> /vad'ing/ (From VAD, a permutation of ADV,
        i.e. {ADVENT}, used to avoid a particular {admin}'s continual
        search-and-destroy sweeps for the game) A leisure-time
        activity of certain hackers involving the covert exploration
        of the "secret" parts of large buildings - basements, roofs,
        freight elevators, maintenance crawlways, steam tunnels, and
        the like.  A few go so far as to learn locksmithing in order
        to synthesise vadding keys.  The verb is "to vad" (compare
        {phreaking}; see also {hack}, sense 9).  This term dates from
        the late 1970s, before which such activity was simply called
        "hacking"; the older usage is still prevalent at {MIT}.

        Vadding (pronounced /vay'ding/) was also popular {CMU}, at
        least as early as 1986.  People who did it every night were
        called the "vaders," possibly after "elevator," which was one
        of the things they played with, or "invader," or "Darth
        Vader".  This game was usually played along with
        no-holds-barred hide-and-seek.  CMU grad students were the
        known to pry open the inner doors of elevators between floors
        to see the graffiti on the inside of the outer doors.

        The most extreme and dangerous form of vadding is "elevator
        rodeo", also known as "elevator surfing", a sport played by
        wrasslin' down a thousand-pound elevator car with a 3-foot
        piece of string, and then exploiting this mastery in various
        stimulating ways (such as elevator hopping, shaft exploration,
        rat-racing, and the ever-popular drop experiments).  Kids,
        don't try this at home!

        See also {hobbit}.

        (1996-01-07)

VAL

        1. Value-oriented Algorithmic Language.  J.B. Dennis, MIT
        1979.  Single assignment language, designed for MIT dataflow
        machine.  Based on CLU, has iteration and error handling,
        lacking in recursion and I/O.  "A Value- Oriented Algorithmic
        Language", W.B. Ackermann et al, MIT LCS TR-218, June 1979.
        "The VAL Language: Description and Analysis", J.R. McGraw,
        TOPLAS 4(1):44-82 (Jan 1982).

        2. <language, robotics> Variable Assembly Language.
        Unimation.  Language for industrial robots.  Version: VAL II -
        "VAL II: A New Robot Control System for Automatic
        Manufacturing", B.E. Shimano et al, Proc IEEE Intl Conf on
        Robotics 1984, pp.278-292.

        3. VHDL Annotation Language.  Stanford.
        {(ftp://wilbur.stanford.edu/pub/valbin-sun3-4.0-0.1.3.tar.Z)}.
        Source in Ada available from Larry M. Augustin
        <lma@sierra.stanford.edu>.

Valencia Simple Tasker

        <operating system> (VSTa) A small {microkernel} based
        {Unix}-like {operating system}, taking ideas from {QNX} and
        {Plan 9}, available under {GPL}.

        {Home (http://www.chat.net/~jeske/VSTa/)}.

        (1999-03-03)

valency

        See {degree}.

Valid

        A {dataflow} language.

        ["A List-Processing-Oriented Data Flow Machine Architecture",
        Makoto Amamiya et al, AFIPS NCC, June 1982, pp. 143-151].

        (1995-02-14)

validation

        The stage in the {software life-cycle} at the end of the
        development process where software is evaluated to ensure that
        it complies with the requirements.

        (1995-02-14)

value

        {brightness}

Value Added Network

        <networking> (VAN) A privately owned {network} that provides a
        specific service, such as legal research or access to a
        specialised database, for a fee.  A Value Added Network
        usually offers some service or information that is not readily
        available on public networks.

        A Value Added Network's customers typically purchase {leased
        lines} that connect them to the network or they use a {dial-up
        number}, given by the network owner, to gain access to the
        network.

        (1998-11-10)

value added reseller

        <company> (VAR, or "value added retailer") A company which
        sells something (e.g. computers) made by another company (an
        {OEM}) with extra components added (e.g. specialist software).

        (1995-02-14)

value added retailer

        {value added reseller}

valve

        <electronics> UK term for a {vacuum tube}.

        (1996-01-10)

VAN

        {Value Added Network}

vanilla

        1. (Default flavour of ice cream in the US) Ordinary
        {flavour}, standard.  When used of food, very often does not
        mean that the food is flavoured with vanilla extract!  For
        example, "vanilla wonton soup" means ordinary wonton soup, as
        opposed to hot-and-sour wonton soup.  Applied to hardware and
        software, as in "Vanilla {Version 7} {Unix} can't run on a
        vanilla {PDP 11}/34."  Also used to orthogonalise chip
        nomenclature; for instance, a 74V00 means what TI calls a
        7400, as distinct from a 74LS00, etc.  This word differs from
        {canonical} in that the latter means "default", whereas
        vanilla simply means "ordinary".  For example, when hackers go
        to a chinese restaurant, hot-and-sour wonton soup is the
        {canonical} wonton soup to get (because that is what most of
        them usually order) even though it isn't the vanilla wonton
        soup.

        (1994-11-04)

        2. {Snobol4} by {Catspaw, Inc.} for {MS-DOS}.

        {(ftp://cs.arizona.edu/snobol4/vanilla.arc)}

        (1992-02-05)

vanity domain

        <networking> A {domain} you register for the sole purpose of
        having your own domain so you can have an easily remembered
        {URL} and {e-mail} address.  The domain is usually served
        (often {vhost}ed) off someone else's machines.

        This is as opposed to a domain you register because you have
        machines of your own which are already on the Internet and
        which you want to make addressable via something other than
        {dot address}es.

        Whereas vanity domains were almost unheard-of in 1980s, since
        the invention and popularisation of the {Web} in the mid-1990s
        and the desire for {URL}s which consist only of memorable
        domain names (e.g., "http://www.pbs.org") for everything from
        movies to car wax, vanity domains have come to be the rule
        instead of the exception.

        (1997-09-11)

vannevar

        /van'*-var/ A bogus technological prediction or a foredoomed
        engineering concept, especially one that fails by implicitly
        assuming that technologies develop linearly, incrementally,
        and in isolation from one another when in fact the learning
        curve tends to be highly nonlinear, revolutions are common,
        and competition is the rule.  The prototype was Vannevar
        Bush's prediction of "electronic brains" the size of the
        Empire State Building with a Niagara-Falls-equivalent cooling
        system for their tubes and relays, a prediction made at a time
        when the semiconductor effect had already been demonstrated.
        Other famous vannevars have included {magnetic-bubble memory},
        {LISP machine}s, {videotex}, and a paper from the late 1970s
        that computed a purported ultimate limit on areal density for
        {integrated circuit}s that was in fact less than the routine
        densities of 5 years later.

vaporware

        <jargon> /vay'pr-weir/ Products announced far in advance of
        any release (which may or may not actually take place).  The
        term came from {Atari} users and was later used by {Infoworld}
        to {Microsoft}'s continuous lying about {Microsoft Windows}.

        See also {brochureware}.

        (1996-09-30)

VAR

        1. {Value Added Reseller} (or retailer).

        2. /veir/ or /var/ Short for "variable".  Compare {arg},
        {param}.

Variational Graphics eXtended

        <software> (VGX) {Software} developed by {SDRC} for use in 3D
        {CAD} {solid modelling}.

        (1998-02-06)

VAX

        /vaks/ 1. Virtual Address eXtension.  The most successful
        {minicomputer} design in industry history, possibly excepting
        its immediate ancestor, the {PDP-11}.  Between its release in
        1978 and its eclipse by {killer micro}s after about 1986, the
        VAX was probably the hacker's favourite machine of them all,
        especially after the 1982 release of {4.2BSD} {Unix}.
        Especially noted for its large, assembler-programmer-friendly
        {instruction set} - an asset that became a liability after the
        {RISC} revolution.

        2. A major brand of vacuum cleaner in Britain.  Cited here
        because its alleged sales pitch, "Nothing sucks like a VAX!"
        became a sort of battle-cry of RISC partisans.  It is even
        sometimes claimed that DEC actually entered a licencing
        deal with the vacuum-Vax people that allowed them to market
        VAX computers in the U.K. in return for not challenging the
        vacuum cleaner trademark in the US

        It is sometimes claimed that this slogan was *not* actually
        used by the Vax vacuum-cleaner people, but was actually that
        of a rival brand called Electrolux (as in "Nothing sucks
        like...").  It has been reliably confirmed that Electrolux (a
        Swedish company) actually did use this slogan in the late
        1960s; it has apparently become a classic example (used in
        textbooks) of the perils of not knowing the local idiom.

        It appears, however, that the Vax people thought the slogan a
        sufficiently good idea to copy it.  Several British hackers
        report that their promotions used it in 1986--1987, and we
        have one report from a New Zealander that the infamous slogan
        surfaced there in TV ads for the product as recently as 1992!

        (1995-02-20)

VAX DOCUMENT

        A document preparation system from {DEC}.

VAXectomy

        <jargon> /vak-sek't*-mee/ (By analogy with "vasectomy")
        Removal of a {VAX}.  {DEC}'s {Microvax}en, especially, are
        much slower than newer {RISC}-based {workstations} such as the
        {SPARC}.  Thus, if one knows one has a replacement coming, VAX
        removal can be cause for celebration.

        (1995-02-20)

VAXen

        /vak'sn/ (From "oxen", perhaps influenced by "vixen") The
        plural canonically used among hackers for the {DEC} {VAX}
        computers.  "Our installation has four PDP-10s and twenty
        vaxen."

        See {boxen}.

        (1995-02-20)

vaxherd

        /vaks'herd/ ["oxherd"] An operator who tends one or more
        {VAXen}.

vaxism

        /vak'sizm/ A piece of code that exhibits {vaxocentrism} in
        critical areas.  Compare {PC-ism}, {Unixism}.

VAX MIPS

        <benchmark> (Or VAX Unit of Performance, VUP) The processing
        power normally attributed to a {Digital Equipment Corporation}
        {VAX} 11/780.  Future VAX systems were rated according to this
        scale (e.g. VAX 8350's being 2.7 VUPs per CPU).  A {MicroVAX}
        II is normally associated with 0.9 VUPs and at a later time
        the MicroVUP was coined to rate VAX {workstations}.  The use
        of the VUP by Digital Equipment Corporation has been replaced
        with more standard benchmarks ({SPECint} and {SPECfp}) in the
        {DEC Alpha} processor systems.

        (1996-08-22)

vaxocentrism

        /vak"soh-sen"trizm/ [analogy with "ethnocentrism"] A notional
        disease said to afflict C programmers who persist in coding
        according to certain assumptions that are valid (especially
        under Unix) on {VAXen} but false elsewhere. Among these are:

        1. The assumption that dereferencing a null pointer is safe
        because it is all bits 0, and location 0 is readable and 0.
        Problem: this may instead cause an illegal-address trap on
        non-VAXen, and even on VAXen under OSes other than BSD Unix.
        Usually this is an implicit assumption of sloppy code
        (forgetting to check the pointer before using it), rather than
        deliberate exploitation of a misfeature.

        2. The assumption that characters are signed.

        3. The assumption that a pointer to any one type can freely be
        cast into a pointer to any other type.  A stronger form of
        this is the assumption that all pointers are the same size and
        format, which means you don't have to worry about getting the
        casts or types correct in calls.  Problem: this fails on
        word-oriented machines or others with multiple pointer
        formats.

        4. The assumption that the parameters of a routine are stored
        in memory, on a stack, contiguously, and in strictly ascending
        or descending order.  Problem: this fails on many RISC
        architectures.

        5. The assumption that pointer and integer types are the same
        size, and that pointers can be stuffed into integer variables
        (and vice-versa) and drawn back out without being truncated or
        mangled.  Problem: this fails on segmented architectures or
        word-oriented machines with funny pointer formats.

        6. The assumption that a data type of any size may begin at
        any byte address in memory (for example, that you can freely
        construct and dereference a pointer to a word- or
        greater-sized object at an odd char address).  Problem: this
        fails on many (especially RISC) architectures better optimised
        for {HLL} execution speed, and can cause an illegal address
        fault or bus error.

        7. The (related) assumption that there is no padding at the
        end of types and that in an array you can thus step right from
        the last byte of a previous component to the first byte of the
        next one.  This is not only machine- but compiler-dependent.

        8. The assumption that memory address space is globally flat
        and that the array reference "foo[-1]" is necessarily valid.
        Problem: this fails at 0, or other places on segment-addressed
        machines like Intel chips (yes, segmentation is universally
        considered a {brain-damaged} way to design machines (see
        {moby}), but that is a separate issue).

        9. The assumption that objects can be arbitrarily large with
        no special considerations.  Problem: this fails on segmented
        architectures and under non-virtual-addressing environments.

        10. The assumption that the stack can be as large as memory.
        Problem: this fails on segmented architectures or almost
        anything else without virtual addressing and a paged stack.

        11. The assumption that bits and addressable units within an
        object are ordered in the same way and that this order is a
        constant of nature.  Problem: this fails on {big-endian}
        machines.

        12. The assumption that it is meaningful to compare pointers
        to different objects not located within the same array, or to
        objects of different types.  Problem: the former fails on
        segmented architectures, the latter on word-oriented machines
        or others with multiple pointer formats.

        13. The assumption that an "int" is 32 bits, or (nearly
        equivalently) the assumption that "sizeof(int) ==
        sizeof(long)".  Problem: this fails on {PDP-11}s, {Intel
        80286}-based systems and even on {Intel 80386} and {Motorola
        68000} systems under some compilers.

        14. The assumption that "argv[]" is writable.  Problem: this
        fails in many embedded-systems C environments and even under a
        few flavours of Unix.

        Note that a programmer can validly be accused of vaxocentrism
        even if he or she has never seen a VAX.  Some of these
        assumptions (especially 2--5) were valid on the {PDP-11}, the
        original {C} machine, and became endemic years before the VAX.
        The terms "vaxocentricity" and "all-the-world"s-a-VAX
        syndrome' have been used synonymously.

VAXset

        A set of software development tools from DEC, including a
        language-sensitive editor, compilers etc.

VAXstation

        A family of {workstation}s from {DEC} based on their {VAX}
        computer architecture.

        (1995-02-03)

VAX/VMS

        {VMS}

VB

        {Visual BASIC}

VBA

        {Visual Basic for Applications}

vbell

        {visible bell}

VBScript

        {Visual BASIC Script}

vbx

        <filename extension> The {filename extension} for {Visual
        Basic Extension}.

        (1995-02-03)

vc

        <networking> The {country code} for Saint Vincent and the
        Grenadines.

        (1999-01-27)

VCC filtering

        <electronics> /V C C fil't*-ring/ A technique for reducing the
        amount of {Radio Frequency Interference} spread via power
        supply connections.  {VCC} is a common name for the
        non-{ground} power supply line in circuits based on {bipolar
        transistors}.

        When part of a circuit generates lots of radio-frequency
        noise, that portion of the {power plane} can be isolated from
        the rest of the circuit and power delivered to it via a {low
        pass filter}, usually a {PI filter}, as shown in the diagram
        below.

              source   ________inductor_________   load
                          |                |
                      capacitor        capacitor
                          |                |
                       ground           ground

        This helps to shield the rest of the circuit from the noise
        generated by the load.

        (1998-01-26)

VCL

        {Visual Component Library}

VCODE

        1. The {intermediate language} used in the compilation of
        {NESL}.

        ["Implementation of a Portable Nested Data-Parallel Language",
        Guy Blelloch et al, in Fourth ACM SIGPLAN Symposium on Princ
        and Practice of Parallel Programming, ACM, 1993].

        2. The {intermediate language} used in the compilation of
        {C+@}.

        (1995-01-12)

VCPI

        {Virtual Control Program Interface}

VCR

        {Video Cassette Recorder}

vdiff

        /vee'dif/ Visual diff.  The operation of finding differences
        between two files by {eyeball search}.  The term "optical
        diff" has also been reported, and is sometimes more
        specifically used for the act of superimposing two nearly
        identical printouts on one another and holding them up to a
        light to spot differences.  Though this method is poor for
        detecting omissions in the "rear" file, it can also be used
        with printouts of graphics, a claim few if any diff programs
        can make.  See {diff}.

VDL

        {Vienna Definition Language}

VDM

        1. Vienna Definition Method

        2. {Virtual Device Metafile}.

VDM++

        {Object-oriented extension} of {VDM-SL}.  ["Object-Oriented
        Specification in VDM++", in Object Oriented Specification Case
        Studies, K. Lano et al eds, P-H 1993].

VDM-SL

        Vienna Development Method Specification Language.  (Also known
        as Meta-IV.)  Model-oriented specification language, upon
        which the {Vienna Development Method} is based.  {ISO} draft
        Apr 1993.  Version: BSI/VDM.

        {(ftp://gateway.dec.com/pub/vdmsl_standard)}.  E-mail:
        <derek@mcs.le.ac.uk>.

        ["The Vienna Development Method: The Meta-Language",
        D. Bjorner et al eds, LNCS 61, Springer 1978].

        ["The VDM-SL Reference Guide", J. Dawes, Pitman 1991].
        ["Systematic Software Development Using VDM", C.B. Jones, P-H
        1989].

VDSL

        {Very high bit-rate Digital Subscriber Line}

VDT

        {video display terminal}

VDU

        {Visual Display Unit}

ve

        <networking> The {country code} for Venezuela.

        (1999-01-27)

vector

        1. <mathematics> A member of a {vector space}.

        2. <graphics> A line or movement defined by its end points, or
        by the current position and one other point.  See {vector
        graphics}.

        3. <operating system> A memory location containing the address
        of some code, often some kind of {exception} handler or other
        {operating system} service.  By changing the vector to point
        to a different piece of code it is possible to modify the
        behaviour of the operating system.

        Compare {hook}.

        4. <programming> A one-dimensional {array}.

        (1996-09-30)

Vector C

        <language> A variant of {C} from {CMU}(?), similar to {ACTUS}.

        (1996-09-30)

vector font

        {outline font}

vector graphics

        <graphics> (Sometimes called "object-oriented" graphics,
        though it's nothing to do with object-oriented programming).
        A drawing program which deals with separate shapes such as
        lines, polygons and text and groups of such objects as opposed
        to a painting program which stores only {bitmap}s.  The
        advantage is that it is possible to change any element of the
        picture at any time since each part is stored as an
        independent object whereas once something in a bitmap has been
        overwritten it cannot in general be retrieved.

        (1996-09-30)

vector processor

        {array processor}

vector space

        <mathematics> An {additive group} on which some ({scalar})
        {field} has an {associative} multiplicative action which
        distributes over the addition of the vector space and respects
        the addition of the (scalar) field: for vectors u, v and
        scalars h, k; h(u+v) = hu + hv; (h+k)u = hu + ku; (hk)u =
        h(ku).

        [Simple example?]

        (1996-09-30)

VECTRAN

        <language> {FORTRAN} with {array} extensions.

        ["The VECTRAN Language: An Experimental Language for
        Vector/Matrix Array Processing", Report G320- 3334, IBM, Aug
        1975].

        (1996-01-19)

VEE

        {HP VEE}

veeblefeetzer

        {veeblefetzer}

veeblefester

        <jargon, abuse> /vee'b*l-fes"tr/ (From "Born Loser" comix via
        {Commodore}; probably originally from "Mad" Magazine's
        "Veeblefeetzer" parodies ca. 1960) Any obnoxious person
        engaged in the (alleged) professions of marketing or
        management.

        Antonym of {hacker}.  Compare {suit}, {marketroid}.  See also
        {veeblefetzer}.

        [veeblefeetzer or veeblefetzer?]

        (1996-03-31)

veeblefetzer

        <jargon> /vee'b*l-fetz'*/ (Or "veeblefeetzer"?) A purposely
        nonsensical sounding word applied to any sort of obscure or
        complicated object, e.g. a piece of computer code, model
        railroad equipment, auto parts, etc.

        The more immediate origin of the word is "Mad" Magazine.  In
        the late 1950s and early 1960s it used the word along the same
        lines, especially in its send-ups of big business.  "North
        American Veeblefetzer" was the subject of satires of an annual
        reports, an in-house newsletter, and more.  A Veeblefetzer, in
        their case, was a robot-like device that did something or
        other.

        The more distant source was probably a 19th century yiddish
        word, possibly with limited usage.  In German, "Fetzer" is any
        contraption, while "Veeble" is a likely corruption of "Webel"
        -- meaning weaving.  Textile mills of this period were crammed
        with very complicated, wildly active and very loud pieces of
        machinery.

        See also {veeblefester}.

        [veeblefeetzer or veeblefetzer?]

        (1996-03-31)

VEL

        See {LISP70}.

Vendor Independent Messaging

        <networking> (VIM) An {electronic mail} {API} promoted by an
        industry group headed by {Lotus Development}.  VIM is a
        competitor to {Microsoft}'s {MAPI}.

        [Features?]

        (1995-03-28)

ventilator card

        {lace card}

Ventura Publisher

        {Corel VENTURA}

Venus flytrap

        [after the insect-eating plant] See {firewall machine}.

verbage

        <spelling, jargon> /ver'b*j/ A deliberate misspelling and
        mispronunciation of {verbiage} that assimilates it to the word
        "garbage".  Compare {content-free}.  More pejorative than
        "verbiage".

        (1996-12-13)

verbiage

        When the context involves a software or hardware system, this
        refers to {documentation}.  This term borrows the connotations
        of mainstream "verbiage" to suggest that the documentation is
        of marginal utility and that the motives behind its production
        have little to do with the ostensible subject.

Verdi

        (named after the Italian composer Giuseppe Verdi (1813-1901))
        Provable systems language.  Descendant of Ottawa Euclid.

verification

        The process of determining whether or not the products of a
        given phase in the life-cycle fulfil a set of established
        requirements.

Verilog

        <language> A {Hardware Description Language} for electronic
        design and gate level {simulation} by {Cadence Design
        Systems}.

        {xnf2ver} is an {XNF} to Verilog translator.

        ["The Verilog Hardware Description Language", Donald E. Thomas
        & Philip Moorby, {Kluwer} 1991].

        (1999-04-16)

Verilog SA

        <company> A French {real-time software engineering} company.

        (1999-04-16)

Veronica

        <information science> Very Easy Rodent-Oriented Net-wide Index
        to Computerized Archives.  Veronica offers a keyword search of
        most {gopher} menu titles in the entire gopher web.  As
        {archie} is to {FTP} archives, Veronica is to {Gopherspace}.
        A Veronica search produces a menu of Gopher items, each of
        which is a direct pointer to a Gopher data source.  Because
        Veronica is accessed through a Gopher Client, it is easy to
        use, and gives access to all types of data supported by the
        Gopher {protocol}.

        To try Veronica, select it from the "Other Gophers" menu on
        Minnesota's gopher server, or point your gopher at:

         Name=veronica (search menu items in most of GopherSpace)
         Type=1
         Port=70
         Path=1/veronica
         Host=gopher.scs.unr.edu

        {(gopher://gopher.scs.unr.edu/1/veronica)}

Versa Module Europa

        <hardware> (VME) A flexible open-ended bus system which makes
        use of the {Eurocard} standard.

        VME was introduced in 1981 by {Motorola}, {Philips},
        {Thompson}, and {Mostek}.  It was intended to be a flexible
        environment supporting a variety of computing intensive tasks,
        and has become a rather popular protocol in the computer
        industry.  It is defined by the {IEEE} standard 1014-1987.

        (1997-03-10)

version

        <programming> One of a sequence of copies of a program, each
        incorporating new modifications.  Each version is usually
        identified by a number, commonly of the form X.Y where X is
        the major version number and Y is the release number.
        Typically an increment in X (with Y reset to zero) signifies a
        substantial increase in the function of the program or a
        partial or total re-implementation, whereas Y increases each
        time the progam is changed in any way and re-released.

        Version numbers are useful so that the user can know if the
        program has changed ({bug}s have been fixed or new functions
        added) since he obtained his copy and the programmer can tell
        if a bug report relates to the current version.  It is thus
        always important to state the version when reporting bugs.
        Statements about compatibility between different software
        components should always say which versions they apply to.

        See {change management}.

        (1997-12-07)

Version 7

        <operating system> (V7) The unsupported release of {Unix}
        ancestral to all current commercial versions.  {Brian
        Kernighan} announced the release of V7 in summer 1979, at the
        {Unix User's} Group meeting in Toronto.

        Before the release of the {POSIX}/{SVID} {standard}s, V7's
        features were often treated as a {Unix} portability baseline.
        Some old-timers impatient with commercialisation and {kernel
        bloat} still maintain that V7 was the Last True Unix.

        See {BSD}, {USG Unix}, {System V}.

        (1996-05-22)

vertical application

        An {application program} supporting one specific business
        process or type, e.g. payroll.

        Compare {horizontal application}.

        (1994-12-12)

vertical bar

        <character> The character "|", {ASCII} code 124.

        Common names: bar; or; or-bar; v-bar; pipe; vertical bar.
        Rare: {ITU-T}: vertical line; gozinta; thru; pipesinta;
        {INTERCAL}: spike.

        "Pipe", "gozinta", "thru" and "pipesinta" refer to the use of
        "|" in {Unix} shells to create a {pipe}.

        Some keyboards show both a solid vertical bar (code 124) and a
        broken vertical bar (code 166).

        [Does anyone call either kind of vertical bar "{pling}"?
        Other codes?]

        (1998-09-20)

vertical encoding

        <processor> An {instruction set} where a field (a bit or group
        of bits) of the instruction word is decoded (either by
        {hard-wired} {logic} or {microcode}) to generate signals to
        control the {functional unit}s, as opposed to {horizontal
        encoding} where the instruction word bits are used as the
        control signals directly.

        With vertical encoding, which combinations of signals and
        operations are possible is dictated by the decoding logic; the
        instruction field can only select one of these preprogrammed
        combinations.  This has the advantage that many control
        signals can be generated based on only a few instruction word
        bits and only valid combinations of control signals can be
        generated, e.g. only one source driving a {bus} at once.  An
        {instruction set} may use a mixture of horizontal and vertical
        encoding within each instruction.

        (1995-04-23)

vertical loop combination

        See {fusion}.

vertical microcode

        <processor> {Microcode} using {vertical encoding}.

        (1995-04-23)

vertical refresh rate

        <hardware> Synonym for {refresh rate}.

        (1996-02-09)

vertical scan rate

        <hardware> Synonym for {refresh rate}.

        (1996-02-09)

Very high bit-rate Digital Subscriber Line

        <communications, protocol> (VDSL) A form of {Digital
        Subscriber Line} similar to {ADSL} but providing higher speeds
        at reduced lengths.

        (1998-05-18)

Very Large Database

        <database> (VLDB) A {database} that can use a {Very Large
        Memory} model to keep as much data as possible in {physical
        memory}.

        (Oracle
        {http://www.oracle.com/platforms/dec/collateral/vlmwp_3.html}).

        (1998-07-07)

Very Large Memory

        <architecture> (VLM) A {processor} and {operating system} that
        can use more than 4GB of {RAM}, which is the limit for systems
        using {32-bit} addresses.

        VLM architectures allow {application programs} and {Very Large
        Databases} with more than 4GB of data to be placed entirely in
        {physical memory}, with large performance enhancements.

        Some recent processors like the {DEC Alpha} can process 64
        bits of data at a time and use addresses wider than 32 bits.

        {Digital Unix (http://www.unix.digital.com/unix/64bit/)}.

        (Solaris {http://www.sun.com/solaris/64bit.html}).

        (SGI {http://www.sgi.com/Technology/standard/faq.html}).

        (Unix 98
        {http://www.UNIX-systems.org/version2/whatsnew/login_64bit.html}).

        [How wide are the address busses?]

        (1998-07-07)

Very Large Scale Integration

        <hardware> (VLSI) A term describing semiconductor {integrated
        circuits} composed of hundreds of thousands of {logic elements} or
        memory cells.

        (1995-01-11)

Very Long Instruction Word

        (VLIW) Used to describe an {assembly language} {instruction
        set} implemented using {horizontal microcode}.  A horizontally
        encoded instruction word which encodes four or more operations
        might be considered "very long".

        VLIW architectures are sometimes classified as a type of
        static {superscalar} architecture.  They are static in the
        sense that which units operate in parallel is determined by
        the instruction rather than by dynamic scheduling at run-time.

        Producing code for VLIW machines is difficult; {trace
        scheduling} is a helpful compiler technique.

        The most famous VLIW machine was built by (the late)
        {Multiflow Computer, Inc.}

        (1994-11-11)

Very Small Aperture Terminal

        <communications> (VSAT) A kind of {ground station} used to
        contact a communications satellite such as INMARSAT.

        (1995-03-28)

VESA

        {Video Electronics Standards Association}

VESA Local Bus

        <hardware, standard> (VL, VLB) A {local bus} defined by the
        {Video Electronics Standards Association}, mostly used in
        {personal computer}s based on the {Intel 486}.  See also
        {PCI}.

        (1995-03-31)

V.FAST

        {V.34}

VFAT

        <operating system> A standard developed by {Microsoft} to
        enable long file names on standard {FAT} {partitions}.  VFAT
        suffers from all the drawbacks of FAT and adds more problems
        but moving to it is very easy.

        (1996-12-23)

V.FC

        <communications, protocol> A serial line {protocol} supported
        by some {modems}.  Uses {symbol rates} of 2400, 2800, 3000,
        >3200 and 3429 and up to 28800 {baud}.

        {V.34} modems will also support V.FC if the manufacturer
        currently supports V.FC.

        The first V.FC modems were shipped in November 1993 and there
        have been many thousands sold.  There will probably be in
        excess of a million V.FC modems installed by the end of 1994.

        V.FC was intended to take some of the techniques being
        proposed for V.34 and put them into a real modem that people
        could use.  This also gave a lot of people the opportunity to
        try out 28.8 kilobit per second operation for the first time.
        There was never any intention from {Hayes} or {Rockwell} (who
        worked together for two years on V.FC) that V.FC would be
        compatible with V.34 - even if they had wanted it, others
        would have made sure it didn't happen!  In fact, they made the
        start-up deliberately different from V.34 so that it would be
        easy to distinguish between the two and easier to make
        dual-mode V.FC/V.34 modems.

        V.FC is quite different from V.34.  Most of the
        signal-processing {algorithm}s, whilst based on the same
        theory, are implemented in different ways.  V.34 has some
        extra things like a {secondary channel} and a special mode for
        28.8 kilobit per second fax.

        The Rockwell V.FC implementation uses a single-chip
        mask-programmed {DSP} for all the signal processing functions.
        You can also buy a modem controller chip from Rockwell to go
        with it which implements AT commands, error-control and
        {compression}.  Hayes made their own controller using the
        {Motorola} {68302} processor.  When it comes to an upgrade
        from V.FC to V.34 you have to have a new, masked DSP chip and
        new controller {firmware} to implement all the V.34-specific
        features.  This means that Rockwell-DSP based modems must be
        returned to the manufacturer for upgrade.  Upgraded modems
        will talk to either V.FC or V.34 modems.

vg

        <networking> The {country code} for the British Virgin
        Islands.

        (1999-01-27)

VGA

        <hardware> {Video Graphics Array} (not "Adapter").

        (1995-11-16)

VGQF

        A query language.

vgrep

        <jargon> /vee'grep/ (Or "optical grep") Visual {grep}.
        Finding patterns in a file by eye rather than digitally.

        Compare {vdiff}.

        (1998-02-06)

VGX

        {Variational Graphics eXtended}

VHDL

        Very High Speed Integrated Circuit (VHSIC) Hardware
        Description Language.  A large high-level {VLSI} design
        language with Ada-like syntax.  The DoD standard for hardware
        description, now standardised as IEEE 1076.

        ["VHSIC Hardware Description Language", M.R. Shahdad et al,
        IEEE Computer 18(2):94-103 (Feb 1985)].

VHE

        {Virtual Home Environment}

VHLL

        Very-{High-Level Language}.

        A {bondage-and-discipline language} that the speaker happens
        to like; {Prolog} and Backus's {FP} are often called VHLLs.

        (1994-12-07)

vhost

        {virtual host}

VHS

        1. {Very High Speed}.

        2. {storage} Video Home System.

        JVC's video cassette format.

        3. {Virtual Host Storage}.

vi

        1. <tool> {Visual Interface}.

        2. <networking> The {country code} for the U. S. Virgin
        Islands.

        (1999-01-27)

Vic20

        <computer> A home computer made by {Commodore} with a {6502}
        {CPU}, similar in style to the {Commodore 64} and {Commodore
        C16}.  The Vic20 0was released before the C64, and after the
        {Commodore PET}(?).  The Vic20 was intended to be more of a
        low-end home computer than the PET.

        The Vic20 had connectors for game cartridges and a {tape
        drive} (compatible with a C64).

        The Vic20 came with five {kilobytes} of {RAM}, but 1.5 KB were
        used by the system for various things, like the video display
        (which had an unusual 22x20 char/line screen layout), and
        other dynamic aspects of the {operating system} (such as it
        was).  The RAM was expandable to 32k with an optional plug-in
        cartridge that used the second rear card interface (not the
        Game/Cartridge Port).

        The name "VIC" came from the Video Interface Chip that was
        also used in the other, later, Commodore 8-bit computers.

        [Confirm details?  "Vic20" or "VIC-20"?]

        (1997-09-14)

video adapter

        {graphics adaptor}

video card

        {graphics adaptor}

video compression

        {Compression} of sequences of images.  Video compression
        {algorithm}s use the fact that there are usually only small
        changes from one "frame" to the next so they only need to
        encode the starting frame and a sequence of differences
        between frames.  This is known as "inter-frame coding" or "3D
        coding".

        {MPEG} is a committee producing {standard}s in this area and
        also the name of their standard {algorithm}.  {H.261} is
        another standard.

        See also {Integrated Information Technology}, {3DO},
        {full-motion video}, {Online Media}.

video conference

        An instance of {video conferencing}.

video conferencing

        <communications> A discussion between two or more groups of
        people who are in different places but can see and hear each
        other using electronic communications.  Pictures and sound are
        carried by the telecommunication network and such conferences
        can take place across the world.

        To overcome the {bandwidth} and {latency} limitations of
        current networks (especially the {PSTN}), some form of {video
        compression} is often used.

        (1995-05-01)

video dial tone

        <communications> A means by which telephone companies can
        deliver "television" programs on a {common carrier} basis and,
        by law, provide equal access to all.

        [What does this mean?]

        (1996-12-01)

video display terminal

        {visual display unit}

Video Electronics Standards Association

        <body, standard> (VESA) An industry {standard}s organisation
        created in 1989 or 1990 mostly(?) concerned with {IBM}
        compatible {personal computer}s.  The first standard it
        created was the 800 x 600 pixel {Super VGA} (SVGA) display and
        its software interface.  It also defined the {VESA Local Bus}
        (VLB).

        See also {PCI}.

        {Home (http://www.vesa.org/)}

        (1995-11-16)

Video Graphics Adapter

        {Video Graphics Array}

Video Graphics Adaptor

        {Video Graphics Array}

Video Graphics Array

        <hardware> (VGA) A {display standard} for {IBM PC}s, with 640
        x 480 {pixel}s in 16 colours and a 4:3 {aspect ratio}.  There
        is also a text mode with 720 x 400 pixels.

        IBM technical references define the *product name* of their
        original VGA display board as "Video Graphics Array", in
        contrast to the preceding boards, the "{Color Graphics
        Adapter}" (CGA) and "{Enhanced Graphics Adapter}" (EGA).

        See also {Super Video Graphics Adapter}.

        (1995-01-12)

video memory

        <storage> The memory in a computer's {graphics adaptor}, used
        to store the image displayed on a {bitmap display}.  Often
        this is built using {VRAM} chips.  There is normally a simple
        correspondence between groups of {bits} in video memory and
        the dots or "{pixels}" on the screen, such that writing to a
        given group of bits will alter the appearance of a single dot.
        If each pixel corresponds to eight bits then it can have any
        of 256 colours (or shades of grey on a monochrome display).

        The video display electronics is responsible for reading the
        data from video memory and converting it into the necessary
        signals to drive the display.  Often this includes a {colour
        palette} which converts pixel values into {RGB} triplets.

        (1996-11-01)

Video on Demand

        <communications> (VoD) A planned system using {video
        compression} to supply programs to viewers when requested, via
        {ISDN} or cable.

        (1994-11-02)

video RAM

        {video random access memory}

video random access memory

        <hardware> (VRAM) Fast memory designed for storing the image
        to be displayed on a computer's {monitor}.  VRAM may be built
        from special memory {integrated circuits} designed to be
        accessed sequentially.

        VRAM must be fast enough to supply data to the display
        electronics at the speed at which the screen is scanned.  Thus
        for example, for a {resolution} of 1280x1024 eight-bit
        {pixels} at a {refresh rate} of 70 Hz, the {video memory}
        would need to supply 1280x1024x70 = 90 Mbyte/s or one byte
        every 11 ns.  The VRAM may be {dual ported} in order to allow
        the display electronics and the {CPU} to access it at the same
        time.

        In an {IBM PC} the VRAM is located on the display interface
        card and 0.5 - 2 MB is typical.

        (1995-03-14)

video terminal

        {visual display unit}

videotex

        An obsolete electronic service offering people the privilege
        of paying to read the weather on their television screens
        instead of having somebody read it to them for free while they
        brush their teeth.  The idea bombed everywhere it wasn't
        government-subsidised, because by the time videotex was
        practical the installed base of personal computers could hook
        up to {time-sharing} services and do the things for which
        videotex might have been worthwhile better and cheaper.
        Videotex planners badly overestimated both the appeal of
        getting information from a computer and the cost of local
        intelligence at the user's end.  Like the {gorilla arm}
        effect, this has been a cautionary tale to hackers ever since.
        See also {vannevar}.

Vienna Definition Language

        (VDL) IBM Vienna Labs.  A language for formal, algebraic
        definition via operational semantics.  Used to specify the
        semantics of PL/I.  See also {VDM}.

        ["The Vienna Definition Language", P. Wegner, ACM Comp Surveys
        4(1):5-63 (Mar 1972)].

Vienna Definition Method

        (VDM) A program development method based on formal
        specification using the {Meta-IV} language.

Vienna Fortran

        A {data-parallel} extension of {Fortran 77} for distributed
        memory multiprocessors by Hans Zima
        <zima@sophie.par.univie.ac.at>, Vienna University.

        ["Programming In Vienna Fortran", B. Chapman et al, Scientific
        Programming 1(1):31-50 (Aug 1992)].

viewer

        <tool> A program to allow a file to be read (or played) but
        not changed.  Viewers are often freely distributable, even
        when the editor application is not.  This allows you to create
        files with the editor and make the viewer available to other
        users to view your files, e.g. on a {web site}.  Examples
        include the Word and Adobe Acrobat viewers.

        (1997-08-29)

ViewPoints

        <programming> A framework for distributed and {concurrent}
        software engineering which provides an alternative approach to
        traditional centralised software development environments.

        Decentralised process models are used to drive consistency
        checking and conflict resolution.  The process models use
        pattern matching on local development histories to determine
        the particular state of the development process, and employ
        rules to trigger situation-dependent assistance to the user.
        Communication between such process models facilitates the
        decentralised management of explicitly defined consistency
        constraints.

        [Ulf Leonhardt]

        (1995-03-27)

Views

        A Smalltalk extension for computer algebra.  "An Object
        Oriented Approach to Algebra System Design", K. Abdali et al,
        in Symp Symb Alg Manip, ACM 1986, pp.24-30.

VIF

        VHDL Interface Format.  Intermediate language used by the
        Vantage VHDL compiler.  "A VHDL Compiler Based on Attribute
        Grammar Methodology", R. Farrow et al, SIGPLAN NOtices
        24(7):120-130 (Jul 1989).

Vi Improved

        <text, tool> (VIM) (Previously "vi iMitation"), An improved
        version of {vi}, available for many {platforms}.  VIM allows
        multiscreen editing, more flexible insert/command {mode}
        handling, better {C} indentation and much more.

        {Home (http://www.vim.org/)}.

        (1999-06-15)

VIM

        1. <messaging> {Vendor Independent Messaging}.

        2. <text, tool> {Vi Improved}.

        (1999-06-15)

vines

        <networking, product> A family of {local area network}ing
        products from {Banyan}.

        (1995-03-01)

Vine Technology

        <company> A company which provides professional consulting
        services in the areas of networking, real-time systems,
        graphic arts, and {World-Wide Web} server advertisement space.

        {Home (http://www.vine.com/)}

        E-mail: <webmaster@vine.com>.

        (1995-03-03)

Vint Cerf

        <person> (Vinton G. Cerf) The co-inventor with {Bob Kahn} of
        the {Internet} and its base {protocol}, {TCP/IP}.  Like {Jon
        Postel}, he was crucial in the development of many
        higher-level protocols, and has written several dozen {RFC}s
        since the late 1960s.

        Vinton Cerf is senior vice president of Internet Architecture
        and Technology for {MCI WorldCom}.  His team of architects and
        engineers design advanced Internet frameworks for delivering a
        combination of data, information, voice and video services for
        business and consumer use.

        In December 1997, President Clinton presented the U.S.
        National Medal of Technology to Cerf and his partner, Robert
        E. Kahn, for founding and developing the Internet.

        Prior to rejoining MCI in 1994, Cerf was vice president of the
        Corporation for National Research Initiatives (CNRI).  As vice
        president of MCI Digital Information Services from 1982-1986,
        he led the engineering of {MCI Mail}, the first commercial
        e-mail service to be connected to the Internet.

        During his tenure from 1976-1982 with the U.S. Department of
        {Defense Advanced Research Projects Agency} (DARPA), Cerf
        played a key role leading the development of Internet and
        Internet-related data packet and security technologies.

        Cerf served as founding president of the {Internet Society}
        from 1992-1995 and is currently chairman of the Board.  Cerf
        is a member of the U.S. Presidential Information Technology
        Advisory Committee (PITAC) and the Advisory Committee for
        Telecommunications (ACT) in Ireland.

        Cerf is a recipient of numerous awards and commendations in
        connection with his work on the Internet.  In December 1994,
        People magazine identified Cerf as one of that year's "25 Most
        Intriguing People."

        In addition to his work on behalf of MCI and the Internet,
        Cerf serves as technical advisor to production for "Gene
        Roddenberry's Earth: Final Conflict," the number one
        television show in first-run syndication.  He also made a
        special guest appearance in May 1998. Cerf also holds an
        appointment as distinguished visiting scientist at the Jet
        Propulsion Laboratory where he is working on the design of an
        interplanetary Internet.

        Cerf holds a Bachelor of Science degree in Mathematics from
        Stanford University and Master of Science and Ph.D. degrees in
        Computer Science from UCLA.  He also holds honorary Doctorate
        degrees from the Swiss Federal Institute of Technology,
        Zurich; Lulea University of Technology, Sweden; University of
        the Balearic Islands, Palma; Capitol College and Gettysburg
        College.

        {Home (http://www.mci.com/cerfsup/)}.

        (1999-02-25)

Vinton Cerf

        {Vint Cerf}

Viola

        An experimental {hypercard}-like interpreted {hypertext}
        system by Pei Y. Wei of {Berkeley}.

        (1994-11-30)

virgin

        Unused; pristine; in a known initial state.  "Let's bring up a
        virgin system and see if it crashes again."  (Especially
        useful after contracting a {virus} through {SEX}.)  Also, by
        extension, buffers and the like within a program that have not
        yet been used.

        (1994-11-30)

virgule

        <character> Rare, and ambiguous: {slash} or {comma}.

        "Virgule" (or rather, Latin "virgula", meaning "little rod"
        or, vividly enough, "little penis") was the name of a
        punctuation character shaped like a small {slash} and used in
        the Latin writing system much like a modern {comma} -- hence
        the ambiguity of this term in modern English.

        Compare French "virgule" and Italian "virgola", meaning
        "comma" (not "slash"); Italian "doppia virgola" and
        "virgoletta", both meaning "{double quote}".

        (1997-04-08)

Viron

        ["Five Paradigm Shifts in Programming Language Design and
        Their Realisation in Viron, a Dataflow Programming
        Environment", V. Pratt, 10th POPL, ACM 1983, pp. 1-9].

        (1994-11-30)

virtual

        (Via the technical term {virtual memory}, probably from the
        term "virtual image" in optics) 1. Common alternative to
        {logical}; often used to refer to the artificial objects (like
        addressable {virtual memory} larger than physical memory)
        created by a computer system to help the system control access
        to shared resources.

        2. Simulated; performing the functions of something that isn't
        really there.  An imaginative child's doll may be a virtual
        playmate.

        Opposite of {real} or physical.

        (1994-11-30)

virtual 86 mode

        <processor, programming> (Or "virtual mode" or "virtual 8086
        mode") An operating mode provided by the {Intel 80386} and
        later processors to allow {real mode} programs to run under
        {operating system}s which use {protected mode}.  In this
        sub-mode of protected mode, an operating environment is
        created which mimics the address calculation in real mode.

        In virtual 86 mode the segment {MMU} is practically turned off
        and the {segment register}s exhibit the same behaviour as in
        real mode.  The {page}d MMU, however, still operates.  This
        means that the one megabyte {address space} of real mode can
        be remapped in four kilobyte {page}s to anywhere in the 32 bit
        {physical address} space.  Each page can be protected
        separately from read or write accesses.

        Virtual mode is handled on a per-task-basis, so each
        {exception} (from protection violations or {interrupt}s)
        switches the processor back into protected mode.  It is
        therefore possible to have multiple tasks in virtual mode
        which run {concurrent}ly under the control of an operating
        system which runs in protected mode.

        Most operating system services in {MS-DOS} systems are called
        by {software interrupt}s, which are a kind of exception.  If
        an MS-DOS application runs in virtual mode under the control
        of a protected mode operating system, each call to MS-DOS
        causes a switch to protected mode.  The operating system
        emulates the MS-DOS service and switches back to the
        application in virtual mode.  From the viewpoint of the
        application nothing differs from real mode.

        {Microsoft Windows}, {Windows NT}, and {OS/2} use this feature
        to implement "DOS-boxes" in which both MS-DOS and real mode
        {application program}s can run.

virtual address

        1. A memory location accessed by an {application program} in a
        system with {virtual memory} such that intervening hardware
        and/or software maps the virtual address to real ({physical})
        memory.  During the course of execution of an application, the
        same virtual address may be mapped to many different {physical
        address}es as data and programs are {paged out} and {paged in}
        to other locations.

        2. ({IBM}'s {VM} {operating system}), {Virtual Device
        Location}.

virtual cache

        A {cache} which uses {virtual address}, i.e. it is between the
        processor and the {memory management unit}.  A virtual cache
        cannot recognise external access to physical address, e.g. from
        {DMA}.  The whole cache must be flushed when swapping between
        tasks which share same virtual {address space}.

        (1994-11-30)

virtual circuit

        A {connection-oriented} {network} service which is implemented
        on top of a network which may be either connection-oriented or
        {connectionless} ({packet switching}).

Virtual Control Program Interface

        (VCPI) An alternative, and incompatible method for doing the
        same thing as {DOS Protected Mode Interface} (DPMI).

        (1995-01-12)

Virtual Device Driver

        <operating system> (VxD) A {device driver} under {Windows
        3.x}/{Windows 95} running as part of the {kernel} and thus
        having access to the memory of the kernel and all running
        processes as well as raw access to the hardware.  VxD's
        usually have the {filename extension} .386 under Windows 3.x
        and .vxd under Windows 95.  VxD's written for Windows 3.x can
        be used under Windows 95 but not vice versa.

        (1997-02-27)

Virtual Device Location

        (Or "Virtual Address") The address of a device (e.g. disk,
        printer, terminal) belonging to a "guest" {operating system}.
        Such an address is mapped to a physical device.  VM may remap
        several virtual disks to different parts of a single physical
        disk.

        (1995-02-22)

virtual disk

        {RAM disk}

Virtual Home Environment

        (VHE) A tool for using {NFS} on {HP UX}.

        (1994-12-07)

virtual host

        <networking> Most computers on the {Internet} have a single
        {Internet address}; however, often via special {kernel}
        patches, a given computer can be made to respond to several
        {IP} addresses and provide different {services} (typically
        different {Web} services) on each.  Each of these different IP
        addresess (which generally each have their own {hostname}) act
        as if they were distinct hosts on distinct machines, even
        though they are actually all one host.  Hence, they are
        {virtual} hosts.  A common use is when an {Internet Service
        Provider} "hosts" {World-Wide Web} or other services for
        several of their customers on one computer but giving the
        appearence that they are separate servers.

        (1997-09-11)

Virtual LAN

        <networking> Software defined groups of {host} on a {local
        area network} (LAN) that communicate as if they were on the
        same wire, even though they are physically on different {LAN
        segment}s throughout a site.  To define a virtual LAN, the
        {network administrator} uses a virtual LAN management utility
        to establish membersip rules that determine which hostss are
        in a specific virtual LAN.  Many models may exist but two seem
        to dominate:

        (1) Vitual Segment (or Port-Group) Virtual LAN.  These are
        switched at the {data link layer} ({OSI} layer 2).  Virtual
        segments turn an arbitrary number of physical segments into a
        single virtual segment that funtions as a self-contained
        traffic domain.

        (2) Virtual Subnet Virtual LAN: These are switched at the
        {Network Layer} ({OSI} layer 3).  Subnet-oriented virtual LANs
        are based on {subnet address}es used by {IP}, {IPX}, and other
        {network layer} {protocol}s to normally identify physical
        networks.  Administrators assign one subnet address to a
        number of switch {port}s (which may be on different switches
        and over a backbone).  Once identified as a virtual subnet,
        the selected LANs function as a {bridge group} - traffic is
        bridged at Layer 2 within the virtual subnet and routed at
        Layer 3 between virtual subnets.

        ["The many faces of virtual LANs", Steven King, Network
        World, 1994/5?].

        (1995-04-03)

Virtual Loadable Module

        <networking> (VLM) {Novell}'s term for software modules that
        can be dynamically loaded to extend the functionality of the
        "VLM" {NetWare Requester} for {MS-DOS} that became standard
        beginning with {Novell NetWare} 4.

        (1995-01-11)

Virtual Machine

        <operating system> (VM) An {IBM} pseudo-{operating system}
        {hypervisor} running on {IBM 370}, {ESA} and {IBM 390}
        architecture computers.

        VM comprises CP ({Control Program}) and CMS ({Conversational
        Monitor System}) providing Hypervisor and personal computing
        environments respectively.  VM became most used in the early
        1980s as a Hypervisor for multiple {DOS/VS} and {DOS/VSE}
        systems and as IBM's internal operating system of choice.  It
        declined rapidly following widespread adoption of the {IBM PC}
        and hardware partitioning in {microcode} on IBM {mainframes}
        after the {IBM 3090}.

        VM has been known as VM/SP (System Product, the successor to
        {CP/67}), VM/XA and currently as VM/ESA.  VM/ESA is still in
        used in 1999, featuring a {web} interface, {Java} and {DB2}.
        It is still a major IBM operating system.

        {Home (http://vmdev.gpl.ibm.com/)}.

        ["History of VM"(?), Melinda Varian, Princeton University].

        (1999-01-19)

virtual machine

        1. An {abstract machine} for which an {interpreter} exists.
        Virtual machines are often used in the implementation of
        portable executors for {high-level languages}.  The HLL is
        compiled into code for the virtual machine (an {intermediate
        language}) which is then executed by an {interpreter} written
        in {assembly language} or some other portable language like
        {C}.

        Examples are {Core War}, {Java Virtual Machine}, {OCODE},
        {OS/2}, {POPLOG}, {Portable Scheme Interpreter}, {Portable
        Standard Lisp}, {Parallel Virtual Machine}, {Sequential Parlog
        Machine}, {SNOBOL Implementation Language}, {SODA}.

        2. A software emulation of a physical computing environment.

        The term gave rise to the name of {IBM}'s {VM} {operating
        system} whose task is to provide one or more simultaneous
        execution environments in which operating systems or other
        programs may execute as though they were running "on the bare
        iron", that is, without an eveloping Control Program.  A major
        use of VM is the running of both outdated and current versions
        of the same operating system on a single {CPU} complex for the
        purpose of system migration, thereby obviating the need for a
        second processor.

        (1999-03-12)

Virtual Machine/Conversational Monitor System

        <operating system> (VM/CMS) An {IBM} {time-sharing} and
        personal computing environment executing under {Virtual
        Machine} (VM) in a virtual machine environment.  VM/CMS is
        designed to support large numbers of {interactive} users.  It
        relies on numerous {API}s into the {Control Program} (CP) to
        provide very efficient single-user processing

        VM/CMS was only adopted some time after the original design of
        {Virtual Machine} as a more efficient personal computing
        environment than {MVS/TSO}.

        (1999-01-19)

Virtual Machine Environment

        <operating system> (VME) {ICL}'s {mainframe} {operating
        system}.

        (1995-06-28)

Virtual Machine/ESA

        {Virtual Machine}

Virtual Machine/System Product

        {Virtual Machine}

Virtual Machine/XA

        {Virtual Machine}

virtual memory

        <memory management> The {address space} available to a process
        running in a system with a {memory management unit} (MMU).

        The virtual {address space} is divided into {pages}.  Each
        {physical address} output by the {CPU} is split into a
        ({virtual}) {page} number (the most significant bits) and an
        offset within the page (the N least significant bits).  Each
        page thus contains 2^N {bytes} (or whatever the unit of
        addressing is).

        The offset is left unchanged and the virtual page number which
        is mapped by the {memory management unit} (MMU) to a
        {physical} page number.  This is recombined with the offset to
        give a {physical address} - a location in {physical memory}
        ({RAM}).

        Virtual memory is usually much larger than physical memory.
        {Paging} allows the excess to be stored on {hard disk} and
        copied to RAM as required.  This makes it possible to run
        programs for which the total code plus data size is greater
        than the amount of RAM available.  This is known as "{demand
        paged} virtual memory".  A page is copied from disk to RAM
        when an attempt is made to access it and it is not already
        present.  This paging is performed automatically by
        collaboration between the {CPU}, the {MMU} and the {operating
        system} {kernel}, and the program is unaware of it.

        The performance of a program will depend dramatically on how
        its memory access pattern interacts with the paging scheme.
        If accesses exhibit a lot of {locality of reference},
        i.e. each access tends to be close to previous accesses, the
        performance will be better than if accesses are randomly
        distributed over the program's {address space} thus requiring
        more paging.

        In a {multitasking} system, physical memory may contain pages
        belonging to several programs.  Without {demand paging}, an OS
        would need to allocate physical memory for the whole of every
        active program and its data.  Such a system might still use an
        {MMU} so that each program could be located at the same
        {virtual address} and not require run-time relocation.  Thus
        virtual addressing does not necessarily imply the existence of
        virtual memory.  Similarly, a {multitasking} system might load
        the whole program and its data into physical memory when it is
        to be executed and copy it all out to disk when its
        {timeslice} expired.  Such "swapping" does not imply virtual
        memory and is less efficient than paging.

        Some {application programs} implement virtual memory wholly in
        software, by translating every virtual memory access into a
        file access, but efficient virtual memory requires hardware
        and operating system support.

        (1997-08-27)

Virtual Memory System

        <operating system> (VMS) {DEC}'s proprietary {operating
        system} originally produced for its {VAX} {minicomputer}.

        VMS V1 was released in August 1978.  VMS was renamed "OpenVMS"
        around version 5.5.  The first version of VMS on {DEC Alpha}
        was known as OpenVMS for AXP V1.0, and the correct way to
        refer to the operating system now is OpenVMS for VAX or
        OpenVMS for Alpha.  The renaming also signified the fact that
        the {X/Open} consortium had certified OpenVMS as having a high
        support for {POSIX} standards.

        VMS is one of the most secure operating systems on the market
        (making it popular in financial institutions).  It currently
        (October 1997) has the best {clustering} capability (both
        number and distance) and is very scalable with {binaries}
        portable from small desktop {workstations} up to huge
        {mainframes}.

        Many {Unix} fans generously concede that VMS would probably be
        the {hacker}'s favourite commercial OS if Unix didn't exist;
        though true, this makes VMS fans furious.

        {FAQ
        (http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/os/vms/top.
html)}.

        {Usenet} newsgroup: {news:comp.os.vms}.

        [How does its performance compare with other OSes?]

        (1999-06-03)

virtual path

        <networking> The location of a file or directory on a
        particular {server}, as seen by a remote {client} accessing it
        via {World-Wide Web} (or similar distributed document
        service).

        A virtual path provides access to files outside the default
        directory and subdirectories.  It appears in the form
        ".../~name/..." where "~name" is replaced with actual path
        configured by the administrator.  An {access control list} can
        be associated with a virtual path.

        (1995-04-13)

virtual point of presence

        (virtual PoP) A point, via which users can connect to an
        {Internet access provider}, which is not operated by the
        provider.  The user is charged by the telephone company for
        the call to the virtual point of presence which relays his
        call via some third party circuit to the Internet provider's
        central location.  This is in contrast to a physical {point of
        presence} (PoP) which is operated by the Internet provider
        themselves.  The advantage of a virtual PoP is that the
        provider can keep all their {modem}s in one location, thus
        improving availability and maintenance, but users do not have
        to pay long-distance call charges to that point.

        (1994-12-13)

virtual PoP

        {virtual point of presence}

Virtual Private Network

        <networking, security> (VPN) The use of {encryption} in the
        lower {protocol layers} to provide a secure connection through
        an otherwise insecure network, typically the {Internet}.  VPNs
        are generally cheaper than real private networks using private
        lines but rely on having the same encryption system at both
        ends.  The encryption may be performed by {firewall} software
        or possibly by {routers}.

        [Which layers?]

        (1997-12-03)

virtual reality

        (VR)

        1. <application> Computer simulations that use 3D graphics and
        devices such as the {data glove} to allow the user to interact
        with the simulation.

        2. <games> A form of network interaction incorporating aspects
        of role-playing games, interactive theater, improvisational
        comedy, and "true confessions" magazines.  In a virtual
        reality forum (such as {Usenet}'s {news:alt.callahans}
        newsgroup or the {MUD} experiments on {Internet} and
        elsewhere), interaction between the participants is written
        like a shared novel complete with scenery, "foreground
        characters" that may be personae utterly unlike the people who
        write them, and common "background characters" manipulable by
        all parties.  The one iron law is that you may not write
        irreversible changes to a character without the consent of the
        person who "owns" it, otherwise, anything goes.

        See {bamf}, {cyberspace}.

        (1995-01-30)

Virtual Reality Modeling Language

        <virtual reality, language> (VRML) A draft specification for
        the design and implementation of a {platform}-independent
        language for {virtual reality} scene description.

        VRML 1.0 was released on 1995-05-26.

        {Home (http://www.vrml.org/)}

        {Wired (http://vrml.wired.com/)}

        {Hypermail Archive (http://vrml.wired.com/arch/)}

        Mailing list: <majordomo@wired.com> (message body: "subscribe
        www-vrml your-email-address").

        (1995-07-20)

Virtual Sequential Access Method

        <database> (VSAM) An {IBM} disk file storage scheme first used
        in {S/370} and virtual storage.  VSAM comprises three access
        methods: {Keyed Sequential Data Set} (KSDS), {Relative Record
        Data Set} (RRDS) and {Entry Sequenced Data Set} (ESDS).

        Both {IMS/DB} and {DB2} are implemented on top of VSAM and use
        its underlying data structures.

        (1999-01-18)

virtual shredder

        The jargon equivalent of the {bit bucket} at shops using
        {IBM}'s {VM/CMS} {operating system}.  VM/CMS officially
        supports a whole bestiary of virtual card readers, virtual
        printers, and other phantom devices; these are used to supply
        some of the same capabilities {Unix} gets from {pipe}s and
        {I/O redirection}.

        (1995-01-30)

Virtual Software Factory

        <programming, tool> (VSF) A product from {Systematica} which
        allows users to develop {CASE} tools appropriate to any
        software engineering methodology.

        (1997-06-09)

Virtual Storage Extended

        <operating system> (VSE, formerly DOS/VSE) is a
        {multitasking}, {IBM 370}-architected {operating system}
        similar to {Multiple Virtual Storage} (MVS).

        VSE run jobs in {partitions} rather than {address spaces}, and
        uses {POWER} for input/output rather than {JES}, but is
        largely similar to MVS.  Subsequent VSE/{ESA} releases gave
        VSE the {XA-370} channel architecture, 31-bit virtual and real
        storage support, and data spaces.  VSE is the {IBM} operating
        system on one-third of installed {IBM 4381}s and a significant
        proportion of {IBM 9370}s as well.  It offers {transaction
        processing} and {batch processing} capabilities well beyond
        {Virtual Machine}'s current capabilities, and has a close
        affinity with MVS.

        (1997-06-09)

Virtual Telecommunications Access Method

        (VTAM) A data communications access method compatible with
        {IBM}'s {Systems Network Architecture}.

        [More detail?]

        (1995-01-30)

virus

        (By analogy with biological viruses, via SF) A {cracker}
        program that searches out other programs and "infects" them by
        embedding a copy of itself in them, so that they become
        {Trojan horse}s.  When these programs are executed, the
        embedded virus is executed too, thus propagating the
        "infection".  This normally happens invisibly to the user.

        Unlike a {worm}, a virus cannot infect other computers without
        assistance.  It is propagated by vectors such as humans
        trading programs with their friends (see {SEX}).  The virus
        may do nothing but propagate itself and then allow the program
        to run normally.  Usually, however, after propagating silently
        for a while, it starts doing things like writing "cute"
        messages on the terminal or playing strange tricks with the
        display (some viruses include {display hack}s).  Many nasty
        viruses, written by particularly antisocial {cracker}s, do
        irreversible damage, like deleting all the user's files.

        In the 1990s, viruses have become a serious problem,
        especially among {IBM PC} and {Macintosh} users (the lack of
        security on these machines enables viruses to spread easily,
        even infecting the operating system).  The production of
        special {antivirus software} has become an industry, and a
        number of exaggerated media reports have caused outbreaks of
        near hysteria among users; many {lusers} tend to blame
        *everything* that doesn't work as they had expected on virus
        attacks.  Accordingly, this sense of "virus" has passed into
        popular usage (where it is often incorrectly used to denote a
        {worm} or even a {Trojan horse}).

        See {boot virus}, {phage}.  Compare {back door}.  See also
        {Unix conspiracy}.

        (1995-01-31)

visible bell

        <communications> (Or "visual bell") A program option (whether
        in a terminal program, {termcap} setting, or as a
        {stand-alone} program) which outputs the {bell} {character
        code} as a visual signal (e.g., a flashing status bar or menu
        bar).

        Generally intended for deaf or hearing-disabled users who
        couldn't hear the normal auditory beep; also widely used by
        users who simply don't want their machines {feep}ing at them
        or disturbing other users.

        [Implementations?]

        (1997-04-07)

visionary

        1. One who hacks vision, in the sense of an Artificial
        Intelligence researcher working on the problem of getting
        computers to "see" things using TV cameras.  (There isn't any
        problem in sending information from a TV camera to a computer.
        The problem is, how can the computer be programmed to make use
        of the camera information?  See {SMOP}, {AI-complete}.)

        2. [IBM] One who reads the outside literature.  At IBM,
        apparently, such a penchant is viewed with awe and wonder.

Visual BASIC

        <language> (VB) A popular {event-driven} {visual programming}
        system for {Microsoft Windows}, in which fragments of {BASIC}
        code are invoked when the user performs certain operations on
        graphical objects on-screen.  Widely used for in-house
        {application program} development by users and for
        prototyping.

        {Strollo Software (http://www.op.net/~jstrollo/vblinks.html)}.

        [Features?  History?  Vendor?]

        (1996-12-21)

Visual Basic for Applications

        <programming> (VBA) {Microsoft}'s common language for
        manipulating components of its {Microsoft Office} suite.  It
        is used as the {macro} language for these applications and is
        the primary means of customising and extending them.  A VBA
        program operates on {objects} representing the application and
        the entities it manipulates, e.g. a {spreadsheet} or a range
        of cells in {Microsoft Excel}.

        [Relationship to {Visual BASIC}?  URL?]

        (1999-09-12)

Visual BASIC Script

        <language> (VBScript) Microsoft's {scripting language} which
        is an extension of their {Visual Basic} language.  VBScript
        can be used with {Microsoft Office} applications and others.
        It can also be embedded in {web pages} but can only be
        understood by {Internet Explorer}.

        Visual Basic is a {BASIC} variant with {object-oriented}
        features.  Objects include applications, windows and
        selections.

        [Relationship with {ASP}?  {VBA}?]

        (1998-07-05)

visual bell

        {visible bell}

Visual C++

        A {C} and {C++} programming environment sold by {Microsoft}
        Corporation.

        {Usenet} newsgroup: {news:comp.lang.c++}.

        [Differences?  Features?]

        (1994-12-21)

Visual Component Library

        <programming> (VCL) A library for {Borland} {Delphi} {rapid
        application developement} software.

        [More details?]

        (1996-08-23)

Visual dBASE

        <language> A {Rapid Application Development} suite with a
        compiler and {intranet} tools to enable developers to publish
        data on the {World-Wide Web}.

        {(http://www.borland.com/VdBASE/)}.

        (1996-11-05)

Visual Display Unit

        <hardware> (VDU, or "video terminal", "video display
        terminal", VDT, "display terminal") A device incorporating a
        {cathode ray tube} (CRT) display, a keyboard and a {serial
        port}.  A VDU usually also includes its own display
        electronics which store the received data and convert it into
        electrical waveforms to drive the CRT.

        VDUs fall into two categories: {dumb terminals} and
        {intelligent terminals} (sometimes called "programmable
        terminals").

        Early VDUs could only display characters in a single preset
        {font}, and these were confined to being layed out in a
        rectangular grid, reproducing the functionality of the
        paper-based {teletypes} they were designed to replace.

        Later models added graphics facilities but were still driven
        via serial communications, typically with several VDUs
        attached to a single multi-user computer.  This contrasts with
        the much faster single {bitmap displays} integrated into most
        modern single-user {personal computers} and {workstations}.

        (1997-11-27)

Visual Interface

        <tool, text> (vi) /V-I/, /vi:/, *never* /siks/ A {screen
        editor} crufted together by {Bill Joy} for an early {BSD}
        release.  vi became the de facto standard {Unix} editor and a
        nearly undisputed hacker favourite outside of {MIT} until the
        rise of {EMACS} after about 1984.

        It tends to frustrate new users no end, as it will neither
        take commands while expecting input text nor vice versa, and
        the default setup provides no indication of which mode the
        editor is in (one correspondent accordingly reports that he
        has often heard the editor's name pronounced /vi:l/).
        Nevertheless it is still widely used (about half the
        respondents in a 1991 {Usenet} poll preferred it), and even
        some EMACS fans resort to it as a mail editor and for small
        editing jobs (mainly because it starts up faster than the
        bulkier versions of EMACS).

        See {holy wars}.

        (1995-10-03)

visualisation

        The act of making a visible presentation of numerical data,
        particularly a graphical one.  This might include anything
        from a simple X-Y graph of one dependent variable against one
        independent variable to a {virtual reality} which allows you
        to fly around the data.

        {Gnuplot} is the {Free Software Founddation}'s utility for
        producing various kinds of graphs.

        {Usenet} newsgroup: {news:comp.graphics}.

        The {Computer Graphics Resource Listing} contains pointers to
        several visualisation tools.

        {FAQ
        (ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics/)}.

        {Electronic Visualization Laboratory, University of Illinois
        at Chicago (http://www.ncsa.uiuc.edu/EVL/docs/Welcome.html)}.

        (1995-02-23)

visual language

        {visual programming language}

visual programming

        1. Writing programs in a language which manipulates visual
        information or supports visual interaction.

        2. Writing programs in a {visual programming language}.

        3. Writing programs in a {visual programming environment}.

visual programming environment

        Software which allows the use of visual expressions (such as
        graphics, drawings, animation or {icon}s) in the process of
        programming.  These visual expressions may be used as
        graphical interfaces for textual programming languages.  They
        may be used to form the syntax of new visual programming
        languages leading to new paradigms such as {programming by
        demonstration} or they may be used in graphical presentations
        of the behaviour or structure of a program.

        (1995-02-23)

visual programming language

        <language> (VPL) Any programming language that allows the user
        to specify a program in a two-(or more)-dimensionsional way.
        Conventional textual languages are not considered
        two-dimensional since the {compiler} or {interpreter}
        processes them as one-dimensional streams of characters.  A
        VPL allows programming with visual expressions - spatial
        arrangements of textual and graphical symbols.

        VPLs may be further classified, according to the type and
        extent of visual expression used, into {icon}-based languages,
        {form}-based languages and {diagram language}s.  {Visual
        programming environment}s provide graphical or iconic elements
        which can be manipulated by the user in an interactive way
        according to some specific spatial grammar for program
        construction.

        A visually transformed language is a non-visual language with
        a superimposed visual representation.  Naturally visual
        languages have an inherent visual expression for which there
        is no obvious textual equivalent.

        {Visual Basic}, {Visual C++} and the entire {Microsoft} Visual
        family are not, despite their names, visual programming
        languages.  They are textual languages which use a graphical
        {GUI builder} to make programming interfaces easier.  The user
        interface portion of the programming environment is visual,
        the languages are not.  Because of the confusion caused by the
        multiple meanings of the term "{visual programming}", Fred
        Lakin has proposed the term "executable graphics" as an
        alternative to VPL.

        Some examples of visual programming languages are {Prograph},
        {Pict}, {Tinkertoy}, {Fabrik}, {CODE 2.0} and {Hyperpascal}.

        {(http://www.cogs.susx.ac.uk/users/ianr/vpl.html)}.
        {(http://cuiwww.unige.ch/eao/www/readme.html)}.

        {Usenet} newsgroup: {news:comp.lang.visual} (NOT for {Visual
        Basic} or {Visual C++}).

        (1995-02-10)

VITAL

        A {semantics} language using {FSL}, developed by Mondshein in
        1967.

        [Sammet 1969, p. 641].

        (1995-02-23)

VIVID

        A numerical {constraint}-oriented language.

        ["VIVID: The Kernel of a Knowledge Representation Environment
        Based on the Constraints Paradigm of Computation", J. Maleki,
        Proc 20th Annual Hawaii Intl Conf on System Sciences (Jan
        1987) pp.591-597].

        (1995-02-23)

viz

        A {visual language} for specification and programming.

        ["viz: A Visual Language Based on Functions", C.M. Holt, 1990
        IEEE Workshop on Visual Langs, Oct 1990, pp.221-226].

        (1995-02-23)

VLB

        {VESA local bus}

VLDB

        {Very Large DataBase}

        [How large?]

        (1996-12-21)

Vlisp

        Patrick Greussay <pg@litp.ibp.fr> ca 1973.

        A {Lisp} dialect with a fast {interpreter} and a portable
        {virtual machine}.  Introduced the "{chronology}", a dynamic
        environment for implementing interrupts.  Led to {Le_Lisp}.
        See also {ObjVlisp}.

        ["Contribution a la Definition Interpretive et a
        l'Implementation des Lambda-Langages", P. Greussay, These
        d'Etat, U Paris VI, Nov 1977].

VLIW

        {Very Long Instruction Word}

VLM

        1. <architecture> {Very Large Memory}.

        2. <networking> {Virtual Loadable Module}.

        (1998-02-24)

VLSI

        {Very Large Scale Integration}

VLSM

        {Variable Length Subnet Masks}

VM

        {Virtual Machine}

VM/CMS

        {Virtual Machine/Conversational Monitor System}

VME

        1. <hardware> {Versa Module Europa}.

        See {VMEbus}.

        2. <operating system> {Virtual Machine Environment}.

VMEbus

        A widely accepted backplane interconnection bus system
        developed by a consortium of companies led by {Motorola}, now
        standardised as {IEEE} 1014.

        (1995-06-01)

VME Microsystems International Corporation

        <company> (VMIC)

        Address: Huntsville, AL, USA.

        Telephone: +1 800 322 3616.

        (1995-06-01)

VM/ESA

        {Virtual Machine}

VML

        VODAK Model Language.  Language for an extensible
        {object-oriented database}.

        ["Object-Oriented Modeling for Hypermedia Systems Using the
        Object-Oriented VODAK Model Language (VML)" Wolfgang Klas et
        al, in Object-Oriented Database Management Systems, NATO ASI
        Series, Springer 1993].

        E-mail: <aberer@darmstadt.gmd.de>.

VMS

        {Virtual Memory System}

VM/SP

        {Virtual Machine}

VM/XA

        {Virtual Machine}

vn

        <networking> The {country code} for Vietnam.

        (1999-01-27)

vocoder

        <communications> Hardware or software which implements a
        {compression} {algorithm} particular to voice.

        For example {Qualcomm} uses a vocoding algorithm to compresses
        voice data in digital communication systems such as wireless
        {CDMA} and {Eudora} voice attach.

        (1998-04-29)

vocoding

        {vocoder}

VoD

        {video on demand}

voice mail

        <messaging, business> Any system for sending, storing and
        retrieving {audio} messages, like a telephone answering
        machine.

        A voice mailbox is typically associated with a telephone
        number or extension.  When the number is called and the line
        is busy or not answered, the caller hears a message left by
        the owner and is given instructions for leaving a message or
        other available options, such as paging the individual or
        being transferred to an operator.  The owner of a mailbox can
        change the outgoing message or listen to incoming messages
        after entering a {PIN}.  Members of a voice mail system can
        generally forward or {broadcast} messages to other members'
        boxes.

        The experience of two people trying to reach other by
        telephone but always reaching each other's voice mail is
        referred to as "(tele)phone tag".

        (1996-11-03)

voice-net

        Hackish way of referring to the {plain old telephone system},
        comparing it to a digital {network}.  {Usenet} {sig block}s
        sometimes include the sender's telephone number next to a
        "Voice:" or "Voice-Net:" header; variants of this are
        "Voicenet" and "V-Net".

        Compare {paper-net}, {snail-mail}.

        (1995-02-16)

Voice over IP

        <communications> (VoIP) Any technology providing {voice
        telephony} services over {IP} connections.  The {IMTC}'s
        {Conferencing over IP} Activity Group is trying to standardise
        this around {H.323}.

        (1999-04-26)

voice recognition

        {speech recognition}

VoIP

        {Voice over IP}

volatile

        1. <programming> {volatile variable}.

        2. <storage> See {non-volatile storage}.

        (1997-06-05)

volatile memory

        {non-volatile storage}

volatile storage

        {non-volatile storage}

volatile variable

        <programming> A variable in a computer program which can be
        modified by processes other than the program.  For example, a
        variable that stores the value of a timer chip (either because
        it is located at the address of the hardware device or because
        it is updated on {interrupt}s) needs to be volatile to be
        useful.

        A {static} variable, on the other hand, maintains its value
        until the program changes it or it is no longer needed.  In
        addition, volatile variables can be held in the {stack}
        whereas static variables are usually stored in a program's
        {data segment}.

        (1995-05-17)

voltage

        <electronics> (Or "potential difference", "electro-motive
        force" (EMF)) A quantity measured as a signed difference
        between two points in an electrical circuit which, when
        divided by the {resistance} in {Ohms} between those points,
        gives the current flowing between those points in {Amperes},
        according to {Ohm's Law}.  Voltage is expressed as a signed
        number of Volts (V).  The voltage gradient in Volts per metre
        is proportional to the force on a charge.

        Voltages are often given relative to "earth" or "ground" which
        is taken to be at zero Volts.  A circuit's earth may or may
        not be electrically connected to the actual earth.

        The voltage between two points is also given by the charge
        present between those points in {Coulombs} divided by the
        {capacitance} in {Farads}.  The capacitance in turn depends on
        the {dielectric constant} of the insulators present.

        Yet another law gives the voltage across a piece of circuit as
        its {inductance} in {Henries} multiplied by the rate of change
        of current flow through it in Amperes per second.

        A simple analogy likens voltage to the pressure of water in a
        pipe.  Current is likened to the amount of water (charge)
        flowing per unit time.

        (1995-12-04)

Volume Table Of Contents

        <storage> (VTOC) /V-tock/ A special {file} on a {disk}, which
        contains a list of all the ordinary files on the disk and
        their {addresses}.  Also called a {directory}.

        The term is used mostly with large {mainframe} {disk drives}.
        Storage administrators will often refer to the VTOC to obtain
        information on the number of files stored on a disk.

        (1997-04-15)

von Neumann integer

        <mathematics> A {finite} {von Neumann ordinal}.

        The von Neumann integer N is a {finite} set with N elements
        which are the von Neumann integers 0 to N-1.  Thus

                0 = {}          = {}
                1 = {0}         = {{}}
                2 = {0, 1}      = {{}, {{}}}
                3 = {0, 1, 2}   = {{}, {{}}, {{}, {{}}}}
                ...

        The set of von Neumann integers is {infinite}, even though
        each of its elements is finite.

        (1995-03-30)

von Neumann ordinal

        <mathematics> An implementation of {ordinal}s in {set theory}
        (e.g. {Zermelo Frnkel set theory} or {ZFC}).  The von Neumann
        ordinal alpha is the {well-ordered set} containing just the
        ordinals "shorter" than alpha.

        "Reasonable" set theories (like ZF) include Mostowski's
        Collapsing Theorem: any {well-ordered set} is {isomorphic} to
        a von Neumann ordinal.  In really screwy theories (e.g. NFU --
        New Foundations with Urelemente) this theorem is false.

        The finite von Neumann ordinals are the {von Neumann
        integer}s.

        (1995-03-30)

voodoo programming

        <jargon> (From George Bush's "voodoo economics") The use by
        guess or cookbook of an obscure or {hairy} system, feature, or
        algorithm that one does not truly understand.  The implication
        is that the technique may not work, and if it doesn't, one
        will never know why.  Almost synonymous with {black magic},
        except that black magic typically isn't documented and
        *nobody* understands it.

        Compare {magic}, {deep magic}, {heavy wizardry}, {rain dance},
        {cargo cult programming}, {wave a dead chicken}.

        (1995-03-10)

Voronoi diagram

        <mathematics, graphics> (After G. Voronoi) For a {set} S of
        points in the {Euclidean plane}, the {partition} Vor(S) of the
        plane into the {voronoi polygons} associated with the
        {members} of S.  Vor(S) is the dual of the {Delaunay
        triangulation} of S.

Voronoi polygon

        <mathematics, graphics> For a member s of a {set} S of points
        in the {Euclidean plane}, the {locus} of points in the plane
        that are closer to s than to any other member of S.

        (1997-08-03)
VOS

        <operating system> An {operating system} used in {Stratus}
        computers.

        See also {FTX}.

        [Details?]

        (1998-07-06)

Voters Telecommunications Watch

        <body> (VTW) A non-profit organisation based in New York,
        founded by Shabbir J. Safdar to protect the rights of
        {Internet} users.  The VTW has actively opposed regulation of
        {encryption} and restrictions on Internet free speech.  VTW
        created the animated "Free Speech" fireworks icon that has
        been displayed on many web pages since June 12, 1996, the day
        that a three-judge panel in Philadelphia ruled the {CDA}
        unconstitutional.

        {Home (http://www.vtw.org)}.

        (1996-11-03)

voxel

        <jargon> (By analogy with "{pixel}") Volume element.

        The smallest distinguishable box-shaped part of a
        three-dimensional space.  A particular voxel will be
        identified by the x, y and z coordinates of one of its eight
        corners, or perhaps its centre.  The term is used in three
        dimensional modelling.

        (1995-03-10)

V.pcm

        {V.90}

VPL

        1. {visual programming} language.

        ["VPL: An Active, Declarative Visual Programming System,
        D. Lau-Kee et al, 1991 IEEE Workshop on Vis Langs, Oct 1991,
        pp. 40-46].

        2. A {dataflow} language for interactive image processing.

VPN

        {Virtual Private Network}

VP-Planner

        <tool, product> A {spreadsheet} from {Paperback Software}.  It
        has a graph menu within the the spreadsheet program (with
        {CGA} graphics).  The graphs are updated every time the graph
        screen is activated.

        (1995-03-28)

VR

        {virtual reality}

VRAM

        {video random access memory}

VRML

        {Virtual Reality Modeling Language}

VRTX

        Virtual Real-Time Executive.

        A {real-time} {operating system} from {ReadySystems} for the
        {Motorola 68000} family of {microprocessor}s.

        {MPV} is a {multi-processing} extension.

        (1994-11-08)

VSAM

        {Virtual Sequential Access Method}

VSAT

        <communications> {Very Small Aperture Terminal}.

VSCM

        A highly portable implementation of {Scheme}, written in {ANSI
        C} and {Scheme}.  VSCM features exception and interrupt
        handling, executable portable memory images, {coroutine}s and
        {continuation}s with multiple arguments.

        Portability is achieved by exclusive use of legal ANSI C
        features -- as opposed to a plethora of #ifdef's to adjust to
        various system peculiarities.  (Of course, in real life ANSI C
        doesn't guarantee portability per se, because there are too
        many systems with broken compilers or broken libraries.)

        Version II Nov9 by Matthias Blume <blume@cs.princeton.edu>
        includes {run-time support} and a {bytecode compiler}.  It
        conforms to R4RS and IEEE P1178 and runs on {Unix} and
        {Macintosh}.  It is actively developed.

        {Canada (ftp://nexus.yorku.ca/pub/scheme/imp/vscmII*.tar.Z)},
        {Germany
        (ftp://faui80.informatik.uni-erlangen.de/pub/scheme/yorku/imp/)},
        {UK
        (ftp://unix.hensa.ac.uk/pub/uunet/languages/lisp/scheme/repository/imp/
)}.

        {Usenet} newsgroup: {news:comp.lang.scheme}.

        (1993-11-09)

VSE

        {Virtual Storage Extended}

VSF

        {Virtual Software Factory}

VSP

        Very Simple Prolog+.

VSTa

        <operating system> {Valencia Simple Tasker}.

VSX

        Verification Suite for {X/open}.

VT

        <character> Vertical Tab, the {mnemonic} for {ASCII} 11.

        (1996-06-24)

vt100

        <hardware> {DEC}'s definitive {CRT} {video terminal} of the
        early/mid 1980s.  Its {control codes} and {escape sequences}
        still form the basis of the {xterm} set and of the {ANSI} or
        {IBM PC} standards.  VT100 compatibility is still provided by
        most {terminal emulators}.

        [On-line documentation?]

        (1995-03-28)

vt220

        <hardware> A {DEC} {video terminal}, the successor to the
        {VT100} series.

        [On-line documentation?]

        (1995-03-28)

VTAM

        {Virtual Telecommunications Access Method}

VTC

        {video teleconferencing}

VTOC

        {Volume Table Of Contents}

VTS

        A suite of test programs for Motif from {OSF}.

VTW

        {Voters Telecommunications Watch}

vu

        <networking> The {country code} for Vanuatu.

        (1999-01-27)

VUE

        Visual User Environment: a desktop manager for Unix from
        Hewlett-Packard.

VUIT

        Visual User Interface Tool: a WYSIWYG editor from DEC for
        building human interfaces to applications using {OSF}/Motif.
        It provides an interactive interface to UIL and the Motif
        toolkit.

VULCAN

        1. Wayne Ratliff ca. 1980.  CP/M port of JPLDIS which evolved
        into dBASE II.

        2. The dBASE-like interpreter and compiler sold by RSPI with
        their Emerald Bay product.  [same as 1?]

        3. Early string manipulation language.  "VULCAN - A String
        Handling Language with Dynamic Storage Control", E.P. Storm et
        al, Proc FJCC 37, AFIPS (Fall 1970).

        4. Kahn et al, Xerox PARC.  Concurrent object orientation and
        logic programming.  An object-oriented preprocessor for FCP.
        "Vulcan: Logical Concurrent Objects", K. Kahn et al in
        Research Directions in Object- Oriented Programming,
        A.B. Shriver et al eds, MIT Press 1987.

Vulcan death grip

        <jargon> A variant of {Vulcan nerve pinch} derived from a Star
        Trek {classic} epsisode where a non-existant "Vulcan death
        grip" was used to fool Romulans that Spock had killed Kirk.

        (1996-10-27)

Vulcan nerve pinch

        <jargon> (Or "three-finger salute", Vulcan death grip; from
        the old "Star Trek" TV series via {Commodore} {Amiga}
        {hackers}) The keyboard combination that forces a {soft boot}
        or jump to {ROM monitor} (on machines that support such a
        feature).

        On an Amiga this is done with Ctrl/Right Amiga/Left Amiga; on
        {IBM PC}s and many {microcomputers} it is Ctrl/Alt/Del; on
        {Suns}, L1-A; on some {Macintoshes}, it is <Cmd>-<Power
        switch>!

        Compare {quadruple bucky}.

        (1996-10-27)

vulture capitalist

        <abuse> A pejorative hackerism for "venture capitalist",
        deriving from the common practice of pushing contracts that
        deprive inventors of control over their own innovations and
        most of the money they ought to have made from them.

        (1995-04-14)

VUP

        {VAX MIPS}

VxD

        {Virtual Device Driver}

VXI

        {VMEbus Extension for Instrumentation}

VxWorks

        <operating system> A {real-time} {multitasking} {operating
        system} from {Wind River Systems}.  Originally it used the
        {VRTX} {kernel} but this has been replaced by Wind River's own
        "Wind kernel 2.4".

        Before version 5.3 VxWorks included a {software development
        environment} but this is now called "Tornado".

        Current version (1996-11-28) 5.3.

        (1996-11-29)

W3

        A {World-Wide Web} {browser} for {Emacs} by William M. Perry
        <wmperry@indiana.edu>.

        (1994-12-16)

W3C

        {World Wide Web Consortium}

W3 Consortium

        {World Wide Web Consortium}

WA-12

        Workflow Analysis in 12 different organisations.  A project
        from the Department of Computer Science from the {University
        of Twente}, Enschede, The Netherlands.  The final report of
        this project is available to the public (ISBN 90-365-0683-2).

wabbit

        /wab'it/ [almost certainly from Elmer Fudd's immortal line
        "You wascawwy wabbit!"]  1. A legendary early hack reported on
        a System/360 at RPI and elsewhere around 1978; this may have
        descended (if only by inspiration) from hack called RABBITS
        reported from 1969 on a Burroughs 55000 at the University of
        Washington Computer Center.  The program would make two copies
        of itself every time it was run, eventually crashing the
        system.

        2. By extension, any hack that includes infinite
        self-replication but is not a {virus} or {worm}.  See {fork
        bomb} and {rabbit job}, see also {cookie monster}.

Wabi

        {Windows Application Binary Interface}

WabiServer

        <operating system, tool> An addition to {Wabi} which allows
        the {Microsoft Windows} application to run on a {server},
        e.g. a powerful {Intel}-based computer, with users accessing
        it from their desktop which can be a cheap computer such as an
        {X terminal}.

        (1997-01-08)

wacco

        A {BNF}-based LL(?) {parser generator}.

        Posted to comp.sources.misc.

Wafe

        <programming> (From Widget Athena front end) A package by
        Gustaf Neumann <Gustaf.Neumann@uni-essen.de> implementing a
        symbolic interface to the {Athena} {widgets} and
        {OSF}/{Motif}.  A typical Wafe {application} consists of two
        parts: a front-end (Wafe) and an application program which
        runs as a separate process.  The distribution contains sample
        application programs in {Perl}, {GAWK}, {Prolog}, {TCL}, {C},
        and {Ada} talking to the same Wafe binary.

        The current Wafe version is 1.0.15. It supports Athena as
        distributed with {X} releases 4-6 and Motif versions 1.1, 1.2,
        and 2.0 but new distribution are only tested against {X}
        releases 5 and 6, and Motif versions 1.2.4 and 2.0.

        {HOME (http://www.wu-wien.ac.at/wafe)},
        {(ftp://ftp.wu-wien.ac.at/pub/src/X11/wafe/)}.

        Mailing list: listserv@wu-wien.ac.at ("subscribe Wafe <Your
        Name>").

        (1996-07-09)

WAFL

        WArwick Functional Language.  Warwick U, England.  LISP-like.

WAIS

        {Wide Area Information Servers}

WAITS

        /wayts/ The mutant cousin of {TOPS-10} used on a handful of
        systems at {SAIL} up to 1990.  There was never an "official"
        expansion of WAITS (the name itself having been arrived at by
        a rather sideways process), but it was frequently glossed as
        "West-coast Alternative to ITS".  Though WAITS was less
        visible than ITS, there was frequent exchange of people and
        ideas between the two communities, and innovations pioneered
        at WAITS exerted enormous indirect influence.  The early
        screen modes of {EMACS}, for example, were directly inspired
        by WAITS's "E" editor - one of a family of editors that were
        the first to do "real-time editing", in which the editing
        commands were invisible and where one typed text at the point
        of insertion/overwriting.  The modern style of multi-region
        windowing is said to have originated there, and WAITS alumni
        at XEROX PARC and elsewhere played major roles in the
        developments that led to the XEROX Star, the Macintosh, and
        the Sun workstations.  {Bucky bits} were also invented there
        --- thus, the ALT key on every IBM PC is a WAITS legacy.  One
        notable WAITS feature seldom duplicated elsewhere was a
        news-wire interface that allowed WAITS hackers to read, store,
        and filter AP and UPI dispatches from their terminals; the
        system also featured a still-unusual level of support for what
        is now called "multimedia" computing, allowing analog audio
        and video signals to be switched to programming terminals.

wait state

        <architecture> A delay of one or more {clock} cycles added to
        a processor's instruction execution time to allow it to
        communicate with slow external devices.  The number and
        duration of wait states may be pre-configured or they may be
        controlled dynamically via certain control lines.

        (1996-10-16)

waldo

        /wol'doh/ [Robert A. Heinlein's story "Waldo"] 1. A mechanical
        agent, such as a gripper arm, controlled by a human limb.
        When these were developed for the nuclear industry in the
        mid-1940s they were named after the invention described by
        Heinlein in the story, which he wrote in 1942.  Now known by
        the more generic term "telefactoring", this technology is of
        intense interest to NASA for tasks like space station
        maintenance.

        2. At Harvard (particularly by Tom Cheatham and students),
        this is used instead of {foobar} as a metasyntactic variable
        and general nonsense word.  See {foo}, {bar}, {foobar},
        {quux}.

walk

        ,Traversal of a data structure, especially an array or
        linked-list data structure in {core}.  See also {codewalker},
        {silly walk}, {clobber}.

walking drives

        An occasional failure mode of magnetic-disk drives back in the
        days when they were huge, clunky {washing machines}.  Those
        old {dinosaur} parts carried terrific angular momentum; the
        combination of a misaligned spindle or worn bearings and
        stick-slip interactions with the floor could cause them to
        "walk" across a room, lurching alternate corners forward a
        couple of millimeters at a time.  There is a legend about a
        drive that walked over to the only door to the computer room
        and jammed it shut; the staff had to cut a hole in the wall in
        order to get at it!  Walking could also be induced by certain
        patterns of drive access (a fast seek across the whole width
        of the disk, followed by a slow seek in the other direction).
        Some bands of old-time hackers figured out how to induce
        disk-accessing patterns that would do this to particular drive
        models and held disk-drive races.

walk off the end of

        To run past the end of an {array}, {list} or medium after
        stepping through it - a good way to land in trouble.  Often
        the result of an {off-by-one error}.  Compare {clobber},
        {roach}, {smash the stack}.

wall

        {Unix}'s "write all" command which sends a message to everyone
        currently logged in.

wall clock time

        <software> The elapsed time between when a {process} starts to
        run and when it is finished.  This is usually longer than the
        {processor time} consumed by the process because the {CPU} is
        doing other things besides running the {process} such as
        running other user and {operating system} processes or waiting
        for disk or {network} {I/O}.

        (1998-03-13)

wall follower

        <robotics> A person or algorithm that compensates for lack of
        sophistication or native stupidity by efficiently following
        some simple procedure shown to have been effective in the
        past.  Used of an algorithm, this is not necessarily
        pejorative; it recalls "Harvey Wallbanger", the winning robot
        in an early AI contest (named, of course, after the cocktail).
        Harvey successfully solved mazes by keeping a "finger" on one
        wall and running till it came out the other end.  This was
        inelegant, but it was mathematically guaranteed to work on
        simply-connected mazes - and, in fact, Harvey outperformed
        more sophisticated robots that tried to "learn" each maze by
        building an internal representation of it.  Used of humans,
        the term *is* pejorative and implies an uncreative,
        bureaucratic, by-the-book mentality.  See also {code grinder},
        {droid}.

wallpaper

        1. A file containing a listing (e.g. assembly listing) or a
        transcript, especially a file containing a transcript of all
        or part of a login session.  (The idea was that the paper for
        such listings was essentially good only for wallpaper, as
        evidenced at {Stanford}, where it was used to cover windows).

        The term is now rare, especially since other systems have
        developed other terms for it (e.g. PHOTO on {TWENEX}).
        However, the {Unix} world doesn't have an equivalent term, so
        perhaps wallpaper will take hold there.  The term probably
        originated on {ITS}, where the commands to begin and end
        transcript files were ":WALBEG" and ":WALEND", with default
        file "WALL PAPER" (the space was a path delimiter).

        2. The background pattern used on graphical workstations under
        the {Microsoft Windows} {graphical user interface} to
        {MS-DOS}.

        (1994-12-22)

wall time

        (Or "wall clock time") 1. "Real world" time (what the clock on
        the wall shows), as opposed to the {system clock}'s idea of
        time.

        2. The real running time of a program, as opposed to the
        number of {tick}s required to execute it (on a {time-sharing}
        system these always differ, as no one program gets all the
        ticks, and on multiprocessor systems with good thread support
        one may get more processor time than real time).

WAM

        Intermediate language for compiled Prolog, used by the Warren
        Abstract Machine.  "An Abstract Prolog Instruction Set",
        D.H.D. Warren, TR 309, SRI 1983.

WAN

        {Wide Area Network}

Wang Laboratories

        Computer manufacturer, known for their {office automation}
        products.

        Quarterly sales $208M, profits $3M (Aug 1994).

        (1994-09-26)

wango

        /wang'goh/ Random bit-level {grovel}ling going on in a system
        during some unspecified operation.  Often used in combination
        with {mumble}.  For example: "You start with the ".o" file,
        run it through this postprocessor that does mumble-wango - and
        it comes out a snazzy object-oriented executable."

wank

        /wangk/ [Columbia University: probably by mutation from
        Commonwealth slang "wank", to masturbate] Used much as {hack}
        is elsewhere, as a noun denoting a clever technique or person
        or the result of such cleverness.  May describe (negatively)
        the act of hacking for hacking's sake ("Quit wanking, let's go
        get supper!") or (more positively) a {wizard}.  "wanky"
        describes something particularly clever (a person, program, or
        algorithm).  Conversations can also get wanky when there are
        too many wanks involved.  This excess wankiness is signalled
        by an overload of the "wankometer" (compare {bogometer}).
        When the wankometer overloads, the conversation's subject must
        be changed, or all non-wanks will leave.  Compare
        "neep-neeping" (under {neep-neep}).  Usage: US only.  In
        Britain and the Commonwealth this word is *extremely* rude and
        is best avoided unless one intends to give offense.

wannabee

        /won'*-bee/ (Or, more plausibly, spelled "wannabe") [Madonna
        fans who dress, talk, and act like their idol; probably
        originally from biker slang] A would-be {hacker}.  The
        connotations of this term differ sharply depending on the age
        and exposure of the subject.  Used of a person who is in or
        might be entering {larval stage}, it is semi-approving; such
        wannabees can be annoying but most hackers remember that they,
        too, were once such creatures.  When used of any professional
        programmer, CS academic, writer, or {suit}, it is derogatory,
        implying that said person is trying to cuddle up to the hacker
        mystique but doesn't, fundamentally, have a prayer of
        understanding what it is all about.  Overuse of hacker terms
        is often an indication of the {wannabee} nature.  Compare
        {newbie}.

        Historical note: The wannabee phenomenon has a slightly
        different flavour now (1993) than it did ten or fifteen years
        ago.  When the people who are now hackerdom's tribal elders
        were in {larval stage}, the process of becoming a hacker was
        largely unconscious and unaffected by models known in popular
        culture - communities formed spontaneously around people who,
        *as individuals*, felt irresistibly drawn to do hackerly
        things, and what wannabees experienced was a fairly pure,
        skill-focussed desire to become similarly wizardly.  Those
        days of innocence are gone forever; society's adaptation to
        the advent of the microcomputer after 1980 included the
        elevation of the hacker as a new kind of folk hero, and the
        result is that some people semi-consciously set out to *be
        hackers* and borrow hackish prestige by fitting the popular
        image of hackers.  Fortunately, to do this really well, one
        has to actually become a wizard.  Nevertheless, old-time
        hackers tend to share a poorly articulated disquiet about the
        change; among other things, it gives them mixed feelings about
        the effects of public compendia of lore like this one.

want list

        {wish list}

WAP

        {Wireless Application Protocol}

wardialer

        <security> Almost certainly a shortened version of "WarGames
        dialer", from the film {WarGames}.

        1. {carrier scanner}

        2. A program which attempts to break a {password} of known
        length by iterating thru all possible combinations of
        characters that could make up that password.

        This approach is not feasable for cracking most passwords
        these days.  However, as late as the mid-1980s, some
        long-distance companies required only very short numeric
        access codes (e.g. five digits) to verify the identity of
        their customers.  Wardialers were created which would, running
        unattended, call up long-distance providers' local connect
        numbers and iteratively try possible access codes.  Codes
        which worked were logged for later illicit use.

        These wardialers had a high success rate because of the small
        range of possibilities to iterate through, e.g. 10000 for a
        five digit access code, compared to hundreds of trillions of
        combinations for an eight-character alphanumeric code.

        Long-distance providers soon required longer passwords and
        took advantage of technology for rapidly tracing the phone
        numbers that wardialers were being run from, such that running
        wardialers became pointless and dangerous.

        (1997-03-16)

-ware

        ["software"] Commonly used to form terms for classes of
        software.  For examples, see {careware}, {crippleware},
        {crudware}, {freeware}, {fritterware}, {guiltware},
        {liveware}, {meatware}, {payware}, {psychedelicware},
        {shareware}, {shelfware}, {vaporware}, {wetware}.

warez

        /weirz/ A term used by {software pirate}s use to describe a
        cracked game or application that is made available to the
        {Internet}, usually via {FTP} or {telnet}, often the pirate
        will make use of a site with lax security.

        Software piracy is illegal and should be reported to the
        {Federation Against Software Theft} (FAST).

        (1994-11-29)

WarGames

        <recreation> (Not "War Games") A 1983 film about a schoolboy
        {cracker} using a {wardialer} to try to break into a games
        company's computer and accidentally connecting to a {backdoor}
        into "Whopper", a ficticious {C3} computer at Norad (USAF).
        He then procedes to unwittingly initiate global thermonuclear
        warfare.  Playing naughts and crosses finally teaches Whopper
        that the only way to win the game is never to play.

        {IMDb (http://us.imdb.com/Title?WarGames+%281983%29)}.

        (1999-03-08)

warlording

        <jargon> The act of excoriating a bloated, ugly or derivative
        {sig block}.  Common grounds for warlording include the
        presence of a signature rendered in a {BUAF}, over-used or
        cliched {sig quotes}, ugly {ASCII art}, or simply excessive
        size.  The original "Warlord" was a {BIFF}-like {newbie}
        c. 1991 who featured in his sig a particularly large and
        obnoxious ASCII graphic resembling the sword of Conan the
        Barbarian in the 1981 John Milius movie; the group name
        alt.fan.warlord was sarcasm, and the characteristic mode of
        warlording is devastatingly sarcastic praise.

        {Usenet} newsgroup: {news:alt.fan.warlord}.

        (1994-11-29)

warm boot

        <operating system> A {boot} from {power on}, where the {CPU}
        and {peripherals} are already powered up (warm).

        A warm boot might be performed after a {software} {crash} or
        a {hardware} {reset}.

        Contrast {cold boot}.  See also {reboot}.

        (1998-04-28)

Warm Silence Software

        A small company run by(?) Robin Watts, producing {software}
        for the {Acorn} {Archimedes}.

        {(http://www.comlab.ox.ac.uk/oucl/users/robin.watts/)}

        (1994-11-01)

Warp

        {OS/2}

wart

        A small, {crock}y {feature} that sticks out of an otherwise
        {clean} design.  Something conspicuous for localised ugliness,
        especially a special-case exception to a general rule.  For
        example, in some versions of "csh(1)", single quotes
        literalise every character inside them except "!".  In ANSI C,
        the "?" syntax used for obtaining ASCII characters in a
        foreign environment is a wart.  See also {miswart}.

washing machine

        <storage> An old-style 14-inch {hard disk} in a floor-standing
        cabinet.  So called because of the size of the cabinet and the
        "top-loading" access to the media packs - and, of course, they
        were always set on "spin cycle".  The thick channel cables
        connecting these were called "{bit hoses}".  The
        washing-machine idiom transcends language barriers; it is even
        used in Russian hacker jargon.

        See also {walking drives}.

        (1995-02-15)

Wasserman

        A.I. Wasserman (Tony), president of {IDE}.

        (1995-02-15)

WATBOL

        WATerloo COBOL.

        A {COBOL} for {IBM} {MVS}.

        (1995-02-15)

Watcom C/C++

        <language, product> A compiler and development tools for
        multi-{platform}, 16 and 32-bit applications.  Watcom C/C++
        10.0 has an integrated development environment (IDE) and
        development tools.  It includes the {SOMobjects Toolkit} to
        enable access to {IBM}'s {System Object Model} (SOM) and
        {Distributed System Object Model} (DSOM).  It supports 16 bit
        {MS DOS}, {Microsoft Windows} 3.x, {OS/2} 1.x, and 32 bit
        platforms including extended DOS, OS/2 2.x, {Windows NT},
        {Win32s}, 32-bit Windows 3.x, {Novell NLM} and {AutoCAD}
        {ADS}/{ADI}.

        (1995-04-18)

Watcom International

        <company> A provider of application development tools and {IBM
        PC}-based {SQL} {database} {server}s.

        Founded in 1974, Watcom initially focused on scientific and
        engineering markets establishing itself as a supplier of
        programming and information tools worldwide, serving customers
        in 60 countries with highly regarded products such as
        {WATFOR}-77 for {mainframe}s, {minicomputer}s and {PC}s.

        Since the introduction of {Watcom C} in 1988, the company has
        emerged as an industry leader in optimising compilers for 16
        and 32-bit {Intel-based} {IBM PC}s.

        Moving into the {client/server} market in 1992, Watcom
        introduced {Watcom SQL}, including {SQL} {database} {servers}
        for multi-user networks and single-user {stand-alone}
        applications.  The product has since been incorporated into
        {Powersoft}'s {PowerBuilder} development environment and the
        {Powersoft Enterprise Series}.  In June, 1993, Watcom launched
        {VX*REXX}, an integrated visual development environment for
        {OS/2}.

        In February 1994, Watcom became a wholly-owned subsidiary of
        {Powersoft Corporation} which merged with {Sybase Inc.}
        on 13 February 1995.  Today the company addresses a broad
        range of application developers, including corporate {MIS}
        professionals, system integrators, {VAR}s and independent
        software vendors.

        Watcom has strategic relationships with {IBM}, {Lotus},
        {Microsoft}, {Intel} and {Novell}.  Based on its academic
        roots, Watcom maintains a research relationship with the
        nearby {University of Waterloo}.

        Watcom's products include the {Watcom SQL} {database}s,
        {Watcom C/C++}, and {Watcom VX*REXX} 2.1.

        Ian McPhee is President and Chief Executive Officer, David
        Boswell is Vice President of Sales and Marketing, Craig Dynes
        is Vice President of Finance and David Yach is Vice President
        of Development.

        Headquarters: Waterloo, Ontario, Canada.

        (1995-04-18)

Watcom SQL

        <database, product> A family of {database}s from {Watcom
        International}, based on scalable technology and a {SQL}
        {database engine}.  Version 4.0 adds {stored procedure}s and
        {trigger}s.  It is designed for environments ranging from
        large departmental networks with a diverse range of PC client
        systems, to peer-to-peer {workgroups}, to {stand-alone} PCs.
        It is available in stand-alone versions for {Microsoft
        Windows}, {Windows NT}, {OS/2} and {MS DOS}; and {multi-user}
        network server versions for {Microsoft Windows}, {Windows NT},
        {OS/2}, {NetWare NLM} and {MS DOS}.

        (1995-04-18)

Watcom VX*REXX

        <programming, tool> A visual development environment for
        creating {OS/2} applications with {graphical user interface}s.
        It includes a project management facility, visual designer and
        an interactive {source level debugger}.  Version 2.1
        introduced the VX*REXX Client/Server Edition for
        {client/server} {GUI} application development on {OS/2} by
        incorporating {database} {object}s.  Using {IBM}'s {DRDA}
        support on OS/2, users can access {DB2} for {MVS}, DB2/400 for
        {AS/400}, and DB2/VSE and VM (SQL/DS) for {VM} and {VSE}.
        Also supported are {Watcom SQL} and {ODBC}-enabled databases.
        Since the VX*REXX visual development environment is based on
        IBM's {object-oriented} {SOM} technology, VX*REXX applications
        are open and extensible through the addition of new SOM
        objects.

        (1995-04-18)

Waterfall Model

        <programming> A {software life-cycle} or {product life-cycle}
        model, described by W. W. Royce in 1970, in which development
        is supposed to proceed linearly through the phases of
        {requirements analysis}, design, implementation, testing
        (validation), integration and maintenance.  The Waterfall
        Model is considered old-fashioned or simplistic by proponents
        of {object-oriented design} which often uses the {spiral
        model} instead.

        Earlier phases are sometimes called "upstream" and later ones
        "downstream".

        Compare: {iterative model}.

        [W. W. Royce, "Managing the Development of Large Software
        Systems", Proceedings of IEEE WESCON, August 1970].

        (1997-11-23)

water MIPS

        <jargon> Large, water-cooled computers of either today's
        {ECL}-{supercomputer} flavour or yesterday's traditional
        {mainframe} type.

        See {MIPS}

        (1995-03-25)

WATFIV

        WATerloo Fortran IV.  U Waterloo, Canada.  Student-friendly
        variant of FORTRAN IV.

WATFOR

        WATerloo FORtran.  U Waterloo, Canada.  Student-friendly
        variant of {FORTRAN}.  "WATFOR - The University of Waterloo
        FORTRAN IV Compiler", P.W. Shantz et al, CACM 10(1):41-44 (Jan
        1967).

wav

        <multimedia, file format, filename extension> (waveform)
        /wav/, /dot wav/ A {sound} format developed by {Microsoft} and
        used extensively in {Microsoft Windows}.  Conversion tools are
        available to allow most other {operating systems} to play .wav
        files.

        .wav files are also used as the sound source in {wavetable}
        synthesis, e.g. in E-mu's {SoundFont}.  In addition, .wav
        files are also supported by some {MIDI} sequencers as add-on
        audio.  That is, pre-recorded .wav files are played back by
        control commands written in the sequence script.

        {Specification (http://www.qzx.com/pc-gpe/wav.txt)}.

        (1997-10-11)

WAVE

        <language, robotics> A {robotics} language.

        ["WAVE: A Model-Based Language for Manipulator Control",
        R.P. Paul, Ind Robot 4(1):10-17, 1979].

        (1996-09-08)

wave a dead chicken

        <jargon> To perform a ritual in the direction of crashed
        software or hardware that one believes to be futile but is
        nevertheless necessary so that others are satisfied that an
        appropriate degree of effort has been expended.  "I'll wave a
        dead chicken over the source code, but I really think we've
        run into an OS bug".

        Compare {voodoo programming}, {rain dance}.

        (1996-09-08)

wavelet

        <mathematics> A waveform that is bounded in both frequency and
        duration.  Wavelet tranforms provide an alternative to more
        traditional {Fourier transform}s used for analysing waveforms,
        e.g. sound.

        The {Fourier transform} converts a signal into a continuous
        series of {sine wave}s, each of which is of constant frequency
        and amplitude and of infinite duration.  In contrast, most
        real-world signals (such as music or images) have a finite
        duration and abrupt changes in frequency.

        Wavelet transforms convert a signal into a series of wavelets.
        In theory, signals processed by the wavelet transform can be
        stored more efficiently than ones processed by Fourier
        transform.  Wavelets can also be constructed with rough edges,
        to better approximate real-world signals.

        For example, the United States Federal Bureau of Investigation
        found that Fourier transforms proved inefficient for
        approximating the whorls of fingerprints but a wavelet
        transform resulted in crisper reconstructed images.

        {SBG Austria (http://www.mat.sbg.ac.at/~uhl/wav.html)}

        ["Ten Lectures on Wavelets", Ingrid Daubechies].

        (1994-11-09)

wavetable

        <hardware, music> A type of {sound generator} often built in a
        {sound card}.  A wavetable contains digitised samples of real
        instrument sounds or effect (FX) sounds.  A wavetable chip
        often also contains a drum kit sound to faciliate rhythm
        accompaniment.

        A recorded wavetable sound may be edited and enhanced by
        various effects (reverb, chorus) and layered with other
        waveforms before writing it to {ROM} or {RAM}.  The latter
        type serves as user sound memory.

        A wavetable generator is typically controlled by {MIDI} input.
        When a MIDI note-on signal is detected, the output part of a
        wavetable generator generates a sound with definitive pitch,
        typically a musical note.

        Wavetable sounds are used in games and music.  The more
        realistic wavetable sounds have all but replaced the earlier
        synthetic FM (frequency modulation) sound generation in sound
        cards but to ensure compatibility with older games etc., an FM
        part is usually included.

        The best known wavetable sound generators includes the {E-mu
        8000} chip, used in {Creative Labs}' {Sound Blaster} AWE-32
        card family and in E-mu keyboards.  Other wavetable cards are
        Gravis Ultra-Sound (GUS), ESS Cards, Opti, Zoltrix and many
        Roland cards.

        {E-Mu (http://www.emu.com /)}.
        {AWE-32(http://www.edu.isy.liu.se/~d93jesno/awe32.html)}.
        {Creative Labs (http://www.creaf.com/)}.

        (1997-11-04)

wavetable synthesis

        {wavetable}

WaZOO

        <protocol> Warp-zillion Opus-to-Opus.  {Fidonet}'s
        {session layer} {protocol}.  Although it mentions {Opus} (a
        specific {BBS} from the 1980s), WaZOO is the session protocol
        used for the Fidonet network.  Because WaZOO is much more
        efficient than other mechanisms (e.g., {FTP}), it is sometimes
        used for automated or batch communications in other parts of
        the {Internet}.

        {(ftp://ftp.psg.com/pub/fidonet/stds/fts-0006.txt)}

        (1995-11-16)

WCL

        A {Common Lisp} implementation in a shared library by Wade
        Hennessey <wade@leland.Stanford.edu>.  WCL is not a complete
        Common Lisp, but it does have the full development environment
        including {dynamic file loading} and debugging. A modified
        version of {GDB} provides mixed-language debugging.

        Version 2.14 includes a shared library, run-time support and
        source debugger.  It requires {GNU} {GCC} 2.1 (not 2.2.2) and
        runs on {SPARC} under {SunOS}.

        {(ftp://sunrise.stanford.edu/pub/wcl/)}.  Mailing list:
        <wcl-request@sunrise.stanford.edu>.  E-mail:
        <wcl@sunrise.stanford.edu>.

        [Proceedings of the 1992 Lisp and Functional Programming
        Conference].

        (1992-10-28)

WD

        {Western Digital}

WDASM

        <tool> (Probably "Windows disassembler") An {interactive}
        {Intel 486} {disassembler} for {Windows 3.1} written by Eric
        Grass at the University of Missouri, St. Louis.  WDASM
        supports multiple disassembly formats.

        {(ftp://ftp.simtel.com/cica/win3/util/wdasm15.zip)}

        (1993-06-01)

WE

        A {hypertext} {authoring} system developed at the {University
        of North Carolina}.

        (1994-11-07)

Weak Head Normal Form

        (WHNF) A {lambda expression} is in weak head normal form
        (WHNF) if it is a {head normal form} (HNF) or any {lambda
        abstraction}.  I.e. the top level is not a {redex}.

        The term was coined by {Simon Peyton Jones} to make explicit
        the difference between {head normal form} (HNF) and what
        {graph reduction} systems produce in practice.  A lambda
        abstraction with a reducible body, e.g.

                \ x . ((\ y . y+x) 2)

        is in WHNF but not HNF.  To reduce this expression to HNF
        would require reduction of the lambda body:

                (\ y . y+x) 2  -->  2+x

        Reduction to WHNF avoids the {name capture} problem with its
        need for {alpha conversion} of an inner lambda abstraction and
        so is preferred in practical {graph reduction} systems.

        The same principle is often used in {strict} languages such as
        {Scheme} to provide {call-by-name} evaluation by wrapping an
        expression in a lambda abstraction with no arguments:

                D = delay E = \ () . E

        The value of the expression is obtained by applying it to the
        empty argument list:

                force D = apply D ()
                        = apply (\ () . E) ()
                        = E

        (1994-10-31)

weasel

        <jargon, abuse> (Cambridge) A naive user, one who deliberately
        or accidentally does things that are stupid or ill-advised.
        Roughly synonymous with {loser}.

        (1995-03-21)

WEB

        <language> {Donald Knuth}'s self-documenting {literate
        programming}, with {algorithm}s and {documentation} intermixed
        in one file.  They can be separated using {Weave} and
        {Tangle}.  Versions exist for {Pascal} and {C}.  {Spiderweb}
        can be used to create versions for other languages.
        {FunnelWeb} is a production-quality literate-programming tool.

        {(ftp://princeton.edu/)}, {(ftp://labrea.stanford.edu/)}.

        ["Literate Programming", D.E. Knuth, Computer J 27(2):97-111,
        May 1984].

        (1996-05-10)

Web

        <World-Wide Web> "The Web" is the {World-Wide Web}.  "A web"
        is part of it on some specific {web site}.

        (1996-05-10)

web2c

        <tool> A utility by Karl Berry <karl@claude.cs.umb.edu> to
        translate {WEB} to {C}.  Current version: 5-851d.

        {FTP UCI (ftp://ics.uci.edu/TeX/web2c.tar.Z)}.  {FTP Gernamy
        (ftp://ftp.th-darmstadt.de/pub/tex/src/web2c/web2c.tar.Z)}.

        (1996-05-10)

web browser

        <World-Wide Web> A {browser} for the {World-Wide Web}.

        (1996-03-23)

webcam

        <World-Wide Web, hardware, video> (World-Wide Web camera) Any
        video camera whose output is available for viewing via the
        {Internet} or an {intranet}.  Typically a webcam would be a
        slow-scan {CCD} video camera connected to a video capture card
        in a computer.  Images from the camera are captured
        periodically and made available on a web page.  In 1999 there
        are hundreds of webcams in operation around the world showing
        everything from bedrooms to traffic.

        [List?]

        (1999-01-11)

webcasting

        <multimedia, World-Wide Web> (From "World-Wide Web" and
        "broadcast") {Multicasting} on the {Internet}.  Webcasting
        implies {real-time} transmission of encoded {video} under the
        control of the {server} to multiple recipients who all receive
        the same content at the same time.  This is in contrast to
        normal web browsing which is controlled from the {browser} by
        individual users and may take arbitrarily long to deliver a
        complete document.

        {Pointcast (http://www.pointcast.com)} is the most popular
        service to date which uses webcasting, however, {Microsoft}
        and {Netscape} have products planned.

        [Is this correct?  Better explanation?]

        (1997-09-06)

WebCGM

        <graphics, file format> A {Web}-oriented version of the
        {Computer Graphic Metafile} file format.

        (1999-02-16)

WebCrawler

        <World-Wide Web> A free {World-Wide Web} {search engine}
        developed by Brian Pinkerton at the {University of Washington}
        and now moved to {America Online, Inc}.  WebCrawler collects
        {URL}s by searching the {Internet} and allows users to perform
        keyword searches through a World-Wide Web {browser}.

        {Home (http://webcrawler.com/)}

        (1995-11-28)

webhead

        A compulsive or frequent user of, or contributor to, the
        {World-Wide Web}.

        (1994-07-21)

weblint

        <hypertext, tool> (After {lint}) A {syntax} checker and style
        checker for {HTML}.  Weblint is a {Perl} script which does for
        HTML pages what the traditional {lint} picks does for {C}
        programs.

        Version: 1.020 (1997-12-07).

        {Home (http://www.cre.canon.co.uk/~neilb/weblint/)}.

        (1997-12-07)

webmaster

        <World-Wide Web> (Sometimes "webmistress") The alias or role
        of the person(s) responsible for the development and
        maintenance of one or more {web servers} and/or some or all of
        the {web pages} at a {web site}.  The term does not imply any
        particular level of skill or mastery (see "{webmonkey}").

        The webmaster's {e-mail address} often appears on the {home
        page} of the site.  Failing that, you could try sending e-mail
        to {postmaster} (from which the term is probably derived) or
        {root} at that {host}, possibly after removing an initial
        "www.".

        (1999-04-01)

webmistress

        {webmaster}

webmonkey

        <World-Wide Web> a largely unskilled {Web} worker - one with a
        passable understanding of {HTML} but little else.

        It is often supposed that, in the New Media food chain, there
        is nothing lower than a webmonkey.  Alas, there is: people who
        barely have the skills to use FrontPage; these people are
        called "typists".

        The {B1FF} of webmonkeys is personified as {Bobo the
        Webmonkey}.

        Compare {actor/singer/waiter/webmaster}.

        And compare {sysape}, {one-banana problem}, {scratch monkey},
        {monkey up}, and {Infinite-Monkey Theorem} for other simian
        allusions.

        (1998-04-04)

WebObjects

        <operating system> {NeXT}'s {framework} that provides an
        interface between a {web server} and an application server
        process.  It enables developers to easily create dynamic
        web-based applications.

        WebObjects acts as an adaptor between the web server and a
        process which needs to maintain state over multiple {HTTP}
        request-response transactions (which are intrinsically
        stateless).  It exists in two forms - as a {CGI} program and
        as an {Objective C} library.  It also includes a simple
        scripting language for developing web applications.  Special
        WebObjects tags can be included in {HTML} pages and these are
        processed at the server to produce dynamic but standard HTML
        to deliver to the client.

        [URL?]

        (1997-10-15)

web page

        <World-Wide Web> A block of data available on the {World-Wide
        Web}, identified by a {URL}.  In the simplest, most common
        case, a web page is a file written in {HTML}, stored on the
        {server}.  It may refer to {images} which appear as part of
        the page when it is displayed by a {web browser}.  It is also
        possible for the server to generate pages dynamically in
        response to a request, e.g. using a {CGI} script.

        A web page can be in any format that the browser or a {helper
        application} can display.  The format is transmitted as part
        of the headers of the response as a {MIME} type,
        e.g. "text/html", "image/gif".

        An HTML web page will typically refer to other web pages and
        {Internet} resources by including {hypertext} links.

        A {web site} often has a {home page} (usually just the
        hostname, e.g. http://foldoc.doc.ic.ac.uk/).  It may also have
        individual home pages for each user with an account at the
        site.

        (1999-03-21)

Web Request Broker

        <World-Wide Web> (WRB) Part of {Oracle Corporation}'s
        {WebServer} suite of programs.  It is a high-performance,
        {multi-threaded} {HTTP} server which allows {clients}'
        requests to be directly translated into {Oracle 7} {database}
        scripts, and automatically translates the results of the query
        back into {HTML} for delivery to the client {browser}.

        {Oracle WebServer
        (http://www.oracle.com/products/websystem/webserver/html/ws2_info.html)
}.

        (1997-03-14)

web server

        {HTTP server}

web site

        <World-Wide Web> (Not "website") Any computer on the
        {Internet} running a {World-Wide Web} {server} process.  A
        particular web site is identified by the {hostname} part of a
        {URL}.  Multiple hostnames may actually map to the same
        computer in which case they are known as "{virtual servers}".

        (1997-02-05)

web smith

        <World-Wide Web> A person who creates {web pages}.  Not
        necessarily the same as a {webmaster}.

        (1997-02-05)

Webster

        1. {Webster's Dictionary}.

        2. A {World-Wide Web} {browser} for the {Acorn} {Archimedes}.
        The {HTML} files may reside locally or be retrieved using a
        "fetcher".  An {HTTP} fetcher for use with {KA9Q} is supplied.

        Version: 0.05.

        {HENSA Gopher
        (gopher://micros.hensa.ac.uk:70/11/micros/arch/riscos/c/c164)}.
        {Demon FTP
        (ftp://ftp.demon.co.uk/pub/archimedes/developers/)}.

        (1995-02-21)

Webster's Dictionary

        {Hypertext interface
        (http://c.gp.cs.cmu.edu:5103/prog/webster)}.

        (1996-04-10)

wedged

        1. To be stuck, incapable of proceeding without help.  This is
        different from having crashed.  If the system has crashed, it
        has become totally non-functioning.  If the system is wedged,
        it is trying to do something but cannot make progress; it may
        be capable of doing a few things, but not be fully
        operational.  For example, a process may become wedged if it
        {deadlock}s with another (but not all instances of wedging are
        deadlocks).  See also {gronk}, {locked up}, {hosed}.  2. Often
        refers to humans suffering misconceptions.  "He's totally
        wedged - he's convinced that he can levitate through
        meditation."  3. [Unix] Specifically used to describe the
        state of a TTY left in a losing state by abort of a
        screen-oriented program or one that has messed with the line
        discipline in some obscure way.

        There is some dispute over the origin of this term.  It is
        usually thought to derive from a common description of
        recto-cranial inversion; however, it may actually have
        originated with older "hot-press" printing technology in which
        physical type elements were locked into type frames with
        wedges driven in by mallets.  Once this had been done, no
        changes in the typesetting for that page could be made.

wedgie

        (Fairchild) A bug.  Probably related to {wedged}.

wedgitude

        /wedj'i-t[y]ood/ The quality or state of being {wedged}.

Weeble

        /wee'b*l/ An egg-shaped plastic toy person with a weight in
        the bottom so that, if tipped over, they would right
        themselves and stand up again.  They were popular in the UK
        during the 1970s and were famous for the slogan "Weebles
        wobble but they don't fall down", unlike some computers
        (pretty tenuous link with computing).

        (1994-11-29)

weeds

        1. Refers to development projects or {algorithm}s that have no
        possible relevance or practical application.  Comes from "off
        in the weeds".  Used in phrases like "lexical analysis for
        {microcode} is serious weeds."

        2. At {CDC}/{ETA} before its demise, the phrase "go off in the
        weeds" was equivalent to {IBM}'s {branch to Fishkill} and
        mainstream hackerdom's {jump off into never-never land}.

weenie

        1. [on BBSes] Any of a species of {luser} resembling a less
        amusing version of {BIFF} that infests many {BBS}es.  The
        typical weenie is a teenage boy with poor social skills
        travelling under a grandiose {handle} derived from fantasy or
        heavy-metal rock lyrics.  Among {sysop}s, "the weenie problem"
        refers to the marginally literate and profanity-laden
        {flamage} weenies tend to spew all over a newly-discovered
        BBS.

        Compare {spod}, {computer geek}, {terminal junkie}.

        2. Among hackers, when used with a qualifier (for example, as
        in {Unix weenie}, {VMS} weenie, {IBM} weenie) this can be
        either an insult or a term of praise, depending on context,
        tone of voice, and whether or not it is applied by a person
        who considers him or herself to be the same sort of weenie.
        It implies that the weenie has put a major investment of time,
        effort and concentration into the area indicated; whether this
        is good or bad depends on the hearer's judgment of how the
        speaker feels about that area.  See also {bigot}.

        3. The {semicolon} character, ";" ({ASCII} 59).

        (1995-01-18)

Weenix

        /wee'niks/ An {ITS} fan's derogatory term for {Unix}, derived
        from {Unix weenie}.  According to one noted ex-{ITS}er, it is
        "the operating system preferred by Unix Weenies: typified by
        poor modularity, poor reliability, hard file deletion, no file
        version numbers, case sensitivity everywhere, and users who
        believe that these are all advantages".  Some {ITS} fans
        behave as though they believe Unix stole a future that
        rightfully belonged to them.

        (1995-01-18)

weighted search
        
        <information science> A search based on frequencies of the
        {search terms} in the documents being searched.  Weighted
        search is often used by {search engines}.  It produces a
        numerical score for each possible document.  A document's
        score depends on the frequency of each {search term} in that
        document compared with the overall frequency of that term in
        the entire corpus of documents.  A common approach is called
        tf.idf which stands for term frequency * inverse document
        frequency.  Term frequency means "the more often a term occurs
        in a document, the more important it is in describing that
        document."
        {http://ciir.cs.umass.edu/cmpsci646/ir4/tsld034.htm} Inverse
        document frequency means the more documents a term appears in,
        the less important the term is.

        A simple weighted search is just a list of search terms,
        for example: car automobile

        Weighted search is often contrasted with {boolean search}.
        It is possible to have a search that syntactically is a
        boolean search but which also does a weighted search.

        See also {query expansion}.

        For a detailed technical discussion see Chapter 5, 
        "Search Strategies", in the reference below.

        [{"Information Retrieval", C. J. van Rijsbergen,
        (http://www.dcs.gla.ac.uk/Keith/Chapter.5/Ch.5.html)}].

        (1999-08-28)

well-behaved

        1. [primarily {MS-DOS}] Said of software conforming to system
        interface guidelines and standards.  Well-behaved software
        uses the {operating system} to do chores such as keyboard
        input, allocating memory and drawing graphics.  Oppose
        {ill-behaved}.

        2. Software that does its job quietly and without
        counterintuitive effects.  Especially said of software having
        an interface spec sufficiently simple and well-defined that it
        can be used as a {tool} by other software.  See {cat}.

well-connected

        Said of a computer installation, asserts that it has reliable
        {electronic mail} links with the network and/or that it relays
        a large fraction of available {Usenet} newsgroups.
        "Well-known" can be almost synonymous, but also implies that
        the site's name is familiar to many (due perhaps to an archive
        service or active {Usenet} users).

well-ordered set

        <mathematics> A set with a {total ordering} and no infinite
        descending {chain}s.  A total ordering "<=" satisfies x <= x;
        x <= y <= z => x <= z; x <= y <= x => x=y; and for all x, y, x
        <= y or y <= x.  In addition, if a set W is well-ordered then
        all non-empty subsets A of W have a least element, i.e. there
        exists x in A such that for all y in A, x <= y.

        {Ordinal}s are {isomorphism class}es of {well-ordered set}s,
        just as {integer}s are {isomorphism class}es of finite sets.

        (1995-04-19)

Wesley Clark

        <person> One of the designers of the {Laboratory Instrument
        Computer} at {MIT} who subsequently had a quiet hand in many
        seminal computing events, such as the development of the
        {Internet}, the first really good description of the
        {metastability} problem in computer logic.

        {(http://www.pretext.com/mar98/features/story1.htm)}.

        (1999-03-29)

Western Digital Corporation

        <company> A company founded in 1970 as a specialised
        semiconductor manufacturer, which today manufactures and sells
        {microcomputer} products including small form factor {hard
        disk drives} for {personal computers}, {integrated circuits}
        and circuit boards for graphics, storage, communications,
        {battery management}, and logic functions.

        {Home (http://www.wdc.com/)}

        (1995-04-12)

Westmount

        <company> A Dutch software engineering vendor of {RTEE} and
        other products.

        (1998-04-27)

wetware

        <jargon> /wet'weir/ (Probably from the novels of Rudy Rucker,
        or maybe Stanislav Lem) The human nervous system, as opposed
        to electronic computer {hardware} or {software}.  "Wetware has
        7 plus or minus 2 temporary {register}s."  Also, human beings
        (programmers, operators, administrators) attached to a
        computer system, as opposed to the system's hardware or
        software.

        See {liveware}, {meatware}.

        [True origin?  Dates?]

        (1996-08-19)

wf

        <networking> The {country code} for the Wallis and Futuna
        Islands.

        (1999-01-27)

WFL

        Work Flow Language.  Burroughs, ca 1973.  A job control
        language for the B6700/B7700 under MCP.  WFL was a compiled
        block-structured language similar to ALGOL 60, with
        subroutines and nested begin-end's.

        ["Work Flow Management User's Guide", Burroughs Manual
        5000714, 1973].

        ["Burroughs B6700/B7700 Work Flow Language", R.M. Cowan in
        "Command Languages", C. Unger ed, N-H 1975].

        (1996-01-18)

WfMC

        {Workflow Management Coalition}

WG

        {Working Group}

whack

        According to arch-hacker James Gosling, to "...modify a
        program with no idea whatsoever how it works." (See
        {whacker}.)  It is actually possible to do this in nontrivial
        circumstances if the change is small and well-defined and you
        are very good at {glark}ing things from context.  As a trivial
        example, it is relatively easy to change all "stderr" writes
        to "stdout" writes in a piece of C filter code which remains
        otherwise mysterious.

whacker

        [University of Maryland: from {hacker}] 1. A person, similar
        to a {hacker}, who enjoys exploring the details of
        programmable systems and how to stretch their capabilities.
        Whereas a hacker tends to produce great hacks, a whacker only
        ends up whacking the system or program in question.  Whackers
        are often quite egotistical and eager to claim {wizard}
        status, regardless of the views of their peers.  2. A person
        who is good at programming quickly, though rather poorly and
        ineptly.

whales

        See {like kicking dead whales down the beach}.

whalesong

        The peculiar clicking and whooshing sounds made by a {PEP}
        {modem} such as the {Telebit} {Trailblazer} as it tries to
        synchronise with another PEP modem for their special
        high-speed mode.  This sound isn't anything like the normal
        two-tone handshake between conventional modems and is
        instantly recognizable to anyone who has heard it more than
        once.  It sounds, in fact, very much like whale songs.  This
        noise is also called "the moose call" or "moose tones".

whatis

        <tool> 1. A {Unix} command which searches for a given string
        in the headings of all {man} pages.

        2. A command which searches the {archie} {Software Description
        Database} for a given string, with case being ignored.

        (1995-11-12)

What's a spline?

        [XEROX PARC] This phrase expands to: "You have just used a
        term that I've heard for a year and a half, and I feel I
        should know, but don't.  My curiosity has finally overcome my
        guilt."  The PARC lexicon adds "Moral: don't hesitate to ask
        questions, even if they seem obvious."

What You Get Is What You Never Thought You Had

        <jargon> (WYGIWYNTYH) A jibe at {WYSIWYG} systems that fail in
        their stated aim by rendering documents differently on screen
        and on paper.

        (1999-06-15)

What You See Is All You Get

        <jargon> (WYSIAYG) /wiz'ee-ayg/ Describes a user interface
        under which "What You See Is *All* You Get"; an unhappy
        variant of {WYSIWYG}.  Visual, "{point-and-drool interfaces}"
        are easy to learn but often lack depth; they often frustrate
        advanced users who would be better served by a command-style
        interface.  When this happens, the frustrated user has a
        WYSIAYG problem.

        This term is most often used of editors, {word processors},
        and document formatting programs.  WYSIWYG "{desktop
        publishing}" programs, for example, are a clear win for
        creating small documents with lots of fonts and graphics in
        them, especially things like newsletters and presentation
        slides.  When typesetting book-length manuscripts, on the
        other hand, scale changes the nature of the task; one quickly
        runs into WYSIAYG limitations, and the increased power and
        flexibility of a command-driven formatter like {TeX} or
        {Unix}'s {troff} becomes not just desirable but a necessity.

        Compare {YAFIYGI}.

        (1999-03-03)

What You See Is What You Get

        <jargon> (WYSIWYG) /wiz'ee-wig/ Describes a user interface for
        a document preparation system under which changes are
        represented by displaying a more-or-less accurate image of the
        way the document will finally appear, e.g. when printed.  This
        is in contrast to one that uses more-or-less obscure commands
        that do not result in immediate visual feedback.

        True WYSIWYG in environments supporting multiple fonts or
        graphics is a a rarely-attained ideal; there are variants of
        this term to express real-world manifestations including
        WYSIAWYG (What You See Is *Almost* What You Get) and
        WYSIMOLWYG (What You See Is More or Less What You Get).  All
        these can be mildly derogatory, as they are often used to
        refer to dumbed-down {user-friendly} interfaces targeted at
        non-programmers; a hacker has no fear of obscure commands
        (compare {WYSIAYG}).  On the other hand, {EMACS} was one of
        the very first WYSIWYG editors, replacing (actually, at first
        overlaying) the extremely obscure, command-based {TECO}.

        See also {WIMP}.

        (1999-03-03)

wheel

        [slang "big wheel" for a powerful person] A person who has an
        active {wheel bit}.  "We need to find a wheel to unwedge the
        hung tape drives."  (See {wedged}).

wheel bit

        A privilege bit that allows the possessor to perform some
        restricted operation on a {time-sharing} system, such as read
        or write any file on the system regardless of protections,
        change or look at any address in the running monitor, crash or
        reload the system, and kill or create jobs and user accounts.
        The term was invented on the TENEX operating system, and
        carried over to TOPS-20, XEROX-IFS, and others.  The state of
        being in a privileged logon is sometimes called "wheel mode".
        This term entered the Unix culture from TWENEX in the
        mid-1980s and has been gaining popularity there (especially at
        university sites).  See also {root}.

wheel wars

        [Stanford University] A period in {larval stage} during which
        student hackers hassle each other by attempting to log each
        other out of the system, delete each other's files, and
        otherwise wreak havoc, usually at the expense of the lesser
        users.


When It's Done

        <jargon> A manufacturer's non-answer to questions about
        product availability.  This answer allows the manufacturer to
        pretend to communicate with their customers without setting
        themselves any deadlines or revealing how behind schedule the
        product really is.  It also sounds slightly better than "We
        don't know".

        (1999-08-22)

Whetstone

        <benchmark> The first major {synthetic benchmark} program,
        intended to be representative for numerical ({floating-point}
        intensive) programming.  It is based on statistics gathered by
        Brian Wichmann at the {National Physical Laboratory} in
        England, using an {Algol 60} {compiler} which translated Algol
        into instructions for the imaginary Whetstone machine.  The
        compilation system was named after the small town of Whetstone
        outside the City of Leicester, England, where it was designed.

        The later {dhrystone} benchmark was a pun on Whetstone.

        Source code: {C
        (ftp://netlib.att.com/netlib/benchmark/whetstonec.Z)}, {single
        precision Fortran
        (ftp://netlib.att.com:/netlib/benchmark/whetstones.Z)},
        {double precision Fortran
        (ftp://netlib.att.com:/netlib/benchmark/whetstoned.Z)}.

        ["A Synthetic Benchmark", H.J. Curnow and B.A. Wichmann, The
        Computer Journal, 19,1 (1976), pp. 43-49].

        (1994-11-14)

Which Stands For Nothing

        <language> (WSFN) A beginner's language with emphasis on
        graphics produced by {Atari} in 1983 for {Atari} home
        computers.  There is also {Advanced WSFN}.

        (1996-06-12)

while

        <programming> The {loop} construct found in nearly all
        {imperative} programming languages which executes one or more
        instructions (the "loop body") repeatedly so long as some
        condition evaluates to true.  In contrast to a {repeat} loop,
        the loop body will not be executed at all if the condition is
        false on entry to the while.

        For example, in {C}, a while loop is written

                while (<expr>) <statement>;

        where <expr> is any expression and <statement> is any
        statement, including a compound statement within braces
         "{..}".

        (1995-03-14)

White Book

        1. <language, publication> {K&R}.

        2. <language, publication, file format> The fourth book in
        {Adobe Systems, Inc.}'s {PostScript} series, describing the
        previously-secret format of {Type 1} {fonts}.  The other three
        official guides are known as the {Blue Book}, the {Green
        Book}, and the {Red Book}.

        ["Adobe Type 1 Font Format, version 1.1", Addison-Wesley, 1990
        (ISBN 0-201-57044-0)].

        3. <hardware, standard> {White book CD-ROM}.

        (1996-12-03)

White book CD-ROM

        <hardware, standard> A more open {CD-ROM} {standard} than
        {Green Book CD-ROM}.  All films mastered on CD-ROM after March
        1994 use White Book.  Like Green Book, it is {ISO 9660}
        compliant, uses mode 2 form 2 addressing and can only be
        played on a {CD-ROM} drive which is {XA} (Extended
        Architecture) compatible.  White book CDs are labelled "Video
        CD".

        (1994-11-02)

white box testing

        <programming> (Or "clear", "glass", "open") Software testing
        approaches that examine the program structure and derive test
        data from the program logic.

        Structural testing is sometimes referred to as clear-box
        testing since white boxes are considered opaque and do not
        really permit visibility into the code.

        (1996-05-10)

White pages

        A directory service for locating individuals by name (by
        analogy with the telephone directory).  The {Internet}
        supports several {database}s that contain basic information
        about users, such as {electronic mail} addresses, telephone
        numbers and postal addresses.  These databases can be searched
        to get information about particular individuals.  See
        {Knowbot}, {Netfind}, {whois}, {X.500}, {finger}.

white paper

        <publication> A short treatise whose purpose is to educate
        industry customers.  See, e.g., {Architecture Neutral
        Distribution Format}.

        (1997-10-24)

whitespace

        <character> (From the colour it produces on white paper) Any
        contiguous sequence of {spaces}, {tabs}, {carriage return}s,
        and/or {line feed}s.  Whitespace might also possibly include
        {form feed} characters.  The term is common on {Unix}.

        See also {non-printing character}.

        (1996-09-04)

white trash

        <abuse, hardware> A pejorative term for {Intel}-based
        {microcomputers}, used by {NeXT} users at UK law firm
        Linklaters & Paines to contrast these machines with their
        black NeXT boxes.

        (1996-09-04)

WHNF

        {weak head normal form}

whois

        An {Internet} directory service for looking up names of people
        on a remote server.  Many servers respond to {TCP} queries on
        {port} 43, in a manner roughly analogous to the {DDN} {NIC}
        whois service described in {RFC} 954.  Other sites provide
        this directory service via the {finger} {protocol} or accept
        queries by {electronic mail} for directory information.  On
        {Unix} the client command is

                whois -h server_name person_name

        You can also type "telnet server_name 43" and then type the
        person's name on a separate line.  For a list of whois
        servers, FTP/Gopher: sipb.mit.edu.  Or

                whois -h sipb.mit.edu whois-servers

        As the above command demonstrates, whois can find information
        about things other than users, e.g. domains, networks and
        hosts.

        See also {finger}, {X.500}, {white pages}.

Whopper

        {WarGames}

WHQL

        Windows Hardware Quality Labs

        [What is it?]

        (1998-05-21)

WIBNI

        ({Bell Labs}) Wouldn't It Be Nice If.

        What most requirements documents and specifications consist
        entirely of.

        Compare {IWBNI}.

        (1994-11-24)

Wide Area Information Servers

        <networking, information science> (WAIS) A distributed
        information retrieval system.  WAIS is supported by {Apple
        Computer}, {Thinking Machines} and Dow Jones.  {Client}s are
        able to retrieve documents using keywords.  The search returns
        a list of documents, ranked according to the frequency of
        occurrence of the keyword(s) used in the search.  The client
        can retrieve text or {multimedia} documents stored on the
        {server}.  WAIS offers simple {natural language} input,
        indexed searching for fast retrieval, and a "relevance
        feedback" mechanism which allows the results of initial
        searches to influence future searches.  It uses the {ANSI
        Z39.50} service.  {Public domain} implementations are
        available.

        Other information retrieval systems include {archie},
        {Gopher}, {Prospero}, and {World-Wide Web}.

        {Usenet} newsgroup: {news:comp.infosystems.wais}.

        {Telnet (telnet://sunsite.unc.edu)}

        (1995-03-13)

Wide Area Network

        (WAN) A {network}, usually constructed with {serial line}s,
        extending over distances greater than one kilometre.

        Compare {local area network}, {metropolitan area network}.

        (1994-11-24)

Wideband ATM

        <networking> An enhanced form of {ATM} networking that
        transfers digital data over {local area networks}, orignally at 0.96
        {Gbps}, now (Aug 1996) at 1.0 Gbps.

        (1996-08-23)

Wide SCSI

        <hardware, standard> A variant on the {SCSI-2} interface.  It
        uses a 16-bit bus - double the width of the original {SCSI}-1
        - and therefore cannot be connected to a SCSI-1 bus.  It
        supports transfer rates up to 20 MB/s, like {Fast SCSI}.

        There is also a SCSI-2 definition of Wide-SCSI with a 32 bit
        data bus.  This allows up to 40 megabytes per second but is
        very rarely used because it requires a large number of wires
        (118 wires on two connectors).  Thus Wide SCSI usually means
        16 bit-wide SCSI.

        (1995-04-21)

widget

        1. A meta-thing.  Used to stand for a real object in didactic
        examples (especially database tutorials).  Legend has it that
        the original widgets were holders for buggy whips.  "But
        suppose the parts list for a widget has 52 entries..."

        2. [possibly evoking "window gadget"] In graphical user
        interfaces, a combination of a graphic symbol and some program
        code to perform a specific function.  E.g. a scroll-bar or
        button.  Windowing systems usually provide widget libraries
        containing commonly used widgets drawn in a certain style and
        with consistent behaviour.

wiggles

        [scientific computation] In solving partial differential
        equations by finite difference and similar methods, wiggles
        are sawtooth (up-down-up-down) oscillations at the shortest
        wavelength representable on the grid.  If an algorithm is
        unstable, this is often the most unstable waveform, so it
        grows to dominate the solution.  Alternatively, stable (though
        inaccurate) wiggles can be generated near a discontinuity by a
        Gibbs phenomenon.

Wild_LIFE

        Logic, Inheritance, Functions and Equations

        parts: interpreter, manual, tests, libraries, examples

        Paradise Project, DEC Paris Research Laboratory.

        {(ftp://gatekeeper.dec.com/pub/plan/Life.tar.Z)} - Wild_LIFE
        interpreter from Paradise project at DEC's Paris Research Lab

        LIFE is an experimental programming language with a powerful
        facility for structured type inheritance.  It reconciles
        styles from functional programming, logic programming, and
        object-oriented programming.  LIFE implements a constraint
        logic programming language with equality (unification) and
        entailment (matching) constraints over order-sorted feature
        terms.  The Wild_LIFE interpreter has a comfortable user
        interface with incremental query extension ability.  It
        contains an extensive set of built-in operations as well as an
        X Windows interface.

        A semantic superset of LOGIN and LeFun.  Syntax is similar to
        prolog.

        bugs:           <life-bugs@prl.dec.com>

        ports:          MIPS-Ultrix

        Mailing list:   life-request@prl.dec.com

        E-mail: Peter Van Roy <vanroy@prl.dec.com>

        (1992-12-14)

wild card

        <operating system, programming, text> (From card games in
        which certain cards, often the joker, can act as any other
        card) A special character or character sequence which matches
        any character in a string comparison, like ellipsis ("...") in
        ordinary written text.

        In {Unix} filenames '?' matches any single character and '*'
        matches any zero or more characters.  In {regular
        expressions}, '.' matches any one character and "[...]"
        matches any one of the enclosed characters.

        See also {Backus-Naur Form}.

        (1997-07-16)

William Gibson

        <person> Author of {cyberpunk} novels such as Neuromancer
        (1984), Count Zero (1986), Mona Lisa Overdrive, and Virtual
        Light (1993).

        Neuromancer, a novel about a computer {hacker}/criminal
        "cowboy" of the future helping to free an {artificial
        intelligence} from its programmed bounds, won the Hugo and
        Nebula science fiction awards and is credited as the seminal
        cyberpunk novel and the origin of the term "{cyberspace}".

        Gibson does not have a technical background and supposedly
        purchased his first computer in 1992.

        (1996-06-11)

William Hamilton

        <person> A mathematician who posed {Hamilton's problem}.

        {Biography
        (http://gregory.dcs.st-and.ac.uk/~history/ShortBiogs/H.html#Hamilton)}.

        [Summary?]

        (1995-11-02)

William Joy

        <person> (Bill Joy) Author of the {C shell} and {vi}, he was
        also one of the people at the {University of California at
        Berkeley} responsible for the {Berkeley System Distribution}
        of {Unix}.  He also wrote a book on {Unix}.

        He was a co-founder of {Sun Microsystems, Inc.}, where he is
        still (1997) Vice-President of Research.  Among his many
        projects for Sun have been helping to design the {Network File
        System} and the {SPARC} architechture.

        {Biography (http://www.sun.com/sunergy/Bios/joy_bio.html)}.

        {Bill's Ferrari one April Fool's Day
        (http://www.sun.com/events/april1/1987.html)}.

        See also {dinosaur}.

        [Book ref?  E-mail?]

        (1997-03-12)

WIMP

        <operating system> Windows, Icons, Menus and Pointers
        (or maybe Windows, Icons, Mouse, {Pull-down menu}s).

        The style of {graphical user interface} invented at {Xerox
        PARC}, popularised by the {Apple Macintosh} and now available
        in other varieties such as the {X Window System},
        {OSF}/{Motif}, {NeWS} and {RISC OS}.

        See {menuitis}, {user-obsequious}, {window system}.

        (1995-05-02)

WIMP environment

        {WIMP}

win

        <jargon> (Said of people, computers, {algorithms}, programs)
        (To be) a success at a given task.

        E.g. "{WYSIWYG} is a clear win for small documents".

        "winnitude" is the quality posessed by something which wins.
        "winning" is often (ab)used as an adjective.

        Synonyms: {cuspy}, {elegant}.  Antonym: {lose}.  Compare
        {lossy}, {lossless}.

        (1996-09-08)

Win32

        <programming> An {application programming interface} that is
        common to all {Microsoft}'s 32-bit Windows {operating
        systems}.  These currently include: {Windows 95}, {Windows
        98}, {Windows NT} and {Windows CE}.

        [Relationship with {Win32s}?]

        (1997-12-20)

Win32s

        <operating system> A free extension for {Microsoft Windows},
        released by {Microsoft}.  Win32s is a software layer on top of
        Windows which allows {32-bit applications} (e.g. {Mosaic}) to
        run on Windows.  Both stand-alone Windows and {Windows for
        Workgroups} run as 16 bit, and both can use Win32s to run
        32-bit applications.

        (1996-07-08)

Win 95

        {Windows 95}

Win 98

        {Windows 98}

winchester

        <hardware> An informal generic term for {floating-head}
        {magnetic disk} drives in which the read-write head planes
        over the disk surface on an air cushion.

        The name arose because the original 1973 engineering prototype
        for what later became the {IBM 3340} featured two 30-megabyte
        volumes; 30--30 became "Winchester" when somebody noticed the
        similarity to the common term for a famous Winchester rifle
        (in the latter, the first 30 referred to caliber and the
        second to the grain weight of the charge).

        (1994-12-06)

windowing system

        {window system}

window manager

        <operating system> A part of a {window system} which arranges
        windows on a screen.  It is responsible for moving and
        resizing windows, and other such functions common to all
        applications.

        Examples from the {X Window System} are {twm}, {gwm}, {olwm}.

        (1994-12-06)

Window RAM

        {Window Random Access Memory}

Window Random Access Memory

        <hardware, storage> (WRAM, Window RAM) A kind of {RAM} which
        is faster than {VRAM}.

        WRAM is used in the Matrox MGA Millennium {video display card}
        and almost certainly elsewhere.

        [More details?]

        (1996-06-05)

Windows

        <operating system> See {Microsoft Windows}, {Windows NT}.

        (1997-11-23)

Windows 1

        <operating system> The first incarnation of {Microsoft
        Windows}, released in 1985.  It took a total of 55
        programmer-years to develop, and only allowed tiled windows.

        (1996-07-08)

Windows 2

        <operating system> The second version of {Microsoft Windows},
        released in 1987.  Windows 2 had considerably more features
        than {Windows 1}, such as overlapping windows and {icons}.
        When {Windows/386} was released, Windows 2 was renamed
        Windows/286.

Windows 2000

        <operating system> An {operating system} developed by
        {Microsoft Corporation} for the {PC} as the successor to
        {Windows 98}.  According to Microsoft, Windows 2000 provides
        more interoperability with the {Internet}.

        {Home (http://www.microsoft.com/windows2000/)}.

        (1999-10-18)

Windows/286

        {Windows 2}

Windows 2K

        {Windows 2000}

Windows 3.0

        <operating system> A complete rework of {Microsoft Windows}
        with many new facilities such as the ability to address memory
        beyond 640k.  It was released in 1990, and vigorous
        development of applications by third parties helped Microsoft
        sell over 10 million copies.

        (1996-07-08)

Windows 3.1

        <operating system> A version of {Microsoft Windows} with many
        improvements over {Windows 3.0}, including {True Type Fonts},
        {Object Linking and Embedding} (OLE) and {Mouse Trails} for
        use with {LCD} Devices.  It also saw the loss of {Real Mode},
        which meant it would no longer run on {Intel 8086} processors
        (did anyone ever do this anyway?).

        Sometimes described as "stand-alone Windows", in contrast to
        {Windows for Workgroups 3.1}.  {Windows 3.11} is a free
        bug-fix update.  3.1's successors are {Windows 95} and
        {Windows NT}.

        (1996-07-08)

Windows 3.11

        <operating system> A free upgrade to {Windows 3.1}, which
        contained mainly minor bug fixes.

        (1996-07-08)

Windows/386

        <operating system> A version of {Microsoft Windows} released
        in late 1987.  Windows/386 was basically the same as its
        predecessor, Windows/286 (as {Windows 2} was renamed), but
        with the capability to run multiple {MS-DOS} applications
        simultaneously in {extended memory}.

        (1996-07-08)

Windows 4GL

        <tool, database> (INGRES/Windows 4GL) A graphical tool running
        on top of a {workstation}'s native {windowing system}, to help
        developers to build user interfaces to {INGRES} applications.

        (1996-07-09)

Windows 94

        <operating system, humour> A facetious name for {Windows 95},
        so called because it was originally meant to ship in 1994.

        (1998-09-07)

Windows 95

        <operating system> (Win95) {Microsoft}'s successor to their
        {Windows 3.11} {operating system} for {IBM PC}s.  It was known
        as "Chicago" during development.  Its release was originally
        scheduled for late 1994 but eventually happened on 11 Jul
        1995, followed by Service Release 1 on 1995-12-31 and OSR2
        (OEM Service Release 2) on 1996-08-24.

        In contrast to earlier versions, Windows 95 is a complete
        operating system rather than a {graphical user interface}
        running on top of {MS-DOS}.

        It provides {32-bit application} support, {pre-emptive
        multitasking}, threading and built-in networking ({TCP/IP},
        {IPX}, {SLIP}, {PPP}, and {Windows Sockets}).  It includes
        {MS-DOS} 7.0, but takes over completely after booting.  The
        {graphical user interface}, while similar to previous Windows
        versions, is significantly improved.

        Windows 95 has also been described as "32-bit extensions and a
        graphical shell for a 16-bit patch to an 8-bit operating
        system originally coded for a 4-bit microprocessor, written by
        a 2-bit company that can't stand 1-bit of competition".

        The successor to Windows 95 was {Windows 98}.

        (1998-07-19)

Windows 98

        <operating system> The 1998 update to {Windows 95}.

        [Details?]

        (1998-09-07)

Windows Application Binary Interface

        <operating system, tool> (WABI) A software package from {Sun
        Microsystems} to allow certain {Microsoft Windows}
        applications under the {X Window System}.  Wabi 2.2 runs under
        {Solaris} on {SPARC}, {Intel}, and {PowerPC}.  Wabi works by
        providing translated versions of the three core Windows
        libraries, {user.dll}, {kernel.dll}, and {gdi.dll} which
        redirect Windows calls to Solaris equivalents.  For code other
        than core library calls Wabi either executes the instructions
        directly on the hardware, if it is Intel, or emulates them,
        either one instruction at a time or by translating a block of
        instructions and caching the result (e.g. for a loop).

        {WabiServer} allows the Windows application and X display to
        be on different computers.

        {Overview (http://www.sun.com/solaris/products/wabi/)}.

        (1997-01-08)

Windows CE

        <operating system> /C E/ A version of the {Microsoft Windows}
        {operating system} that is being used in a variety of
        {embedded} products, from {handheld} PCs to specialised
        industrial {controllers} and consumer electronic devices.
        Programming for Windows CE is similar to programming for other
        {Win32} {platforms}.

        Windows CE was developed to be a customisable operating system
        for embedded {applications}.  Its {kernel} borrows much from
        other Microsoft {32-bit} operating systems, while eliminating
        (or replacing) those operating system features that are not
        needed for typical Windows CE-based applications.  For
        example, as on {Windows NT}, all applications running on
        Windows CE run in a fully {preemptive multitasking}
        environment, in fully {protected memory} spaces.

        The {Win32} (API) for Windows CE is smaller than the Win32 API
        for the other 32-bit Windows operating systems.  It includes
        approximately half the interface methods of the Windows NT
        version of the API.  But the Win32 API for Windows CE also
        includes features found in no other Microsoft operating
        system.  The notification API, for example, makes it possible
        to handle user or application notification events (such as
        timer events) at the operating-system level, rather than in a
        running application.  The {touch screen} API and the built-in
        support for the Windows CE {database} are not found in other
        Windows operating systems.  The touch screen API makes it easy
        to manage screen calibration and user interactions for
        {touch-sensitive displays}, while the database API provides
        access to a data storage facility.

        {(http://channels.microsoft.com/windowsce/developer/default.htm)}.

        {(http://channels.microsoft.com/windowsce/developer/technical/default.h
tm)}.

        (1997-12-20)

Windows for Workgroups 3.1

        <operating system> A version of {Windows 3.1} which works with
        a network.  Although stand-alone 3.1 can be networked, the
        installation and configuration is much improved with Windows
        for Workgroups 3.1.

        [Details?]

        (1996-07-08)

Windows for Workgroups 3.11

        <operating system> A significant upgrade to {Windows for
        Workgroups 3.1} adding 32-bit file access, fax capability and
        higher performance.

        (1996-07-08)

window shopping

        <jargon> A term used among users of {WIMP} environments like
        the {X Window System} or the {Macintosh} at the US Geological
        Survey for extended experimentation with new window colours,
        {fonts}, and {icon} shapes.  This activity can take up hours
        of what might otherwise have been productive working time.  "I
        spent the afternoon window shopping until I found the coolest
        shade of green for my active window borders --- now they
        perfectly match my medium slate blue background."  Serious
        window shoppers will spend their days with bitmap editors,
        creating new and different icons and background patterns for
        all to see.  Also: "window dressing", the act of applying new
        fonts, colours, etc.

        See {fritterware}, compare {macdink}.

        (1996-07-08)

Windows Internet Naming Service

        <networking> (WINS) Software which resolves {NetBIOS} names to
        {IP addresses}.

        [Details?]

        (1998-02-14)

Windows Messaging

        <messaging> {Microsoft}'s {Internet} {electronic mail}
        application, formerly called {Microsoft Exchange}.

        (1998-07-05)

windows messaging

        <messaging> An {inter-process communication} facility usually
        provided by vendors of {graphical user interfaces} for
        {concurrent} {operating systems}, such as {Microsoft}, The {X
        Consortium} and {Apple}.

        The system software translates hardware {interrupts} from
        various input devices into messages according to the current
        input context (e.g. the active {window} of the frontmost
        {application}).  Each message is a short piece of information.
        A message's format depends on its type, which is usually
        encoded in its first field.  The message is sent to the
        {client} application using some communication {protocol}
        (e.g. {shared memory}, internal {socket}, network socket).
        The client application dispatches the message and performs any
        actions required.  The messages can also be sent by client
        applications.  This provides convenient and flexible
        inter-process communication.

        (1998-07-06)

Windows NT

        <operating system> (Windows New Technology, NT).
        {Microsoft}'s 32-bit {operating system} developed from what
        was originally intended to be {OS/2} 3.0 before {Microsoft}
        and {IBM} ceased joint development of OS/2.  NT was designed
        for high end {workstations} (Windows NT 3.1), servers (Windows
        NT 3.1 Advanced Server) and corporate networks.

        The first release, {Windows NT 3.1}, price UKP 395, was in
        September 1993, after having been in {beta-test} for as long
        as anyone could remember.

        Unlike {Windows 3.1}, which was a graphical environment that
        ran on top of {MS-DOS}, Windows NT is a complete operating
        system.  To the user it looks like Windows 3.1, but it has
        true {multi-threading}, built in networking, security, and
        {memory protection}.

        It is based on a {microkernel}, with 32-bit addressing for up
        to 4Gb of {RAM}, virtualised hardware access to fully protect
        applications, installable file systems, such as {FAT}, {HPFS}
        and {NTFS}, built-in networking, {multi-processor} support,
        and {C2 security}.

        NT is also designed to be hardware independent.  Once the
        machine specific part - the {Hardware Abstraction Layer} (HAL)
        - has been ported to a particular machine, the rest of the
        operating system should theorertically compile without
        alteration.  A version of NT for {DEC}'s {Alpha} machines was
        planned (September 1993).

        NT needs a fast {386} or equivalent, at least 12MB of {RAM}
        (preferably 16MB) and at least 75MB of free disk space.

        {Usenet} newsgroups: {news:comp.os.ms-windows.nt.setup},
        {news:comp.os.ms-windows.nt.misc}.

        (1994-10-20)

Windows NT 3.1

        <operating system> {Microsoft}'s first version of "Windows New
        Technology" (WNT), although there is an {urban legend} that
        says the person responsible for {VMS} on the {DEC VAX} was
        also responsible for Windows NT, and if you move one letter on
        alphabetically from VMS, you get WNT.

        (1996-07-08)

Windows NT 3.5

        <operating system> A much improved version of {Microsoft}'s
        {Windows NT 3.1}.  NT is now (July 1996) supplied as "Windows
        NT 3.5 Workstation" and "Windows NT 3.5 Server".  It has
        better {OLE} support, higher performance and requires less
        memory.

        (1996-07-08)

Windows NT 4

        <operating system> A version of {Microsoft}'s {Windows NT}
        {operating system}, originally code named "Cairo".  It was
        supposed to ship in the first half of 1995.  Details are
        scarce, but it is intended to provide an {object-oriented}
        version of Windows.

        (1996-07-09)

Windows NT Network Model

        <networking> The network model used by {Windows NT}.  The
        model has the following layers:

         User Applications (e.g. Excel)
         {API}s
         File System Drivers
         {TDI}
         Protocols
         {NDIS} v4
         NDIS Wrapper
         NDIS Card Driver
         {Network Adapter Card}

        Compare {OSI} seven layer model.

        (1997-11-05)

Windows sockets

        <networking, standard> (Winsock) A specification for
        {Microsoft Windows} network software, describing how
        applications can access network services, especially {TCP/IP}.
        Winsock is intended to provide a single {API} to which
        application developers should program and to which multiple
        network software vendors should conform.  For any particular
        version of {Microsoft Windows}, it defines a binary interface
        ({ABI}) such that an application written to the Windows
        Sockets API can work with a conformant {protocol}
        implementation from any network software vendor.

        Winsock was conceived at Fall Interop '91 during a {Birds of a
        Feather} session.

        Windows Sockets is supported by {Microsoft Windows}, {Windows
        for Workgroups}, {Win32s}, {Windows 95} and {Windows NT}.  It
        will support protocols other than {TCP/IP}.  Under {Windows
        NT}, {Microsoft} will provide Windows Sockets support over
        {TCP/IP} and {IPX}/{SPX}.  {DEC} will be implementing
        {DECNet}.  {Windows NT} will include mechanisms for multiple
        {protocol} support in Windows Sockets, both 32-bit and 16 bit.

        Mark Towfiq said, "The next rev. of Winsock will not be until
        towards the end of 1993.  We need 1.1 of the {API} to become
        firmly settled and implemented first."

        {Windows Sockets API
        (ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock)}
        or {(ftp://microdyne.com/pub/winsock)} or send a message
        "help" to either <ftpmail@SunSite.UNC.Edu> or
        <ftpmail@DECWRL.DEC.Com>.

        {Windows Sockets specification (ftp://rhino.microsoft.com)}

        Currently NetManage (NEWT), Distinct, FTP and Frontier are
        shipping Winsock {TCP/IP} stacks, as is {Microsoft} (Windows
        NT and {TCP/IP} for WFW), Beame & Whiteside Software (v1.1
        compliant), and Sun PC-NFS.  Windows 95 has "dial-up
        networking" which supports Winsock and TCP/IP.

        winsock.dll is available from some {TCP/IP} stack vendors.
        {Novell} has one in beta for their {Lan Workplace} for {DOS}.

        Peter Tattam <peter@psychnet.psychol.utas.edu.au> is
        alpha-testing a shareware Windows Sockets compliant {TCP/IP}
        stack {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winsock.zip)}
        and {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winpkt.com)}.

        {The Consummate Winsock App List
        (http://wwwvms.utexas.edu/~Neuroses/cwsapps.html)}.

        [Adapted from: Aboba, Bernard D., comp.protocols.tcp-ip.ibmpc
        Frequently Asked Questions, 1993 {Usenet}: {news:news.answers},
        {(ftp://netcom1.netcom.com/pub/mailcom/IBMTCP/)}].

        [Current status?]

        (1996-06-20)

window system

        Software which allows a {workstation}'s screen to be divided
        into rectangular areas which act like a separate input/output
        devices under the control of different {application} programs.
        This gives the user the ability to see the output of several
        processes at once and to choose which one will receive input
        by selecting its window, usually by pointing at it with a
        {mouse}.

        Examples are the {X Window System}, and proprietary systems on
        the {Macintosh} and {NeXT}, {NeWS} on {Suns} and {RISC OS} on
        the {Archimedes}.  See also {WIMP}.

Windoze

        {Microsloth Windows}

Wind River Systems

        <company> A company founded in 1981, now a world leader in
        {embedded systems}, providing {real-time operating systems}
        and development tools.  Wind River's development tools enable
        customers to standardise designs across projects and quickly
        develop feature-rich products.

        Wind River Systems employs over 500 people worldwide (1998).
        Service and support is provided through its U.S. headquarters
        and overseas operations in the U.K., France, Germany,
        Scandinavia and Japan.

        {Home (http://www.wrs.com/)}.

        Address: Alameda, California, USA.

        (1998-11-06)

winged comments

        <programming> {Comments} set on the same line as code, as
        opposed to {boxed comments}.

        In {C}, for example:

                d = sqrt(x*x + y*y);  /* distance from origin */

        Generally these refer only to the action(s) taken on that
        line.

        (1997-07-21)

winkey

        <chat> winkey face.

        See {emoticon}.

        (1996-09-08)

winning

        {win}

winnitude

        {win}

WINS

        {Windows Internet Naming Service}

Winsock

        {Windows sockets}

WinSoft Products Ltd

        <company> The company which produces {EMBLA Pro}.

        {Home (http://www.ftech.co.uk/~winsoft)}

        E-mail: WinSoft Products Ltd <info@winsoft.ftech.co.uk>

        (1996-03-11)

wintel

        <jargon, architecture> A term describing any computer
        {platform} consisting of some version of {Microsoft Windows}
        running on an {Intel 80x86} processor or compatible.

        Despite the dominance of the wintel platform, in its many
        forms, from {MS-DOS} on an {Intel 8088} to {Windows 2000} on a
        {Pentium II Xeon}, there are many "non-wintel" {platforms} in
        use.  These include {Acorn}, {Amiga}, {Apple}, {ARM}, {Atari},
        {A\Box}, {Be}, {Network Computer}, {OS/2}, {PowerPC}, {Psion},
        {Linux} and all other {Unix} systems.

        {Convergence International (http://www.convergence.org/)}.

        (1999-09-15)

WINZIP

        <tool> A {Microsoft Windows} {graphical user interface} {front
        end} for the {PKZIP} {compression} utility.

        WINZIP can be obtained as {shareware}, on evaluation, or as a
        new licenced copy.  It is much easier to use then PKZIP for
        DOS, and includes a helpful, help file.

        [Where from?]

        (1995-12-01)

wired

        {hard-wired}

wirehead

        <jargon> /wi:r'hed/ (Probably from SF slang for an electrical
        brain-stimulation addict) 1. A hardware hacker, especially one
        who concentrates on communications hardware.

        2. An expert in {local-area network}s.  A wirehead can be a
        network software wizard too, but will always have the ability
        to deal with network hardware, down to the smallest component.
        Wireheads are known for their ability to lash up an {Ethernet}
        {terminator} from spare resistors, for example.

        (1995-02-28)

wireless

        <networking> A term describing a computer {network} where
        there is no physical connection (either copper cable or {fibre
        optics}) between sender and receiver, but instead they are
        connected by radio.

        Applications for wireless networks include multi-party
        {teleconferencing}, distributed work sessions, {personal
        digital assistant}s, and electronic newspapers.  They include
        the transmission of voice, video, {image}s, and data, each
        traffic type with possibly differing {bandwidth} and
        quality-of-service requirements.  The wireless network
        components of a complete source-destination path requires
        consideration of mobility, {hand-off}, and varying
        transmission and {bandwidth} conditions.  The wired/wireless
        network combination provides a severe bandwidth mismatch, as
        well as vastly different error conditions.  The processing
        capability of fixed vs. mobile terminals may be expected to
        differ significantly.  This then leads to such issues to be
        addressed in this environment as {admission control},
        {capacity assignment} and {hand-off} control in the wireless
        domain, flow and error control over the complete end-to-end
        path, dynamic bandwidth control to accommodate bandwidth
        mismatch and/or varying processing capability.

        {Usenet} newsgroup {news:comp.std.wireless}.

        (1995-02-27)

Wireless Application Protocol

        <protocol, standard> (WAP) An open international {standard}
        for applications that use {wireless} communication,
        e.g. {Internet} access from a mobile phone.

        [Details?  Reference?]

        (1999-10-20)

wirewater

        <jargon> {programming fluid}.  This melds the mainstream slang
        adjective "wired" (stimulated, up, hyperactive) with
        "firewater"; however, it refers to caffeinacious rather than
        alcoholic beverages.

        (1995-02-27)

wish list

        <jargon> A list of desired {features} or {bug fixes} that
        probably won't get done for a long time, usually because the
        person responsible for the code is too busy or can't think of
        a clean way to do it.  "OK, I'll add automatic filename
        completion to the wish list for the new interface."

        Compare {tick-list features}.

        [Does anybody call this a "want list"?]

        (1998-04-28)

Wisp

        ["An Experiment with a Self-Compiling Compiler for a Simple
        List-Processing Language", M.V. Wilkes, Ann Rev Automatic
        Programming 4:1-48.  (1964)].

within delta of

        See {delta}.

within epsilon of

        See {epsilon}.

wizard

        1. A person who knows how a complex piece of software or
        hardware works (that is, who {grok}s it); especially someone
        who can find and fix bugs quickly in an emergency.  Someone is
        a {hacker} if he or she has general hacking ability, but is a
        wizard with respect to something only if he or she has
        specific detailed knowledge of that thing.  A good hacker
        could become a wizard for something given the time to study
        it.

        2. A person who is permitted to do things forbidden to
        ordinary people; one who has {wheel} privileges on a system.

        3. A Unix expert, especially a Unix systems programmer.  This
        usage is well enough established that "Unix Wizard" is a
        recognised job title at some corporations and to most
        headhunters.

        See {guru}, {lord high fixer}.  See also {deep magic}, {heavy
        wizardry}, {incantation}, {magic}, {mutter}, {rain dance},
        {voodoo programming}, {wave a dead chicken}.

        4. An interactive help utility that guides the user through a
        potentially complex task, such as configuring a {PPP} driver
        to work with a new {modem}.  Wizards are often implemented as
        a sequence of {dialog boxes} which the user can move forwards
        and backwards through, filling in the details required.  The
        implication is that the expertise of a human wizard in one of
        the above senses is encapsulated in the software wizard,
        allowing the average user to perform expertly.

        (1998-09-07)

Wizard Book

        <publication> {Hal Abelson}, {Gerald Sussman} and Julie
        Sussman's "Structure and Interpretation of Computer Programs"
        (MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer
        science text used in introductory courses at MIT.  So called
        because of the wizard on the jacket.  One of the {bibles} of
        the LISP/Scheme world.  Also, less commonly, known as the
        {Purple Book}.

        (1995-01-10)

wizardly

        Pertaining to wizards.  A wizardly {feature} is one that only
        a wizard could understand or use properly.

wizard mode

        <games> [{rogue}] A special access mode of a program or
        system, usually password protected, that permits some users
        godlike privileges.  Generally not used for {operating
        system}s themselves ("root mode" or "wheel mode" would be used
        instead).  This term is often used with respect to games that
        have editable state.

WizDOM

        Software for distributed {Unix} {system management} from
        {TIVOLI Systems} of Austin, Texas, USA.

        (1995-02-10)

wk1

        <filename extension> (worksheet) The {filename extension} used
        by early versions of the {Lotus 1-2-3} {spreadsheet} program
        including release 2.01 (1987).  All files created by the user
        are given this extension.

        (1995-11-28)

wmf

        <filename extension> The {filename extension} for a {Windows
        Metafile}.

        (1995-04-25)

Wolfram Research, Inc.

        <company> The company founded by Stephen Wolfram in August
        1987 to develop {Mathematica} which was released in June 1988
        for the {Macintosh} and is now available on over 20
        {platform}s.  The company has offices in the United Kingdom
        and Tokyo, Japan.

        {Home (http://www.wri.com/)}

        E-mail: <info@wri.com>.

        (1995-02-10)

WOM

        {write-only memory}

woman

        <tool> A replacement for the {Unix} {man} {documentation}
        browsing command.  Version 1.157 of woman runs under/on
        {386BSD}, {OSF}, {Apollo} {Domain/OS}, {BSD}, {HP-UX}, {IBM}
        {RS-6000}, {Irix}, {Linux}, {Solaris}, {Sony} {NEWS}, {SunOS},
        {Ultrix}, {Unicos}.

        Posted to comp.sources.reviewed Volume 3, Issue 50 on 05 Jul
        1993 by Arne Henrik Juul <arnej@pvv.unit.no>, archive-name
        woman-1.157.

        {FTP USC, USA
        (ftp://usc.edu/archive/usenet/sources/comp.sources.reviewed/volume3/wom
an-1.157/)}.
        {FTP Imperial, UK
        (ftp://src.doc.ic.ac.uk/usenet/comp.sources.reviewed/volume3/woman-1.15
7/)}.

        (1995-03-21)

WOMBAT

        Waste Of Money, Brains, And Time.

        Problems which are both profoundly {uninteresting} in
        themselves and unlikely to benefit anyone interesting even if
        solved.  Often used in fanciful constructions such as
        "wrestling with a wombat".

        See also {crawling horror}, {SMOP}.

        (1995-03-10)

wombat

        1. <programming> A {metasyntactic variable} in {Commonwealth
        Hackish}.

        2. <computer> {wombat.doc.ic.ac.uk}.

        (1995-03-10)

wombat.doc.ic.ac.uk

        <computer> (Named after the Australian marsupial, vombatus
        ursinus).  The {Internet} {host} from which {this dictionary}
        was originally served.  {Internet address} 146.169.22.42.
        Formerly a {SPARCstation ELC}.  Kindly provided by the
        Computing Department, {Imperial College}, London.  Replaced by
        foldoc.doc.ic.ac.uk in June 1999.

        (1999-06-10)

womb box

        1. [TMRC] Storage space for equipment.

        2. [proposed] A variety of hard-shell equipment case with
        heavy interior padding and/or shaped carrier cutouts in a
        foam-rubber matrix; mundanely called a "flight case".  Used
        for delicate test equipment, electronics, and musical
        instruments.

Woodenman

        HOLWG, DoD, 1975.  Second of the series of DoD requirements
        that led to Ada.  "Woodenman Set of Criteria and Needed
        Characteristics for a Common DoD High Order Programming
        Language", David A. Fisher, Inst for Def Anal Working Paper,
        Aug 1975.  (See Strawman, Tinman, Ironman, Steelman).

woofer

        <jargon> (University of Waterloo) Some varieties of wide paper
        for printers have a perforation 8.5 inches from the left
        margin that allows the 3.5 inch excess on the right-hand side
        to be torn off when the print format is 80 columns or less
        wide.  If done with sufficient aplomb this makes a sound like
        the "woof" of a dog.  If the large part is the "woofer" then
        the small part must obviously be the "tweeter", following the
        names for the large and small cones in a hi-fi loudspeaker.

        These terms have been in use at Waterloo since 1972, but are
        unknown elsewhere.

        Compare {chad}.

        (1997-03-21)

WOOL

        Window Object Oriented Language.  A small {Common Lisp}-like
        extension language.  It claims to be the fastest interpreted
        language in {C} with {run-time type}s.  Colas Nahaboo
        <colas@sophia.inria.fr>.  Version 1 is used as the kernel
        language of the {GWM} window manager.  Version 2 has an object
        system.

        {(ftp://export.lcs.mit.edu/contrib/gwm)}

Worcester Polytechnic Institute

        (WPI) A well-regarded, small engineering college.

        Address: Worcester, MA, USA.

        (1995-03-01)

Word

        {Microsoft Word}

word

        <storage> A fundamental unit of storage in a computer.  The
        size of a word in a particular computer architecture is one of
        its chief distinguishing characteristics.

        The size of a word is usually the same as the width of the
        computer's {data bus} so it is possible to read or write a
        word in a single operation.  An instruction is usually one or
        more words long and a word can be used to hold a whole number
        of characters.  These days, this nearly always means a whole
        number of {bytes} (eight bits), most often 32 or 64 bits.  In
        the past when six bit {character sets} were used, a word might
        be a multiple of six bits, e.g. 24 bits (four characters) in
        the {ICL 1900} series.

        (1994-11-11)

Word for Windows

        <text, tool, product> The version of {Microsoft Word} which
        runs under {Microsoft Windows}.

        Version 6.0.

        (1995-04-14)

WordPerfect

        1. <text, tool, product> A {word processor} for a wide range
        of computers.  The first version was sold in 1980 for {Data
        General} machines, and by the end of 1993 versions were on
        sale for {MS-DOS}, {Microsoft Windows} and {Macintosh}
        computers.  WordPerfect 6.0 for {Unix} was scheduled for
        introduction in May 1994.

        Versions: WordPerfect 6.1 for Windows, WordPerfect 3.1 for
        Macintosh/Power Macintosh, WordPerfect 6.0 for UNIX,
        WordPerfect 6.0 for DOS, WordPerfect 7.0 for {Windows 95}.

        [Distinguishing features?]

        {Home (http://www.corel.com/products/wordperfect/)}.

        2. {WordPerfect Corporation}.

        (1995-07-05)

WordPerfect Corporation

        <company> The original developers of the {WordPerfect} {word
        processor} and a variety of other {applications} for {personal
        computers}.  WordPerfect was founded in Provo, Utah, USA in
        1979 by Alan Ashton and Bruce Bastion as "Satellite Software
        International".  The company name was changed to Wordperfect
        Corporation in 1986.  The company was bought by {Novell, Inc.}
        in 1994, who then sold it to {Corel Corporation} in 1996.

        (1997-03-12)

word processing

        {word processor}

word processor

        <text, tool> A program used to create and print (chiefly
        textual) documents that might otherwise be prepared on a
        typewriter.  The key advantage of word processor is its
        ability to make changes easily, such as correcting spelling,
        changing margins, or adding, deleting, and relocating entire
        blocks of text.  Once created, the document can be printed
        quickly and accurately and saved for later modifications.

        Today most popular word processors, such as {Microsoft Word},
        offer a much greater range of facilities than the first such
        programs.

        Compare {text editor}.

        (1995-04-14)

word size

        <processor> The number of bits that a {CPU} can process at one
        time.  Processors with many different word sizes have existed
        though powers of two (8, 16, 32, 64) have predominated for
        many years.  A processor's word size is often equal to the
        width of its external data bus though sometimes the bus is
        made narrower than the CPU (often half as many bits) to
        economise on packaging and circuit board costs.

        (1995-04-23)

word spamming

        <World-Wide Web, information science> Repeating a word many
        times in a {web page}, in a (usually futile) attempt to
        increase its {relevance} ranking in a {search engine}'s index
        (to "{spam}" the index).

        "Repeating a word over and over in a Web page (known as word
        spamming) has no effect on the [page's] ranking [in the
        index]."  -- {Altavista FAQ
        (http://www.altavista.digital.com/cgi-bin/query?pg=tmpl&v=faq.html)}.

        See also {spamdex}.

        (1997-04-09)

WordTech

        <company> Manufacturers of {Quicksilver}.

        Address: Orinda, CA, USA.

        (1995-05-11)

word wrap

        <text> A feature of {word processors} and most {text editors}
        where a word which would extend past the right hand margin is
        moved to the following line.  This is more sophisticated than
        character wrap which only moves to the next line for the first
        character past the right margin and thus will break some words
        in the middle.  The program may actually insert a new line in
        the text at the point where it is wrapped or it may only
        display it as though it contained a new line at that point.

        (1996-07-24)

workaround

        <jargon, programming> A temporary {kluge} used to bypass, mask
        or otherwise avoid a {bug} or {misfeature} in some system.
        Customers often find themselves living with workarounds for
        long periods of time rather than getting a {bug fix}.

        (1998-06-25)

Work Breakdown Structure

        <project> A way of grouping a project's tasks and subtasks.
        The tasks are numbered to indicate their relationship to each
        other.  Some industries use established work breakdown
        structure systems for billing and reporting purposes.

        (1996-05-29)

workflow

        1. <operating system> The {scheduling} of independent jobs on
        a computer.

        See also {time-sharing}, {WFL}.

        2. <job> The set of relationships between all the activities
        in a project, from start to finish.  Activities are related by
        different types of trigger relation.  Activities may be
        triggered by external events or by other activities.

        3. The movement of documents around an organisation for
        purposes including sign-off, evaluation, performing activities
        in a process and co-writing.

        [Stef Joosten et.al. "An empirical study about the practice of
        workflow management", {WA-12} report, 1994].

        (1995-03-27)

Workflow Management Coalition

        <body> (WfMc) A non-profit, international organisation of
        {workflow} vendors, users, and analysts committed to
        establishing {standards} for {workflow} terminology,
        {interoperability}, and connectivity.

        WfMC was founded in 1993 and now (1999) has over 130 members.

        {Home (http://www.aiim.org/wfmc)}.

        (1999-08-01)

workgroup

        {Computer Supported Cooperative Work}

working as designed

        <jargon> (IBM) Conforming to a wrong or inappropriate
        specification; useful, but misdesigned.  Frequently used as a
        sardonic comment on a program's utility or as a bogus reason
        for not accepting a criticism or suggestion.  At {IBM}, this
        sense is used in official documents!

        See {BAD}.

        (1995-04-04)

working set

        <architecture> The set of all pages (in a {paging} {virtual
        memory} system) used by a {process} during some time interval.

        As a result of {locality of reference}, the working set
        frequently consists of a relatively small fraction of a
        process's total virtual memory pages.  While a process's
        entire working set is in {physical memory} the process will
        run without {page faults}.  If the working set is too large
        for available physical memory, the process causes frequent
        {page faults}.

        In a {multitasking} environment, information about which pages
        are in each process's working set allows the memory management
        system to improve {CPU} efficiency by {prepaging} (also called
        the {working set model}).

        ["Modern Operating Systems", Andrew S. Tanenbaum, pub.
        Prentice Hall, Inc.  1992].

        (1997-04-09)

working set model

        {prepaging}

worksheet

        {spreadsheet}

workstation

        <computer> A general-purpose computer designed to be used by
        one person at a time and which offers higher performance than
        normally found in a {personal computer}, especially with
        respect to graphics, processing power and the ability to carry
        out several tasks at the same time.

        (1995-05-04)

World-Wide Wait

        <humour> A pejorative expansion of {WWW} reflecting on the
        slowness of some network connections and sites.

        (1997-03-30)

World-Wide Web

        <World-Wide Web, networking, hypertext> (WWW, W3, The Web) An
        {Internet} {client-server} {hypertext} distributed information
        retrieval system which originated from the {CERN} High-Energy
        Physics laboratories in Geneva, Switzerland.

        An extensive user community has developed on the Web since its
        public introduction in 1991.  In the early 1990s, the
        developers at CERN spread word of the Web's capabilities to
        scientific audiences worldwide.  By September 1993, the share
        of Web traffic traversing the {NSFNET} {Internet} {backbone}
        reached 75 {gigabytes} per month or one percent.  By July 1994
        it was one {terabyte} per month.

        On the WWW everything (documents, menus, indices) is
        represented to the user as a {hypertext} object in {HTML}
        format.  {Hypertext} {links} refer to other documents by their
        {URL}s.  These can refer to local or remote resources
        accessible via {FTP}, {Gopher}, {Telnet} or {news}, as well as
        those available via the {http} protocol used to transfer
        {hypertext} documents.

        The client program (known as a {browser}), e.g. {NCSA}
        {Mosaic}, {Netscape} {Navigator}, runs on the user's computer
        and provides two basic navigation operations: to follow a
        {link} or to send a query to a server.  A variety of client
        and server software is freely available.

        Most clients and servers also support "forms" which allow the
        user to enter arbitrary text as well as selecting options from
        customisable menus and on/off switches.

        Following the widespread availability of web browsers and
        servers, many companies from about 1995 realised they could
        use the same software and protocols on their own private
        internal {TCP/IP} networks giving rise to the term
        "{intranet}".

        If you don't have a WWW {browser}, but you are on the
        {Internet}, you can access the Web using the command:

                telnet www.w3.org

        (Internet address 128.141.201.74) but it's much better if you
        install a browser on your own computer.

        The {World Wide Web Consortium} is the main standards body for
        the web.

        {An article by John December
        (http://sunsite.unc.edu/cmc/mag/1994/oct/webip.html)}.

        {A good place to start exploring
        (http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/StartingPoints/NetworkSta
rtingPoints.html)}.

        {WWW servers, clients and tools
        (http://www.w3.org/hypertext/WWW/Status.html)}.

        Mailing list: <www-talk@www.w3.org>.

        {Usenet} newsgroups: {news:comp.infosystems.www.misc},
        {news:comp.infosystems.www.providers},
        {news:comp.infosystems.www.users},
        {news:comp.infosystems.announce}.

        The best way to access {this dictionary} is via the Web since
        you will get the latest version and be able to follow
        cross-references easily.  If you are reading a plain text
        version of this dictionary then you will see lots of curly
        brackets and strings like

                {(http://hostname/here/there/page.html)}

        These are transformed into hypertext links when you access it
        via the Web.

        See also {Java}, {webhead}.

        (1996-10-28)

World-Wide Web browser

        <World-Wide Web> A {browser} for the {World-Wide Web}.

        (1996-11-22)

World Wide Web Consortium

        <World-Wide Web, body> (W3C) The main standards body for the
        {World-Wide Web}.  W3C works with the global community to
        establish international {standards} for {client} and {server}
        {protocols} that enable on-line commerce and communications on
        the {Internet}.  It also produces reference software.

        W3C was created by the {Massachusetts Institute of Technology}
        (MIT) on 25 October 1994.  {Netscape Communications
        Corporation} was a founding member.  The Consortium is run by
        {MIT LCS} and {INRIA}, in collaboration with {CERN} where the
        web originated.  W3C is funded by industrial members but its
        products are freely available to all.  The director is Tim
        Berners-Lee who invented the {World-Wide Web} at the Center
        for European Particle Research (CERN).

        {Home (http://www.w3.org/)}.

        (1996-11-03)

World-Wide Web Worm

        <World-Wide Web> (WWWW) One of the first automatic indexing
        tools for the {World-Wide Web}, being developed in September
        1994 by Oliver McBryan <mcbryan@cs.colorado.edu> at the
        {University of Colorado}.  The worm created a database of
        300000 {multimedia} objects which can be obtained or searched
        for keywords via the WWW.

        {Home (http://www.cs.colorado.edu/home/mcbryan/WWWW.html)}

        (1996-05-19)

WORM

        {Write-Once Read-Many}

worm

        <networking, security> (From "Tapeworm" in John Brunner's
        novel "The Shockwave Rider", via {XEROX PARC}) A program that
        propagates itself over a network, reproducing itself as it
        goes.  Compare {virus}.  Nowadays the term has negative
        connotations, as it is assumed that only {crackers} write
        worms.

        Perhaps the best-known example was the {Great Worm}.

        Compare {Trojan horse}.

        (1996-09-17)

wormhole

        {back door}

wormhole routing

        <messaging> A property of a {message passing} system in which
        each part of a message is transmitted independently and one
        part can be forwarded to the next {node} before the whole
        message has been received.  All parts of a single message
        follow the same route.

        The independent parts are normally small, e.g. one 32-bit
        word.  This reduces the {latency} and the storage requirements
        on each node when compared with {message switching} where a
        node receives the whole message before it starts to forward it
        to the next node.  It is more complex than message switching
        because each node must keep track of the messages currently
        flowing through it.

        Wormhole routing could potentially apply to {packets} in a
        {packet switching} system so that forwarding of a packet could
        start as soon as its destination is known, before the whole
        packet had arrived.  [Is this done?].

        (1999-03-30)

wound around the axle

        {infinite loop}

WPG

        {Workstation Products Group}

WPI

        {Worcester Polytechnic Institute}

WPL+

        Word-oriented language internal to PRODOS Applewriter 2.1.
        Available on GEnie.

WPOP

        WonderPop.  Robert Rae <rhr@aiai.ed.ac.uk>, Edinburgh 1976.
        An implementation of POP for the PDP-10 that used cages for
        different data types.  Introduced processes, properties, and
        some typed identifiers.

wps

        <unit> (Obsolete) Words per second (mostly used for {Telex}
        and {TWX} transmission).

        (1997-01-07)

WRAM

        {Window Random Access Memory}

wrap around

        (Or "wraparound", "wrap") The action of a counter that starts
        again at zero or at "minus infinity" (see {infinity}) after
        its maximum value has been reached, and continues
        incrementing, either because it is programmed to do so or
        because of an overflow (as when a car's odometer starts again
        at 0).

wrapper

        <programming> Code which is combined with another piece of
        {code} to determine how that code is executed.  The wrapper
        acts as an interface between its caller and the wrapped code.
        This may be done for compatibility, e.g. if the wrapped code
        is in a different programming language or uses different
        calling conventions, or for security, e.g. to prevent the
        calling program from executing certain functions.  The
        implication is that the wrapped code can only be accessed via
        the wrapper.

        (1998-12-15)

wrats nest

        <hardware, jargon> (From "wrap" and "rats nest") A
        {wire-wrapping} defect where all of the wire piles up around
        the bottom of the post instead of wrapping smoothly around it.
        It looks like a little bird nest.

        (1997-03-18)

wrb

        {Web Request Broker}

write

        1. <chat> {Unix}'s simple {talk} command and {protocol}.
        write has been largely superceded by {talk} and then {irc}.

        An enhancement, {RWP}, has been proposed.

        2. <tool> A simple {text editor} for {Windows}.

        (1998-04-28)

WRITEACOURSE

        <language> A {CAI} language for {IBM 360}.

        ["WRITEACOURSE: An Educational Programming Language", E. Hunt
        et al, Proc FJCC 33(2) 1968].

        (1998-04-28)

write-back

        <memory management> A {cache} architecture in which data is
        only written to main memory when it is forced out of the
        cache.

        Opposite of {write-through}.  See also {no-write allocation}.

        (1996-06-12)

write buffer

        {buffered write-through}

Write-Once Read-Many

        <storage> (WORM) Any type of storage medium to which data can
        be written to only a single time, but can be read from any
        number of times.  Typically this is an {optical disk} whose
        surface is permanently etched using a laser in order to record
        information.  WORM media have a significantly longer shelf
        life than magnetic media and thus are used when data must be
        preserved for a long time.

        (1996-04-01)

write-only code

        [a play on "read-only memory"] Code so arcane, complex, or
        ill-structured that it cannot be modified or even comprehended
        by anyone but its author, and possibly not even by him/her.  A
        {Bad Thing}.

write-only language

        A language with syntax (or semantics) sufficiently dense and
        bizarre that any routine of significant size is automatically
        {write-only code}.  A sobriquet applied occasionally to C and
        often to APL, though {INTERCAL} and {TECO} certainly deserve
        it more.

write-only memory

        1. <jargon, humour> (WOM) The obvious antonym to "{read-only
        memory}" (ROM).

        Out of frustration with the long and seemingly useless chain
        of approvals required of component specifications, during
        which no actual checking seemed to occur, an engineer at
        Signetics once created a specification for a write-only memory
        and included it with a bunch of other specifications to be
        approved.  This inclusion came to the attention of Signetics
        {management} only when regular customers started calling and
        asking for pricing information.  Signetics published a
        corrected edition of the data book and requested the return of
        the "erroneous" ones.  Later, around 1974, Signetics bought a
        double-page spread in "Electronics" magazine's April issue and
        used the spec as an April Fools' Day joke.  Instead of the
        more conventional characteristic curves, the 25120 "fully
        encoded, 9046 x N, Random Access, write-only-memory" data
        sheet included diagrams of "bit capacity vs. Temp.", "Iff
        vs. Vff", "Number of pins remaining vs. number of socket
        insertions", and "AQL vs. selling price".  The 25120 required
        a 6.3 VAC VFF supply, a +10V VCC, and VDD of 0V, +/- 2%.

        2. {bit bucket}.

write-through

        <architecture> (Or "write-thru") A {cache} architecture in
        which data is written to main memory at the same time as it is
        cached.

        Opposite of {write-back}.  See also {buffered write-through},
        {posted write-through}, {no-write allocation}.

        (1996-06-12)

write-thru

        {write-through}

writing system

        <human language, character> The set of {glyphs} used for
        representing a given human language in written form, generally
        along with their conventions for use.

        (1998-10-19)

Wrong Thing

        <jargon> A design, action, or decision that is clearly
        incorrect or inappropriate.  Often capitalised; always
        emphasised in speech as if capitalised.  The opposite of the
        {Right Thing}; more generally, anything that is not the Right
        Thing.  In cases where "the good is the enemy of the best",
        the merely good - although good - is nevertheless the Wrong
        Thing. "In C, the default is for module-level declarations to
        be visible everywhere, rather than just within the module.
        This is clearly the Wrong Thing."

WRT

        with regard to, with respect to.

ws

        <networking> The {country code} for Samoa.

        (1999-01-27)

WSFN

        {Which Stands For Nothing}

WSL

        Waterloo Systems Language.  A {C}-like systems programming
        language.

        ["Waterloo Systems Language: Tutorial and Language Reference",
        F.D.  Boswell, WATFAC Publications Ltd., Waterloo, Canada.
        ISBN 0-919884-00-8].

WTF

        who/what/why the fuck?  The universal interrogative particle.
        Also {WTH}.

WTH

        who/what/why the hell?  Also {WTF}.

wugga wugga

        /wuh'g* wuh'g*/ Imaginary sound that a computer program makes
        as it labours with a tedious or difficult task.  Compare
        {cruncha cruncha cruncha}, {grind}.

Wumpus

        {Hunt the Wumpus}

WWW

        {World-Wide Web}

WWW browser

        <hypertext, World-Wide Web> A {browser} for use on the
        {World-Wide Web}.

        (1996-10-28)

WWWW

        {World-Wide Web Worm}

WYGIWYNTYH

        {What You Get Is What You Never Thought You Had}

WYSIAYG

        {What You See Is All You Get}

WYSIWYG

        {What You See Is What You Get}

X

        1. <convention> Used in various speech and writing contexts
        (also in lowercase) in roughly its algebraic sense of "unknown
        within a set defined by context" (compare {N}).  Thus, the
        abbreviation {680x0} stands for 68000, 68010, 68020, 68030 or
        68040, and {80x86} stands for {Intel 80186}, {Intel 80286},
        {Intel 80386} or {Intel 80486}.  A {Unix} hacker might write
        these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86
        respectively; see {glob}.

        2. <graphics> An alternative name for the {X Window System}.

        3. <storage> A suffix for the speed of a {CD-ROM} drive
        relative to standard music CDs (1x).  32x is common in
        September 1999.

        (1999-09-15)

X-1

        <language> An early system on the {UNIVAC I} or II.

        [Listed in CACM 2(5):16 (May 1959)].

        (1995-05-10)

X11R4

        Version 11 release 4 of the X protocol.  See {X Window
        System}.

X11R5

        Version 11 release 5 of the X protocol.  Released in June
        1994.  See {X Window System}.

X11R6

        <operating system> Version 11 release 6 of the {X Window
        System}.

        [Release date?]

        (1995-01-20)

X.12

        <standard> The American equivalent of UN/{EDIFACT} and various
        other national and industry {EDI} messaging {protocols}.  The
        first {Y2K ready} version of X.12 is version 4010.

        [What's "UN"?  Details?  Differences from EDIFACT?]

        (1999-09-10)

X2

        <protocol> A proprietary modem standard developed by {US
        Robotics} for 56 {kbps} communications.  Not taken up as
        widely as {K56flex} and will shortly be superseded by the
        official {V.90} standard.

        (1998-09-08)

X.208

        {Abstract Syntax Notation 1}

X.21

        <communications, standard> A digital signaling interface
        recommended by {ITU-T} which includes specifications for
        {DTE}/{DCE} physical interface elements, alignment of {call
        control} characters and error checking, elements of the call
        control phase for {circuit switched} services, data transfer
        up to 64 {kbps}, and {test loops}.

        (1996-01-04)

X.214

        {transport layer}

X.215

        {session layer}

X.216

        {presentation layer}

X.217

        {Association Control Service Element}

X.219

        {Remote Operations Service Element}

X.224

        {transport layer}

X.225

        {session layer}

X.226

        {presentation layer}

X.227

        {Association Control Service Element}

X.229

        {Remote Operations Service Element}

X.25

        <protocol, standard> An {ITU-T} {standard} {protocol} suite
        for the {DTE}-{DCE} interface in a {packet-switched} network,
        approved by {ISO}.  X.25 defines standard {physical layer},
        {data link layer} and {network layers} (layers 1 through 3).
        It was developed to describe how data passes into and out of
        public data communications networks.  X.25 networks are in use
        throughout the world.

        Document: {ISO} 8208.

        Several other {ITU-T} recommendations are relevant to {packet
        switching}: {X.3}, {X.28}, {X.29}, {X.75}.

        (1996-08-10)

X.28

        The {ITU-T} standard specifying how to control a {PAD} from
        {character-mode} {DTE}, approved by {ISO}.

        (1995-01-31)

X.29

        The {ITU-T} {standard}, approved by {ISO}, specifying
        procedures for the exchange of control information and user
        data between a {PAD} and a remote {packet-mode} {DTE}.
        {Character-mode} {DTE}s are often referred to as X.29
        terminals.

        (1995-01-31)

X.3

        The {ITU-T} {standard}, approved by {ISO}, which specifies the
        basic functions and user-selectable capabilities of a {PAD}.

        (1995-01-31)

X3J16

        The {C++} {standard} technical committee.

X3T10

        <body> The {ATA} standards body.

        (1996-10-16)

X.400

        The set of {ITU-T} communications standards covering
        {electronic mail} services provided by data networks.  It is
        widely used in Europe and Canada.  X.400 addresses tend to be
        very long compared to {RFC 822} ones.

X.409

        <standard, messaging> Part of the {X.400} {electronic mail}
        specification which included the original definition of
        {Abstract Syntax Notation 1}.

        [What was it about?]

        (1998-08-06)

X.500

        <standard, networking> The set of {ITU-T} {standards} covering
        electronic directory services such as {white pages},
        {Knowbot}, {whois}.

        Compare: {LDAP}.

        (1994-12-06)

X.680

        {Abstract Syntax Notation 1}

X.75

        The {ITU-T} {standard} specifying the {protocol}s for
        communication between two {PSDN}s.

        (1995-01-31)

x86

        <hardware> A common abbreviation for any of the {Intel 80x86}
        range, or compatibles, e.g. from {Cyrix} or {AMD}.

        (1999-08-29)

x86 processor socket

        <hardware, standard> One of the series of standard sockets
        into which you can plug various {x86} {microprocessors}.
        These vary in the number of pins, package, voltages, bus
        speeds, and supported processors.  {Motherboards} often have
        {clock multipliers} so that the processor runs at a multiple
        of the bus speed.

        Socket 1, 169 pin {LIF}/{ZIF} {PGA} (17x17), 5v, 16-33 MHz
        {486 SX}, {486 DX}, {486 DX2}, {DX4 Overdrive}.  Socket 1 was
        the first standard {Intel 486} socket.

        Socket 2, 238 pin LIF/ZIF PGA (19x19), 5v, 25-50 MHz 486 SX,
        486 DX, 486 DX2, 486 DX4, DX4 & {Pentium Overdrive}.  Updated
        Socket 1, added support for Pentium Overdrive processors.

        Socket 3, 237 pin LIF/ZIF PGA (19x19), 3.3/5v, 25-50 MHz 486
        SX, 486 DX, 486 DX2, 486 DX4, DX4 & Pentium Overdrive.
        Supports 5V & 3.3V processors, considered the latest 486
        socket.

        Socket 4, 273 pin LIF/ZIF PGA (21x21), 5v, 60/66 MHz Pentium
        60/66 and Pentium Overdrive, only 5v.

        Socket 5, 296 pin LIF/ZIF, 320 pin LIF/ZIF {SPGA} (19x19 or
        37x37), 3.3v, 50/60/66 MHz Pentium 75 - 133MHz, Pentium
        Overdrive, only 3.3v.

        Socket 6, 235 pin ZIF PGA (19x19), 3.3v, 25-40MHz.  Unpopular
        advanced Socket 3, rarely seen / paper spec 486 DX4, Pentium
        Overdrive, only 3.3v.

        See also {Socket 7}, {Socket 8}, {Super 7}, {Slot 1}, {Slot
        2}, {Slot A}.

        {CPU Sockets chart
        (http://users.erols.com/chare/sockets.htm)}.

        {CPU Sockets (http://webm3308.ntx.net/cpusockets.htm)}.

        (1999-08-05)

XA

        {Extended Architecture}

        A specification for drives which can play {CD-ROM}s in {Green
        book CD-ROM} format.

        (1994-12-06)

Xaw

        The {Athena} {Widget} Set.  A set of widgets distributed with
        the {X Window System}.

        (1994-11-02)

Xbase

        Generic term for the {dBASE} family of {database} languages.
        Coined in response to threatened litigation over use of the
        copyrighted trademark "dBASE."

xbeeb

        A {BBC Microcomputer} {emulator} for {Unix} and {X11} by James
        Fidell <jfid@mfltd.co.uk>.  Posted to {alt.sources}.

        {(ftp://ftp.pipex.net/incoming/xbeeb)}

        (1994-08-18)

xbm

        <filename extension> X bit map.  The {filename extension} for
        files containing {bitmap}s for use in the {X Window System}.

        These are actually {include file}s which can be #include'd
        into {C} program source to define images as initialised data.

        (1995-03-14)

XC

        A {declarative} extension of {C++}.

        ["XC - A Language for Embedded Rule Based Systems", E. Nuutila
        et al, SIGPLAN Notices 22(9):23-32 (Sep 1987)].

X client

        An application process in the {X Window System}.  It gains
        access to windowing services via the Xlib library.  These are
        translated by the system into {X protocol} messages to an {X
        server}.

X Consortium

        A vendor consortium supporting development, evolution and
        maintenance of the {X Window System}.  The X Consortium is an
        independent, not-for-profit company.  It was formed in 1993 as
        the successor to the {MIT} X Consortium, a research group of
        the MIT {Laboratory for Computer Science}.

        {(ftp://ftp.x.org)}.  {(http://www.x.org/)}.

        [Members?]

Xcoral

        A multiwindow mouse-based text editor, for the {X Window
        System} with a built-in browser to navigate through {C}
        functions and {C++} {class}es hierarchies.  Xcoral provides
        variables width {font}s, menus, {scrollbar}s, {button}s,
        search, regions, kill-buffers and 3D look.  Commands are
        accessible from menus or standard key bindings.  Xcoral is a
        direct {Xlib} {client} and runs on colour or monochrome X
        displays.

        {Version 1.72 (ftp://ftp.inria.fr/X/contrib/clients/xcoral*)}

        (1993-03-14)

xdbx

        An {X Window System} front end for {dbx} by Po Cheung
        <cheung@sw.mcc.com>.  Version 2.1.

        Posted to comp.sources.x volumes 11, 12, 13, 14, 16.

        (1992-02-22)

X-Designer

        <programming, tool> A {user interface builder} for {Motif}
        from {Imperial Software Technology}.

        {Home (http://www.ist.co.uk/xd/)}

        (1995-10-26)

X.desktop

        A desktop manager for {Unix} from {IXI}.

XDL

        <language> An {object-oriented} extension to {ITU-T}'s {SDL}.

        ["XDL: An Object-Oriented Extension to SDL", S.J. Ochuodho et
        al].

        (1995-10-12)

XDR

        {eXternal Data Representation}

xDSL

        {Digital Subscriber Line}

XENIX

        <operating system> {Unix} implementations from {SCO}.

        [Details?]

        (1998-09-10)

Xeon

        {Pentium II Xeon}

XEROX Corporation

        xerox.com.  See also {XEROX PARC}, {XEROX Network Services}.

XEROX Network Services

        (XNS) A proprietary network architecture developed by {Xerox
        corporation}.  Implementations exist for both {4.3BSD} derived
        systems, as well as the {Xerox Star} computers.

        [Or is it "Service" (singular) or "Xerox Network System"?]

XEROX PARC

        /zee'roks park'/ {Xerox Corporation}'s Palo Alto Research
        Center.

        For more than a decade, from the early 1970s into the
        mid-1980s, PARC yielded an astonishing volume of
        ground-breaking hardware and software innovations.  The modern
        mice, windows, and icons ({WIMP}) style of software interface
        was invented there.  So was the {laser printer} and the
        {local-area network}; {Smalltalk}; and PARC's series of D
        machines anticipated the powerful {personal computer}s of the
        1980s by a decade.  Sadly, the prophets at PARC were without
        honour in their own company, so much so that it became a
        standard joke to describe PARC as a place that specialised in
        developing brilliant ideas for everyone else.

        The stunning shortsightedness and obtusity of XEROX's
        top-level {suit}s has been well described in the reference
        below.

        ["Fumbling The Future: How XEROX Invented, Then Ignored, the
        First Personal Computer" by Douglas K. Smith and Robert
        C. Alexander (William Morrow & Co., 1988, ISBN
        0-688-09511-9)].

        (1995-01-26)

XFree86 Project, Inc.

        <operating system, graphics> A non-profit organisation that
        produces XFree86, a freely redistributable implementation of
        the {X Window System} that runs on {Unix} and Unix-like
        operating systems and {OS/2}.  The XFree86 Project has
        traditionally focused on {Intel x86} based {platforms} (hence
        the "86"), but the current release supports other platforms.

        {Home (http://www.xfree86.org/)}.

        (1999-04-02)

Xfun

        A {polymorphic} {functional language} which is a cross between
        {SML} and {Russell}, developed by S. Dalmas
        <dalmas@sophia.inria.fr> of {INRIA} in 1991, and intended for
        {computer algebra}.

        ["A Polymorphic Functional language Applied to Symbolic
        Computation", S. Dalmas, Proc Intl Symp Symb Alg Comp,
        Berkeley 1992].

        (1995-02-03)

XGA

        {eXtended Graphics Array}

XGA-2

        {eXtended Graphics Array}

Xi

        A {VLSI} design language.

        ["The Circuit Design Language Xi", S.I. Feldman, unpublished
        memo, Bell Labs, 1982].

        [Mentioned in Computational Aspects of VLSI, J.D. Ullman, CS
        Press 1984].

        (1995-02-03)

XIE

        {X Image Extension}

Xilinx, Inc.

        <company> The electronics company who invented the {FPGA}.

        Xilinx was founded in San Jose, California, in 1984, and
        invented the {field-programmable gate array}.  They claim to
        command more than half of the world market for these devices
        today.  More recent innovations include {complex programmable
        logic devices}.

        {Home (http://www.xilinx.com/)}.

        Address: 2100 Logic Drive, San Jose, CA 95124, USA.

        (1998-09-25)

Xilinx Netlist Format

        <language, electronics> (XNF) A {Hardware Description
        Language} for electronic circuit design, developed by {Xilinx,
        Inc.}.

        {Xilinx}-developed tools use XNF and handle the details of the
        {FPGA} architecture.  Converters are available for a number of
        widely-used {HDL}s - for example {Verilog} ({xnf2ver}) - so
        that designers can use familiar tools to develop Logic Cell
        Array designs.  In addition, XNF can be converted to the input
        language of different {logic simulators}.

        {Specification
        (ftp://ftp.xilinx.com/pub/documentation/xactstep6/xnfspec.pdf)}

        (1999-03-31)

X Image Extension

        (XIE) Extensions to the {X protocol} to handle {image}s.

        (1995-02-03)

Xlib

        X library: program interface to the {X Window System}.

xlisp

        <language> eXperimental LISP.  An experimental programming
        language combining a subset of {Common Lisp} with an
        {object-oriented} extension capability (Class and Object
        types).  It was implemented by David Micheal Betz
        <dbetz@apple.com> to allow experimentation with
        object-oriented programming on small computers.  Portable
        source in {C}.

        Version 2.1 of the interpreter, by Tom Almy is closer to
        Common Lisp.

        {(ftp://wasp.eng.ufl.edu/)}, {(ftp://cs.orst.edu/)},
        {(ftp://glia.biostr.washington.edu)}.

        E-mail: Tom Almy <toma@sail.labs.tek.com>.

        {Microsoft Windows} version,
        {(ftp://ftp.cica.indiana.edu/util/wxlslib.zip)}.

        {Macintosh} {(ftp://netcom.com/pub/bskendig/)}.

        Also ported to {Unix}, {Amiga}, {Atari}, {MS-DOS}.

        {Usenet} newsgroup: {news:comp.lang.lisp.x}.

        (1992-05-26)

xls

        <filename extension> {Excel} {spreadsheet}.

        (1995-10-17)

XML

        {Extensible Markup Language}

XMM

        {Extended Memory Manager}

XMODEM

        The "Christensen" file transfer {protocol}, probably the most
        widely available protocol used for file transfer over {serial
        line}s (e.g. between {modem}s).  XMODEM uses 128-byte {packet}s
        with error detection, allowing the receiver to request
        retransmission of a corrupted packet.  XModem is fairly slow
        but reliable.

        Several variations have been proposed with increasing packet
        sizes (e.g. {XMODEM-1K}) and different error detection ({CRC}
        instead of {checksum}) to take advantage of faster {modem}s.
        Sending and receiving programs can negotiate to establish the
        best protocol they both support.

        Standard XMODEM specifies a one-second timeout during the
        reception of characters in the data block portion of a packet.

        Chuck Forsberg improved upon XMODEM by developing {YMODEM} and
        {ZMODEM}.

        [Chuck Forsberg, "XMODEM/YMODEM Protocol Reference"].

        (1995-02-02)

XMODEM-1K

        A version of {XMODEM} using 1 kilobyte {packet}s.

xmosaic

        {Mosaic} for the {X Window System}.

XMS

        <storage> {Extended Memory Specification}.

        (1996-01-10)

XNF

        {Xilinx Netlist Format}

xnf2ver

        An {XNF} to {Verilog} translator by Martin J. Colley
        <martin@essex.ac.uk>.

        This program was written by a postgraduate student as part of
        his M.Sc course.  It was designed to form part a larger system
        operating with the Cadence Edge 2.1 framework.  This should be
        born in mind when considering the construction and/or
        operation of the program.

        {(ftp://punisher.caltech.edu/pub/dank/xnf2ver.tar.Z)}

XNS

        {Xerox Network Services} or Xerox Network System.

        [Which?]

XOFF

        {control-S}

XON

        {control-Q}

XON/XOFF

        {software handshaking}

Xopen

        {X/Open}

X/Open

        An international consortium of vendors whose purpose is to
        define the X/Open {Common Applications Environment} to provide
        applications portability.  They also procuced the {X/open
        Portability Guide} (XPG).

        (1994-12-01)

X/open Portability Guide

        (XPG) A document which defines the interfaces of the {X/Open}
        {Common Applications Environment}.

        Version: XPG3.

        (1994-12-01)

X/Open System Interface

        <standard> (XSI) Part of the {X/Open} {Common Applications
        Environment}.

        (1994-11-03)

xor

        /X'or/, /kzor/ Exclusive or.  "A xor B" means "A or B, but not
        both".  The {truth table} is

                A | B | A xor B
                --+---+--------
                F | F |    F
                F | T |    T
                T | F |    T
                T | T |    F

        (1994-12-01)

XPC

        eXplicitly Parallel C.

        A dialect of {Parallel C} which is efficiently compilable to
        both {SIMD} and {MIMD} architectures.  Only research
        implementations exist.

        ["Toward Semantic Self-Consistency in Explicitly Parallel
        Languages," M.J. Phillip & H.G. Dietz, Proc 4th Intl Conf on
        Supercomputing, Santa Clara, CA, May 1989, v.1, pp.398-407].

        (1994-12-01)

XperCASE

        A structure diagram editor for developing, re-engineering,
        maintaining and documenting programs, developed by {Siemens}
        AG, Austria.  It runs under {Microsoft Windows}.

        {(ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/simtel/windows3/xpersp
x1.zip)}

        E-Mail: <100141.2120@compuserve.com>.

        (1994-12-01)

XPG

        {X/open Portability Guide}

XPG3

        Version 3 of the {X/open Portability Guide}.

XPL

        A small dialect of {PL/I} used for compiler writing from
        Stanford, 1967-69.  XPL has
        one-dimensional {array}s.  I/O is achieved with character
        pseudo-variable INPUT and OUTPUT, e.g.

                OUTPUT = 'This is a line';

        It has inline {machine code}.  "Programmers are given all the
        rope they ask for.  Novices tend to hang themselves fairly
        frequently."  XPL has been implemented on {IBM 360}, {Univac
        1100}, {ICL System 4}, {CDC6000} and {Cyber} series, {XDS
        Sigma-5} and {Sigma-7} and {DEC} {PDP-10}.

        An optimising XPL compiler (version 1) by Robin Vowels
        <robin_vowels@rmit.edu.au> is a standard implementation of XPL
        and is based on McKeeman, Horning, and Wortman's improved
        {XCOM} (which employs hashed symbol table generation).  It
        includes the extra built-in function COREHALFWORD.

        The following areas have been optimised: procedures calls when
        the argument and corresponding parameter are of the same type,
        and when the argument is a constant; constant subscripts; use
        of CORELHALFWORD and COREWORD; string constants of length one;
        iterative DO statements by transferring code to the end of the
        loop.

        String constants of length one do not require a descriptor,
        hence more descriptors are available for string variables.
        Comparison operations are treated as commutative, and an
        improved Commute algorithm is used.  Halfword instructions are
        generated for BIT(16) variables.

        These areas have been improved or re-written: calls on OUTPUT,
        catenation, integer-to-string conversion, multiply, divide,
        and MOD.  An emitter for SS-type instructions has been added.
        The compiler achieves an 11% reduction in object code
        compiling itself, an 11% increase in compilation rate, a 55%
        increase in compilation speed when the $E toggle is set.
        Special treatment for catenating a string to an integer
        substantially decreases consumption of the free string area,
        and decreases string moves.  The latter improvement is most
        noticeable on small core machines.

        Core requirements: less than the improved XCOM on which it is
        based (approx. 98000 bytes).  Symbol table size is 468.
        Ported to {IBM} {System 370}.  The compiler is written in XPL.
        The code generators are machine-specific.

        ["A Compiler Generator," W.M. McKeeman et al, P-H 1970].

        [JCC, AFIPS 1968].

        (1993-08-07)

xpm

        <file format> X11 Pixmap.

        A {pixmap} image {file format} for the {X Window System}.

        (1995-04-28)

XPOP

        <language> An extensible {macro assembly} language with
        user-redefinable {grammar}, for use with {FAP}.

        ["XPOP: A Meta-language Without Metaphysics", M.I. Halpern,
        Proc FJCC 25:57-68, AFIPS (Fall 1964)].

        (1995-04-28)

X protocol

        <networking, protocol> A {standard} {protocol} used by
        {client}s (applications) and {server}s in the {X Window
        System} for exchanging requests for window operations.

        (1995-04-28)

xref

        /X'ref/ 1. cross-reference.

        2. A cross-reference generator tool by Jim Leinweber.

        (1985?)

XRemote

        A {serial line} protocol for the {X Window System}.

XRN

        A newsreader program for {Usenet} news running under the {X
        Window System}.

XSB

        XSB extends the standard functionality of Prolog (being a
        descendant of PSB- and SB-Prolog) to include implementations
        of OLDT (tabling) and HiLog terms.  OLDT resolution is
        extremely useful for recursive query computation, allowing
        programs to terminate correctly in many cases where Prolog
        does not.  HiLog supports a type of higher-order programming
        in which predicate symbols can be variable or structured. This
        allows unification to be performed on the predicate symbols
        themselves in addition to the arguments of the predicates.  Of
        course, Tabling and HiLog can be used together.

        Version 1.2

        ports: Sun, Solaris, NeXT, Linux, 386 BSD, IRIX, HP-UX

        portability:    Generally to 32-bit machines.

        interpreter, preprocessor(HiLog), documentation

        XSB research group / SUNY at Stony Brook

        {(ftp://sbcs.sunysb.edu/pub/XSB/XSB.tar.Z)}

        (130.245.1.15) E-mail: <xsb-contact@cs.sunysb.edu>.

        (1993/07/28)

XScheme

        <language> {Scheme} in {C} with {object-oriented} extensions
        by David Betz.

        Version 0.28 runs on {IBM PC}, {Macintosh}, {Atari} and
        {Amiga}.

        {(ftp://labrea.stanford.edu/comp.sources.amiga/volume90)}.
        {(ftp://nexus.yorku.ca/pub/scheme/)}.

        {Usenet} newsgroup: {news:comp.lang.lisp.x}.

        (1992-02-02)

x-scm

        An accessory for the {scm} {Scheme} {interpreter}, by Larry
        Campbell <campbell@redsox.bsw.com> that provides an
        environment for building {Motif} and {OpenLook} {application
        program}s.  There is some support as well for raw {Xlib}
        applications, but not enough yet to be useful.

        Posted to {alt.sources}.

        (1992-08-10)

X server

        A process which controls a {bitmap display} device in an {X
        Window System}.  It performs operations on request from
        {client} applications.

        (1994-11-03)

XSI

        {X/Open System Interface}

XT

        {IBM PC XT}

Xt

        The {intrinsics} of the {X Window System} Toolkit.

        [What does that mean?]

XT bus architecture

        <hardware, architecture> (After the {IBM PC XT}) An eight-bit
        {ISA} bus architecture used by {Intel 8086} and {Intel 8088}
        systems in the {IBM PC} and {IBM PC XT} in the 1980s.  It
        predates the 16-bit ISA architecture used on the {Intel 80286}
        based machines.

        The XT bus has four {DMA} channels, of which three are brought
        out to the {expansion slots}.  Of these three, two are
        normally allocated to machine functions:

         DMA channel  Expansion  Standard function
         0            No         {dynamic RAM} refresh
         1            Yes        add-on cards
         2            Yes        {floppy disk} controller
         3            Yes        {hard disc} controller

        (1997-09-15)

xterm

        <operating system> A {terminal emulator} program for the {X
        Window System}.  A user can have many different invocations of
        xterm running at once on the same display, each of which
        provides independent input and output for the process running
        in it (normally a {shell}).

        (1996-08-23)

X terminal

        <hardware> An {intelligent terminal} which operates as an {X
        server} directly connected to {Ethernet}.

        Not to be confused with the program {xterm} which is an {X
        client}.

        (1996-08-23)

XTI

        {X/open Transport Interface}

XTP

        {Home (http://www.ca.sandia.gov/xtp/)}

        [What is it?]

XTRAN

        {FORTRAN}-like, interactive language.

XUI

        X User Interface: program interface to the {X Window System}
        supported by {DEC}.

Xv++

        A library of classes from Interface Engineering, Stevenage,
        providing a C++ Application Programmer's Interface to the
        XView toolkit.

XVGA

        {eXtended Video Graphics Array}

XView

        A toolkit from Sun, derived from SunView, providing an Open
        Look user interface for X applications.

XVT

        eXtensible Virtual Toolkit: a product allowing applications to
        be developed independent of GUI.

X-Windows

        <spelling> A common misnomer for the {X Window System}.

        (1997-06-10)

X Window System

        <operating system, graphics> A specification for
        device-independent windowing operations on {bitmap display}
        devices, developed initially by {MIT}'s Project {Athena} and
        now a {de facto standard} supported by the {X Consortium}.  X
        was named after an earlier window system called "W".  It is a
        window system called "X", not a system called "X Windows".

        X uses a {client-server} protocol, the {X protocol}.  The
        server is the computer or {X terminal} with the screen,
        keyboard, mouse and server program and the clients are
        {application programs}.  Clients may run on the same computer
        as the server or on a different computer, communicating over
        {Ethernet} via {TCP/IP} protocols.  This is confusing because
        {X clients} often run on what people usually think of as their
        server (e.g. a file server) but in X, it is the screen and
        keyboard etc. which is being "served out" to the applications.

        X is used on many {Unix} systems.  It has also been described
        as over-sized, over-featured, over-engineered and incredibly
        over-complicated.  X11R6 (version 11, release 6) was released
        in May 1994.

        {Home (http://www.x.org/)}.

        See also {Andrew project}, {PEX}, {VNC}, {XFree86}.

        {Usenet} newsgroups: {news:comp.windows.x}, {news:comp.x},
        {news:comp.windows.x.apps}, {news:comp.windows.x.intrinsics},
        {news:comp.windows.x.announce}, {news:comp.sources.x},
        {news:comp.windows.x.motif}, {news:comp.windows.x.pex}.

        (1999-04-02)

XWIP

        X Window Interface for Prolog.  A package for {Prolog}s
        following the {Quintus} {foreign function} interface
        (e.g. {SICStus Prolog}).  XWIP provides a (low-level)
        {Xlib}-style interface to {X}.  The current version was
        developed and tested on SICStus 0.7 and {MIT} {X11} R5 under
        {SunOS} 4.1.1.  It should be adaptable to many other {Unix}
        configurations.  Version 0.6.

        {(ftp://export.lcs.mit.edu/contrib/xwip-0.6.tar.Z)}.  E-mail:
        <xwip@cs.ucla.edu>.

        (1993-02-25)

xxgdb

        An {X11} front end for {gdb} by Pierre Willard
        <pierre@la.tce.com>.  Version 1.06.

        Posted to comp.sources.x volumes 11, 12, 13, 14, & 16.

        (1992-02-22)

XXX

        /X-X-X/ A marker that attention is needed.  Commonly used in
        program comments to indicate areas that are {kluge}d or need
        to be.  Some hackers liken "XXX" to the notional heavy-porn
        movie rating.  Compare {FIXME}.

Xy-pic

        <graphics, publication> A package for {typesetting} graphs and
        diagrams using {TeX}.  It is structured as several modules,
        each defining a custom notation for a particular kind of
        graphical object or structure.  Example objects are arrows,
        curves, and frames.  These can be organised in matrix,
        {directed graph}, path, polygon, knot, and 2-cell structure.

        Xy-pic works with {LaTeX}, {AMS-LaTeX}, {AMS-TeX}, and {plain
        TeX}, and has been used to typeset complicated diagrams from
        many application areas including {category theory}, {automata}
        theory, {algebra}, {neural networks} and {database} theory.

        {Home (http://www.ens-lyon.fr/~krisrose/Xy-pic.html)}.

        (1997-11-20)

xyzzy

        <games> The {canonical} "magic word" from the {ADVENT}
        adventure game, in which the idea is to explore an underground
        cave with many rooms and to collect the treasures you find
        there.  If you type "xyzzy" at the appropriate time, you can
        move instantly between two otherwise distant points.  If,
        therefore, you encounter some bit of {magic}, you might remark
        on this quite succinctly by saying simply "Xyzzy!"
        "Ordinarily you can't look at someone else's screen if he has
        protected it, but if you type quadruple-bucky-clear the system
        will let you do it anyway."  "Xyzzy!"  Xyzzy has actually been
        implemented as an undocumented no-op command on several OSes;
        in Data General's AOS/VS, for example, it would typically
        respond "Nothing happens", just as {ADVENT} did if the magic
        was invoked at the wrong spot or before a player had performed
        the action that enabled the word.  In more recent 32 bit
        versions, by the way, AOS/VS responds "Twice as much happens".
        See also {plugh}.

Y

        1. General purpose language syntactically like {RATFOR},
        semantically like {C}.  Lacks structures and pointers.  Used
        as a source language for Jack W. Davidson and Christopher
        W. Fraser's peephole optimiser which inspired {GCC} {RTL} and
        other optimisation ideas.

        {(ftp://ftp.cs.princeton.edu/pub/y+po.tar.Z)}.  It is a copy
        of the original distribution from the {University of Arizona}
        during the early 80's, totally unsupported.

        ["The Y Programming Language", D.R. Hanson, SIGPLAN Notices
        16(2):59-68 (Feb 1981)].

        [Jack W. Davidson and Christopher W. Fraser, "The Design and
        Application of a Retargetable Peephole Optimiser", TOPLAS,
        Apr.  1980].

        [Jack W. Davidson, "Simplifying Code Through Peephole
        Optimisation" Technical Report TR81-19, The University of
        Arizona, Tucson, AZ, 1981].

        [Jack W. Davidson and Christopher W. Fraser, "Register
        Allocation and Exhaustive Peephole Optimisation"
        Software-Practice and Experience, Sep. 1984].

        2. See {fixed point combinator}.

Y2K

        {Year 2000}

YA-

        {Yet Another}

Yaa

        Yet Another Assembler - Macro assembler for GCOS 8 and Mark
        III on Bull DPS-8 machines.  Available from Bull as part of U
        Waterloo Tools package (maintained by <pjf@thinkage.on.ca>).

YABA

        /ya'b*/ [Cambridge] Yet Another Bloody Acronym.  Whenever some
        program is being named, someone invariably suggests that it be
        given a name that is acronymic.  The response from those with
        a trace of originality is to remark ironically that the
        proposed name would then be "YABA-compatible".  Also used in
        response to questions like "What is {WYSIWYG}?"  See also
        {YA-}, {TLA}.

yacc

        {Yet Another Compiler Compiler}

YADE

        {Yet Another DSSSL Engine}

YAFIYGI

        <abuse> /yaf'ee-y*-gee/ You asked for it, you got it.

        The command-oriented {ed}/{vi}/{nroff}/{TeX} style of {word
        processing} or other user interfaces which are not {WYSIWYG}.
        What you actually asked for is often not immediately apparent.

        This precise sense of "You asked for it, you got it" seems to
        have first appeared in Ed Post's classic parody "{Real
        Programmers} don't use Pascal"; the acronym is a more recent
        (as of 1993) invention.

        (1995-03-13)

Yahoo

        <World-Wide Web> Yet Another Hierarchical
        Officious/Obstreperous/Odiferous/Organized Oracle.

        (Or a member of a race of brutes in Swift's Gulliver's Travels
        who have the form and all the vices of man, or an uncouth or
        rowdy person).

        Probably the biggest hierarchical index of the {World-Wide
        Web}.  Originally at {Stanford University}, Yahoo moved to its
        own site in April 1995.  It allows you to move up and down the
        heirarchy, to search it and to suggest additions.  It also
        features "What's New", "What's Popular", "What's Cool" and a
        random link.

        {Home (http://www.yahoo.com/)}

        (1995-04-05)

Yale Haskell

        <language> A fully integrated {Haskell} programming
        environment.  It provides tightly coupled interactive editing,
        {incremental compilation} and dynamic execution of Haskell
        programs.  Two major modes of compilation, correspond to
        {Lisp}'s traditional "interpreted" and "compiled" modes.
        Compiled and interpreted modules may be freely mixed in any
        combination.

        Yale Haskell is run using either a command-line interface or
        as an {inferior process} running under the {Emacs} editor.
        Using the Emacs interface, simple two-keystroke commands
        evaluate expressions, run dialogues, compile {module}s, turn
        specific compiler diagnostics on and off and enable and
        disable various {optimiser}s.  Commands may be queued up
        arbitrarily, thus allowing, for example, a compilation to be
        running in the background as the editing of a source file
        continues in Emacs in the foreground.

        A "scratch pad" may be automatically created for any module.
        Such a pad is a logical extension of the module, in which
        additional function and value definitions may be added, but
        whose evaluation does not result in recompilation of the
        module.

        A tutorial on Haskell is also provided in the Emacs
        environment.  A {Macintosh} version of Yale Haskell includes
        its own integrated programming environment, complete with an
        Emacs-like editor and {pull-down menu}s.

        Yale Haskell is a complete implementation of the Haskell
        language, but also contains a number of extensions, including:

        (1) Instead of stream based I/O, a {monadic I/O} system is
        used.  Although similar to what will be part of the new
        {Haskell 1.3} report, the I/O system will change yet again
        when 1.3 becomes official.

        (2) Haskell programs can call both {Lisp} and {C} functions
        using a flexible foreign function interface.

        (3) Yale Haskell includes a {dynamic typing} system.  Dynamic
        typing has been used to implement {derived instance}s in a
        user extensible manner.

        (4) A number of small Haskell 1.3 changes have been added,
        including {polymorphic recursion} and the use of @_@ in an
        expression to denote {bottom}.  Although the 1.3 report is not
        yet complete, these changes will almost certainly be part of
        the new report.

        (5) A complete Haskell level {X Window System} interface,
        based on {CLX}.

        (6) A number of {annotation}s are available for controlling
        the optimiser, including those for specifying both function
        and data constructor {strict}ness properties, "{inlining}"
        functions, and specialising {over-loaded} functions.  Many
        standard {prelude} functions have been specialised for better
        performance using these annotations.

        (7) {Separate compilation} (including {mutually recursive}
        {module}s) is supported using a notion of a UNIT file, which
        is a kind of localised {makefile} that tells the compiler
        about compiler options and logical dependencies amongst
        program files.

        (8) Yale Haskell supports both standard and "{literate}"
        Haskell syntax.

        Performance of Yale Haskell's compiled code has been improved
        considerably over previous releases.  Although still not as
        good as the Glasgow ({GHC}) and Chalmers ({HBC}) compilers,
        the flexibility afforded by the features described earlier
        makes Yale Haskell a good choice for large systems
        development.  For some idea of performance, Hartel's latest
        "Nuc" benchmark runs at about the same speed under both Yale
        Haskell and hbc.  (Our experiments suggest, however, that Yale
        Haskell's compiled code is on average about 3 times slower
        than hbc.)

        Binaries are provided for {Sun}/{SPARC} and {Macintosh}, but
        it is possible to build the system on virtually any system
        that runs one of a number of {Common Lisp} implementations:
        {CMU Common Lisp}, {Lucid Common Lisp}, {Allegro Common Lisp}
        or {Harlequin LispWorks}.  {akcl}, {gcl} and {CLisp} do not
        have adaquate performance for our compiler.  The current
        version is 2.1.

        {Yale (ftp://nebula.cs.yale.edu/pub/haskell/yale)}
        (128.36.13.1).  {UK
        (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/yale/)}.  {Sweden
        (ftp://ftp.cs.chalmers.se/pub/haskell/yale/)}.  E-mail:
        <haskell-request@cs.yale.edu>,
        <haskell-request@dcs.glasgow.ac.uk>.

        (1993-07-14)

Yamaha

        <company> A Japanese company best known for consumer
        electronics and motorbikes.  They make music synthesizers,
        {CD-Rom Writers} and HiFi sound equipment.

        {Home (http://www.yamaha.com/)}.

        (1997-04-29)

yank

        <jargon> (From the colloquial meaning "to pull suddenly") To
        insert a copy of some saved text at the current position in a
        document being edited.

        The term is used in the {Unix} {text editors} {GNU Emacs} and
        {vi} but "{paste}" is more common elsewhere.

        [Used elsewhere?]

        (1998-07-01)

YAPS

        Yet Another Production System?  {College Park Software}.  A
        commercial {production system} rule language, simpler than
        {OPS5}.  YAPS allows {knowledge base}s to be attached to
        instances of {CLOS} {object}s.

        E-mail: Liz Allen <liz@grian.cps.altadena.cs.us>.

YASOS

        Yet Another Scheme Object System.
        E-mail: Ken Dickey <kend@newton.apple.com>

YAUN

        /yawn/ Yet Another Unix Nerd.

        Reported from the San Diego Computer Society (predominantly a
        {microcomputer} users' group) as a good-natured punning insult
        aimed at {Unix} zealots.

        (1994-11-11)

Yay

        {Yet Another Yacc}

ye

        <networking> The {country code} for Yemen.

        (1999-01-27)

Year 2000

        <programming> (Y2K, or "millennium bug") A common name for all
        the difficulties the turn of the century may bring to computer
        users.

        Back in the 1970s and 1980s the turn of the century looked so
        remote and memory/disk was so expensive that most programs
        stored only the last two digits of the year.  Those which will
        still be in use will produce surprising results after 2000.
        They may believe that 1 January 2000 is before 21 December
        1999 (00<99), they may miscalculate the day of week, etc.
        Some programs even used the year 99 as a special marker; there
        are rumours that some car insurance policies were cancelled as
        driving licence expiration year of 99 was used to mark a
        deleted records.

        Just how serious the "millennium meltdown" will be is difficult
        to estimate.  Although few programs written decades ago are in
        use in their original form, blocks of code might have migrated
        to newer software so tracking down all of them is next to
        impossible.  Even setting the computer's clock forward to
        23:59 1999-12-31 and waiting to see what happens is only a
        partial solution if that computer relies on other systems over
        which you have no control such as customers' or suppliers'
        computers.

        And yes, the year 2000 is a leap year (multiples of 100 aren't
        leap years unless they're also multiples of 400).

        {PPR Corp Y2K FAQ
        (http://www.pprcorp.com/y2k/y2kfaq_j97.html)}.

        (1998-04-19)

Yellow

        A language from {SRI} proposed to meet the {Ironman}
        requirements which led to {Ada}.

        ["On the YELLOW Language Submitted to the DoD", E.W. Dijkstra,
        SIGPLAN Notices 13(10):22-26, Oct 1978].

        (1994-11-09)

Yellow Book

        1. <publication> {Yellow Book, Jargon}.

        2. {Yellow Book CD-ROM}.

        (1996-12-03)

Yellow Book CD-ROM

        A {CD-ROM} format which is {ISO 9660} compliant and uses mode
        1 addressing.  Discs of this type can be played on most drives
        and would be appropriate for most {multimedia} {application}s
        which have been developed for {personal computer}s.

        (1994-11-02)

Yellow Book, Jargon

        <publication> The print version of the {Jargon File}, titled
        "The New Hacker's Dictionary".  It includes essentially all
        the material the File, plus a Foreword by {Guy L. Steele, Jr.}
        and a Preface by Eric S. Raymond.  Most importantly, the book
        version is nicely typeset and includes almost all of the
        infamous Crunchly cartoons by the Great Quux, each attached to
        an appropriate entry.  The first, second, and third editions
        correspond to versions 2.9.6, 3.0.0, and 4.0.0 of the File,
        respectively.

        ["The New Hacker's Dictionary", 3rd edition, MIT Press, 1996
        (ISBN 0-262-68092-0)].

        (1996-12-03)

Yellow Box

        <operating system> {Apple Computer, Inc.}'s new development
        {platform} for building {desktop}, {server}, and {web}
        applications.  Yellow Box is a rich {object-oriented}
        environment that is tightly integrated with {Java} and allows
        you to deploy applications across five platforms: {Rhapsody},
        {Rhapsody for Intel}, {Windows 95}, {Windows NT}, and {Mac OS}.
        All Yellow Box-based products are an evolution of {OpenStep} -
        an operating system-independent, object-oriented application
        platform from {NeXT}.

        Integrating the cross-platform robustness of OpenStep with
        Apple's market-leading digital media and graphics technologies
        will differentiate the Yellow Box from other development
        platforms.

        "Yellow Box for Windows" is the {run-time} software
        (implemented as {dynamically linked libraries}) that allows
        {Yellow Box} applications to run under {Windows 95} and
        {Windows NT}.  Applications that use it will feature a full
        native Windows user interface.

        {(http://wais.sensei.com.au/macarc/appdir/1996/0077.html)}

        (1997-10-15)

Yellow Pages

        {Network Information Service}

yellow wire

        (IBM) Repair wires used when connectors (especially ribbon
        connectors) got broken due to some schlemiel pinching them, or
        to reconnect cut traces after the field engineer mistakenly
        cut one.  Compare {blue wire}, {purple wire}, {red wire}.

Yerk

        <language> (After Yerkes Observatory) An {object-oriented}
        language based on a {Forth} {Kernel} with some major
        modifications.  It was originally known as {Neon}, developed
        and sold as a product by {Kriya Systems} from 1985 to 1989.
        Several people at The {University of Chicago} have maintained
        Yerk since its demise as a product.  Because of possible
        trademark conflict they named it Yerk, which is not an acronym
        for anything, but rather stands for Yerkes Observatory, part
        of the Department of Astronomy and Astrophysics at U of C.

        Version 3.62.

        {(ftp://oddjob.uchicago.edu/pub/Yerk/)}

        E-mail: Bob Lowenstein <rfl@oddjob.uchicago.edu>.

        (1994-11-23)

Yet Another

        <jargon> (YA-, after {Unix}'s {yacc} - Yet Another
        Compiler-Compiler) A humorous allusion often used in titles to
        acknowledge that the topic is not original, though the content
        is.  As in "Yet Another AI Group" or "Yet Another {Simulated
        Annealing} {Algorithm}".  If used of others' work, it
        describes something of which there are already far too many.

        In hackish acronyms the "YA" prefix almost invariably expands
        to {Yet Another}, e.g. {YABA}, {YAUN}.

        (1996-11-26)

Yet Another Compiler Compiler

        <tool, language> (yacc) The {LALR} {parser generator} found on
        most {Unix} systems.  Also, the language used to describe the
        {syntax} of another language to yacc (the program).

        Implementations: {ayacc}, {YAY}, {perln-byacc},

        SASL-Yacc - "Yacc in {SASL} - An Exercise in Functional
        Programming", Simon Peyton-Jones, Software Prac & Exp
        15:807-820 (1985).  Mentions also a BCPL implementation.

        Yacc++ - 1990.  An {object-oriented} rewrite of yacc, supports
        {regular expression}s, produces an {LR1 grammar} parser.

        ["YACC Meets C++", S.C. Johnson, USENIX Spring '88 Conf].

        Chris Clark, Compiler Resources Inc,
        <bz%compres.UUCP@primerd.cv.com> (508) 435-5016.

        MLYACC - Implementation and output in {SML/NJ}.
        {(ftp:research.att.com/dist/ml/75.tools.tar.Z)}.

        A version, by David Poole <dpoole@hydrogen.oscs.montana.edu>,
        has been retargeted to {Turbo Pascal}.
        {(ftp://iecc.com/pub/file/lyprg.zip)}.

        See also {Bison}, {yet another}, {Yet Another Yacc}.

        {Unix manual page}: yacc(1).

        ["YACC - Yet Another Compiler Compiler", S.C. Johnson, CS TR
        32, Bell Labs (Jul 1975)].

        [Was there ever an "ACC" - "Another Compiler Compiler"?  If
        so, what was the first compiler compiler called?]

        (1997-01-21)

Yet Another Yacc

        <tool> (Yay) An extension of {Yacc} with {LALR2} parsing.

        Yay is available from {Bull} as part of the {University of
        Waterloo Tools} package maintained by <pjf@thinkage.on.ca>.

        (1994-11-09)

YGMTPO

        <chat> ({Usenet}) "You Greatly Misunderstood The Purpose Of".

        (1998-03-03)

YLISP

        A variant of {Xlisp} from {Hewlett-Packard} for the HP-95LX
        {palmtop}.

        {(ftp://hpcsos.col.hp.com/mirrors/.scsi5/hp95lx/languages)}

        (1994-11-23)

YMMV

        {Your mileage may vary}

YMODEM

        A file transfer {protocol} used between {modem}s.  YMODEM was
        developed by Chuck Forsberg as the successor to {XMODEM} and
        was itself succeeded by {ZMODEM}.  XMODEM used 128-byte
        {packet}s, YMODEM can also use 1 kilobyte packets.  Whereas
        YMODEM is a batch protocol, {YMODEM-G} is a non-stop version.

        File sizes are included in the YMODEM header when sending both
        binary and text files.  Thus files transferred via YMODEM
        should preserve their exact length.  File modification times
        may also be present in the YMODEM header.

        YModem can {fall back} to smaller packets when necessary but
        there is no backward compatibility with XModem's error
        detection.

        [Chuck Forsberg, "XMODEM/YMODEM Protocol Reference"].

        (1995-02-02)

YMODEM-G

        A non-stop "streaming" version of {YMODEM} designed for
        "error-free" connections with proper flow control; the
        transmitting program sends packets to the receiver as fast as
        it can without waiting for acknowledgements.  Any errors cause
        the entire file transfer to abort.

yocto-

        {prefix}

yotta-

        {prefix}

yottabyte

        <unit> 2^80 = 1,208,925,819,614,629,174,706,176 {bytes} = 1024
        {zettabytes}.

        See {prefix}.

        (1997-05-02)

You are not expected to understand this

        [Unix] The canonical comment describing something {magic} or
        too complicated to bother explaining properly.  From an
        infamous comment in the context-switching code of the V6
        {Unix} {kernel}.

You know you've been hacking too long when...

        The set-up line for a genre of one-liners told by hackers
        about themselves.  These include the following:

        * Not only do you check your e-mail more often than your paper
        mail, but you remember your {network address} faster than your
        postal one.

        * Your SO kisses you on the neck and the first thing you think
        is "Uh, oh, {priority interrupt}".

        * You go to balance your chequebook and discover that you're
        doing it in {octal}.

        * Your computers have a higher street value than your car.

        * In your universe, "round numbers" are powers of 2, not 10.

        * You have woken up recalling a dream in some programming
        language.

        * You realise you have never seen half of your best friends.

        [An early version of this entry said "All but one of these
        have been reliably reported as hacker traits (some of them
        quite often).  Even hackers may have trouble spotting the
        ringer."  The ringer was balancing one's chequebook in octal,
        which I made up out of whole cloth.  Although more respondents
        picked that one out as fiction than any of the others, I also
        received multiple independent reports of its actually
        happening, most famously to {Grace Hopper} while she was
        working with BINAC in 1949. - ESR]

        (1995-04-07)

Yourdon

        1. <programming> The {Yourdon methodology}.

        2. <person> {Edward Yourdon}.

        3. <company> {Yourdon, Inc.}.

        (1995-04-07)

Yourdon/Constantine

        <programming> (Or "Constantine/Yourdon") A {structured design}
        {methodology} involving {structure charts}, developed by Larry
        Constantine.

        (1995-04-07)

Yourdon/Demarco

        <programming> (Or "DeMarco/Yourdon") A {structured analysis}
        {methodology} involving {data flow diagram}s, etc. developed
        by {Edward Yourdon} and Tom DeMarco.

        (1995-04-07)

Yourdon, Inc.

        <company> The company founded in 1974 by {Edward Yourdon} to
        provide educational, publishing, and consulting services in
        state-of-the-art software engineering technology.  Over the
        next 12 years, the company grew to a staff of over 150 people,
        with offices throughout North America and Europe.  As CEO of
        the company, Yourdon oversaw an operation that trained over
        250,000 people around the world; the company was sold in 1986
        and eventually became part of {CGI}, the French software
        company that is now part of {IBM}.  The publishing division,
        Yourdon Press (now part of Prentice Hall), has produced over
        150 technical computer books on a wide range of software
        engineering topics; many of these "classics" are used as
        standard university computer science textbooks.

        (1995-04-16)

Yourdon methodology

        <programming> The {software engineering} {methodology}
        developed by {Edward Yourdon} and colleagues in the 1970s and
        1980s.  "Yourdon methodology" is a generic term for all of the
        following methodologies: {Yourdon/Demarco},
        {Yourdon/Constantine}, {Coad/Yourdon}.

        (1995-04-07)

Your mileage may vary

        (Standard disclaimer attached to EPA mileage ratings by
        American car manufacturers) A ritual warning often found in
        Unix {freeware} distributions and elsewhere.  Translates
        roughly as "Hey, I tried to write this portably, but who
        *knows* what'll happen on your system?"

        (1994-11-10)

Yow!

        <exclamation> /yow/ (From "Zippy the Pinhead" comics) A
        favoured hacker expression of humorous surprise or emphasis.
        "Yow!  Check out what happens when you twiddle the foo option
        on this display hack!"

        Compare {gurfle}.

        (1995-03-07)

yoyo mode

        <jargon> The state in which a computer is said to be when it
        rapidly alternates several times between being up and being
        down.  Interestingly (and perhaps not by coincidence), many
        hardware vendors give out free yoyos at {Usenix} exhibits.

        {Sun Microsystems} gave out logoised yoyos at SIGPLAN '88.
        Tourists staying at one of Atlanta's most respectable hotels
        were subsequently treated to the sight of 200 of the country's
        top computer scientists testing yo-yo {algorithm}s in the
        lobby.

        [Is it "yoyo" or "yo-yo"?]

        (1995-03-07)

YP

        Yellow Pages.  The original name for {Sun}'s
        {Network Information Service}.

        (1995-03-07)

YSM

        {Yourdon Structured Method}

yt

        <networking> The {country code} for Mayotte.

        (1999-01-27)

YTalk

        Version: V3.0 Patch Level 1.

        <networking, tool> A multi-user chat program by Britt Yenne
        <yenne@austin.eds.com>.  YTalk works almost exactly like the
        standard {Unix} {talk} program and even communicates with the
        same talk {daemon}(s), but YTalk supports multiple
        connections.

        Multiple user names may be given as command-line arguments, in
        the form "name#tty@host" where the optional "#tty" specifies a
        particular tty.

        YTalk is able to communicate with both existing versions of
        {Unix} talk daemons.  Once connected, typing {escape} gives
        access to a menu of commands to add or delete users, trace
        to a file, or set options.  If run under the {X Window
        System}, YTalk will use separate X windows for each user in
        the conversaton, otherwise it will split the terminal screen
        between them.

        E-mail: <ytalk@austin.eds.com>.

        [FTP?]

        (1995-04-04)

yu

        <networking> The {country code} for the former Yugoslavia.

        (1999-01-27)

Yu-Shiang Whole Fish

        /yoo-shyang hohl fish/ An obsolete name for the Greek
        character gamma ({extended SAIL ASCII} code 9, Unicode glyph
        0x0263) which with a loop in its tail looks like a little fish
        swimming down the page.  The term is actually the name of a
        Chinese dish in which a fish is cooked whole (not {parse}d)
        and covered with Yu-Shiang (or Yu-Hsiang) sauce.  Used
        primarily by people on the {MIT} {LISP Machine}, which could
        display this character on the screen.  Tends to elicit
        incredulity from people who hear about it second-hand.

        (1995-01-31)

Z

        /zed/ <language> 1. A {specification language} developed by
        the {Programming Research Group} at Oxford University around
        1980.  Z is used for describing and modelling computing
        systems.  It is based on {axiomatic set theory} and {first
        order predicate logic}.  Z is written using many non-{ASCII}
        symbols.  It was used in the {IBM} {CICS} project.

        See also {Z++}.

        ["Understanding Z", J.M. Spivey, Cambridge U Press 1988].

        2. <language, simulation> A {stack}-based, complex arithmetic
        {simulation} language from {ZOLA Technologies}.

        (1995-08-11)

Z++

        <language> An {object-oriented} extension of {Z}.

        ["Z++, an Object-Oriented Extension to Z", Lano, Z User
        Workshop, Oxford 1990, Springer Workshops in Computing, 1991,
        pp.151-172].

        (1995-04-22)

Z180

        <processor> An 8-bit microprocessor, code compatible with the
        {Zilog Z80} and based on a design from {Hitachi} which is in
        turn based on the Zilog Z80.

        [Manufacturer?]

        (1995-04-22)

Z3

        <computer> The computer, finished before 1945, for which
        {Konrad Zuse} wrote the language {Plankalkl} and on which he
        implemented it.

        [Did Zuse design the computer?  Where?  Features?  Technology?
        Predecessors?  Contemporaries?  Fate?]

        (1995-03-30)

Z39.50

        {ANSI Z39.50}

Z8

        {Zilog Z8}

Z80

        {Zilog Z80}

Z8000

        {Zilog Z8000}

za

        <networking> The {country code} for South Africa.

        (1999-01-27)

ZAP

        Language for expressing transformational developments.

        ["A System for Assisting Program Transformation",
        M.S. Feather, ACM TOPLAS 4(1):1-20 (Jan 1982)].

zap

        1. To modify, usually to correct; especially used when the
        action is performed with a debugger or binary patching tool.
        Also implies surgical precision.  "Zap the debug level to 6
        and run it again."

        In the {IBM} {mainframe} world, binary patches are applied to
        programs or to the {operating system} with a program called
        "{superzap}", whose file name is "IMASPZAP" (possibly
        contrived from I M A SuPerZAP).

        2. To {fry} a chip with static electricity.  "Uh oh - I think
        that lightning strike may have zapped the disk controller."

        (1998-07-08)

ZAPP

        Zero Assignment Parallel Processor.  A virtual tree machine
        architecture in which a process tree is dynamically mapped
        onto a fixed, strongly connected network of processors
        communicating by message passing.  The basic operation of each
        node is to apply a divide and conquer function which takes
        four arguments: (1) a function 'primitive' which takes a
        problem description (PD) and returns true if it can be solved
        without division, (2) a function 'solve' which takes a
        primitive PD and returns its solution, (3) a function 'divide'
        which takes a PD and returns a list of PDs of smaller problems
        and (4) a function 'combine' which returns the solution to a
        problem by combining a list of solutions of subproblems.

        Each node has a copy of the code and one is given the initial
        problem description.  Task distribution is by process stealing
        in which a process constructs a descriptor for each subtask
        and idle (lightly loaded) processors can steal a descriptor
        from a physically connected neighbour.

Z-buffer

        <graphics> An {array} used to store the maximum Z {coordinate}
        of any feature plotted at a given (X, Y) location on the
        screen, used for {hidden line removal} in a 2D rendering of a
        3D scene.  The Z axis is perpendicular to the screen with
        values increasing towards the viewer so that any point whose Z
        coordinate is less than the corresponding Z-buffer value will
        be hidden behind some feature which has already been plotted.

        (1997-07-18)

ZEBRA

        A data management package in the {CERN Program Library}.

Zed

        1978.  Software Portability Group, U Waterloo.  {Eh}, with
        types added.  Similar to {C}.  Implementation language for the
        {Thoth} realtime operating system.  Added a few simple types
        for greater efficiency on byte-addressed machines.  String
        constants in case statements.  Enforces the naming convention:
        MANIFESTS, Externals and locals.  "Porting the Zed Compiler",
        G.B. Bonkowski et al, SIGPLAN Notices 14(8):92-97 (Aug 1979).

Zen

        [Kehoe, B., "Zen and the Art of the Internet", February 1992.]

zen

        <jargon> To figure out something by meditation or by a sudden
        flash of enlightenment.  Originally applied to {bugs}, but
        occasionally applied to problems of life in general.  "How'd
        you figure out the buffer allocation problem?"  "Oh, I zenned
        it."

        Contrast {grok}, which connotes a time-extended version of
        zenning a system.  Compare {hack mode}.  See also {guru}.

        (1996-09-17)

ZENO

        U Rochester 1978.  Euclid with asynchronous message-passing.
        "Preliminary ZENO Language Description", J.E. Ball et al,
        SIGPLAN Notices 14(9):17-34 (Sep 1979).

zepto

        {prefix}

Zermelo Frnkel set theory

        <mathematics> A {set theory} with the {axiom}s of {Zermelo set
        theory} (Extensionality, Union, Pair-set, Foundation,
        Restriction, Infinity, Power-set) plus the Replacement {axiom
        schema}:

        If F(x,y) is a {formula} such that for any x, there is a
        unique y making F true, and X is a set, then

                {F x : x in X}

        is a set.  In other words, if you do something to each element
        of a set, the result is a set.

        An important but controversial {axiom} which is NOT part of ZF
        theory is the {Axiom of Choice}.

        (1995-04-10)

Zermelo set theory

        <mathematics> A {set theory} with the following set of
        {axiom}s:

        Extensionality: two sets are equal if and only if they have
        the same elements.

        Union: If U is a set, so is the union of all its elements.

        Pair-set: If a and b are sets, so is

                {a, b}.

        Foundation: Every set contains a set disjoint from itself.

        Comprehension (or Restriction): If P is a {formula} with one
        {free variable} and X a set then

                {x: x is in X and P(x)}

        is a set.

        Infinity: There exists an {infinite set}.

        Power-set: If X is a set, so is its {power set}.

        Zermelo set theory avoids {Russell's paradox} by excluding
        sets of elements with arbitrary properties - the Comprehension
        axiom only allows a property to be used to select elements of
        an existing set.

        {Zermelo Frnkel set theory} adds the Replacement axiom.

        [Other axioms?]

        (1995-03-30)

ZERO

        <language> An {object oriented} extension of {Z}.

        ["Object Orientation in Z", S. Stepney et al eds, Springer
        1992].

        (1995-03-30)

zero

        1. <character> 0, {ASCI} character 48.  Numeric zero, as
        opposed to the letter "O" (the 15th letter of the English
        alphabet).  In their unmodified forms they look a lot alike,
        and various {kluges} invented to make them visually distinct
        have compounded the confusion.

        If your zero is centre-dotted and letter-O is not, or if
        letter-O looks almost rectangular but zero looks more like an
        American football stood on end (or the reverse), you're
        probably looking at a modern character display (though the
        dotted zero seems to have originated as an option on {IBM
        3270} controllers).  If your zero is slashed but letter-O is
        not, you're probably looking at an old-style {ASCII} graphic
        set descended from the default typewheel on the venerable
        {ASR-33} {Teletype} (Scandinavians, for whom slashed-O is a
        letter, curse this arrangement).

        If letter-O has a slash across it and the zero does not, your
        display is tuned for a very old convention used at {IBM} and a
        few other early mainframe makers (Scandinavians curse *this*
        arrangement even more, because it means two of their letters
        collide).  Some {Burroughs}/{Unisys} equipment displays a zero
        with a *reversed* slash.  And yet another convention common on
        early {line printers} left zero unornamented but added a tail
        or hook to the letter-O so that it resembled an inverted Q or
        cursive capital letter-O.

        (1995-01-24)

        2. To set to zero.  Usually said of small pieces of data, such
        as bits or words (especially in the construction "zero out").

        3. To erase; to discard all data from.  Said of disks and
        directories, where "zeroing" need not involve actually writing
        zeroes throughout the area being zeroed.  One may speak of
        something being "logically zeroed" rather than being
        "physically zeroed".

        See {scribble}.

        (1999-02-07)

zero assignment

        A zero assignment language is a language where there are no
        variables but only functions.  See also {single assignment}.

zero-content

        {content-free}

Zero Insertion Force

        <hardware> (ZIF) A kind of socket for {integrated circuit}s.
        A ZIF socket can be opened and closed by means of a lever or
        screw.  When open, there the chip may be placed in the socket
        without any pressure at all, the socket is then closed,
        causing its contacts to grip the pins of the chip.  Such
        sockets are used where chips must be inserted and removed
        frequently, such as in test equipment.  They are more
        expensive and usually take up more space than conventional IC
        sockets.

        (1994-12-05)

zeroth

        <jargon> First.

        Since zero is the lowest value of an {unsigned} {binary}
        {integer}, which is one of the most fundamental types in
        programming and {hardware} design, it is often natural to
        count from zero rather than one, especially when the integer
        is actually an {index}, as in hardware addressing or {C} and
        {Lisp}'s 0-based indexing of {arrays}.

        Hackers and computer scientists often like to call the first
        chapter of a publication "Chapter 0", especially if it is of
        an introductory nature (one of the classic instances was in
        the First Edition of {K&R}).  In recent years this trait has
        also been observed among many pure mathematicians (who have an
        independent tradition of numbering from 0).

        Zero-based numbering tends to reduce {fencepost errors},
        though it cannot eliminate them entirely.

        Logically, the next item after the zeroth should be the
        "oneth" but this is never used.

        (1997-12-07)

ZEST

        An {object-oriented} extension of {Z}.

        ["Object Orientation in Z", S. Stepney et al eds, Springer
        1992].

ZetaLisp

        {Maclisp} dialect used on the {LISP Machine}.  The many
        extensions to Maclisp include {vectors}, {closures},
        {flavors}, {stack groups}, {locatives} and {invisible
        pointers}.  Currently supported by {Lisp Machines, Inc.} and
        {Symbolics}.

        ["LISP Machine Manual", D. Weinreb and D. Moon, MIT AI Lab,
        1981].

        (1997-03-18)

zetta-

        {prefix}

zettabyte

        <unit> 2^70 = 1,180,591,620,717,411,303,424 {bytes} = 1024
        {exabytes}.

        See {prefix}.

        (1997-05-02)

Zeus

        A former name of {byacc}.

ZFC

        <mathematics> {Zermelo Frnkel set theory} plus the {Axiom of
        Choice}.  A favourite {axiomatisation} of {set theory}.

        (1995-03-29)

ZF expression

        <programming> (After {Zermelo Frnkel set theory}).  {David
        Turner}'s name for {list comprehension}.

        (1995-03-27)

ZIF

        {Zero Insertion Force}

zigamorph

        /zig'*-morf/ 1. {Hex} FF (11111111) when used as a {delimiter}
        or {fence} character.  Usage: primarily at {IBM} shops.

        2. [proposed] The {Unicode} non-character +UFFFF
        (1111111111111111), a character code which is not assigned to
        any character, and so is usable as end-of-string.

ZIL

        <games> Zork Implementation Language.  Language used by
        {Infocom}'s Interactive Fiction adventure games.  Interpreted
        by the {zmachine}, for {Unix} and {Amiga}.

        {(ftp://plains.nodak.edu/Minix/st.contrib.Infocom.tar.Z)}

Zilog

        <company> The {microprocessor} manufacturer who produced the
        {Zilog Z80} in July 1976 (as used by {Sinclair} in the
        {ZX-80}, {ZX-81} and {ZX Spectrum} computers) and later the
        {Zilog Z8000}.

        Zilog was founded in 1974 and became a wholly owned subsidiary
        of Exxon Corp. by 1980.  The company's management and
        employees purchased Zilog back from Exxon in 1989.  Zilog
        became a publicly-held company in February, 1991.  In March of
        1998, Zilog was privatised, as a result of the merger and
        recapitalisation transaction by Texas Pacific Group (TPG).

        Zilog now produce a range of 8-bit {microcontrollers}, 8-, 16-
        and 32-bit {microprocessors}, and {digital signal processors},
        covering the home entertainment, communications, and {embedded
        systems} markets.

        {Home (http://www.zilog.com/)}.

        Address: 910 East Hamilton Avenue, Suite 110, Campbell,
        CA 95008, USA.

        (1998-09-14)

Zilog Z280

        An enhanced version of the {Zilog Z80} with a 16 bit
        architecture, introduced in July, 1987.  It added an {MMU} to
        expand addressing to 16Mb, features for {multitasking}, a 256
        byte {cache}, and a huge number of new {op code}s (giving a
        total of over 2000!).  Its internal clock runs at 2 or 4 times
        the external clock (e.g. a 16MHz CPU with a 4MHz bus).

        (1994-10-31)

Zilog Z8

        <processor> A family of {microcontroller}s from {Zilog} with
        on-chip {RAM} and {ROM}.  The Z8 is not related to the {Zilog
        Z80}, it uses a totally different architecture and
        {instruction set}.

        Competitors include the {Motorola 6805}/68HC05 family or the
        {Intel 8051}-family (or i51-family or MCS51-family - there is
        no standard family name).

        (1995-04-22)

Zilog Z80

        <processor> An 8-bit {microprocessor}.  It was released in
        July 1976 with a 2.5 MHz {clock rate}.  The Z80 was a much
        improved {Intel 8080} (as was the {Intel 8085}).  It also used
        8-bit data and 16-bit addressing, and could execute all of the
        {8080} {op code}s as well as 80 new ones, instructions that
        included 1, 4, 8 and 16-bit operations and even block move and
        block I/O instructions.  The {register set} was doubled, with
        two banks of registers (including A and F) that could be
        switched between.  This allowed fast {operating system} or
        {interrupt} {context switch}es.  It features 3 types of
        interrupt mode.

        The Z80 also added two {index register}s (IX and IY) and
        relocatable {vectored interrupt}s (via the 8-bit IV register).
        Like many processors (including the {8085}), the Z80 featured
        many undocumented op codes.  Chip area near the edge was used
        for added instructions, but fabrication made the failure of
        these high.  Instructions that often failed were just not
        documented, increasing chip yield.  Later fabrication made
        these more reliable.

        The thing that really made the Z80 popular was the memory
        interface - the CPU generated it's own {RAM} {refresh}
        signals, which meant easier design and lower system cost.
        That and its {8080} compatibility and {CP/M}, the first
        standard {microprocessor} {operating system}, made it the
        first choice of many systems.

        In addition to the original Z80 (2.5 MHz) there are the {Zilog
        Z80A} (4 MHz), {Zilog Z80B} (6MHz) and {Zilog Z80H} (8 MHz)
        versions.  The popular {Hitachi HD64180} processor family adds
        peripherals and an {MMU} to the Z80.

        The {Zilog Z280} was an enhanced version with an {MMU} and
        many new {op code}s.

        (1996-06-12)

Zilog Z8000

        <processor> A {microprocessor} from {Zilog} introduced not
        long after the {Intel 8086}, but with superior features.  It
        was basically a 16-bit processor, but could address up to 23
        bits in some versions by using {segment registers} (to supply
        the upper 7 bits).  There was also an unsegmented version, but
        both could be extended further with an additional {MMU} that
        used 64 {segment registers}.

        Internally, the Z8000 had sixteen 16-bit {registers}, but
        register size and use were exceedingly flexible.  The Z-8000
        registers could be used as sixteen 8-bit registers (only the
        first half were used like this), sixteen 16-bit registers,
        eight 32-bit registers, or four 64-bit registers, and included
        32-bit multiply and divide.  They were all general purpose
        registers - the {stack pointer} was typically register 15,
        with register 14 holding the stack segment (both accessed as
        one 32-bit register for painless address calculations).

        The Z8000 featured two modes, one for the {operating system}
        and one for user programs.  The user mode prevented the user
        from messing about with {interrupt} handling and other
        potentially dangerous stuff.

        Finally, like the {Zilog Z80}, the Z8000 featured automatic
        {DRAM refresh} circuitry.  Unfortunately it was somewhat slow,
        but the features generally made up for that.  Initial {bugs}
        also hindered its acceptance (partly because it did not use
        {microcode}).  There was a radiation resistant military
        version.

        There was a later 32-bit, {pipelined} version, the {Zilog
        Z80000}.

        (1997-12-16)

Zilog Z80000

        <processor> A later version of the {Zilog Z8000}, expanded to
        32 bits internally and with a 6-stage {pipeline}.

        (1997-12-16)

Zilog Z80A

        <processor> A version of the {Zilog Z80} {microprocessor} with
        a 4 MHz {clock rate}.

        (1995-04-24)

zip

        1. <tool, compression, file format> To create a compressed
        {archive} (a "zip file") from one or more files using
        {PKWare}'s {PKZIP} or a compatible {archiver}.  Its use is
        spreading from {MS-DOS} now that portable implementations of
        the {algorithm} have been written.

        zip is also the name of a {Unix} archiving utility compatible
        with {PKZIP}.  {unzip} is the corresponding de-archiver.

        See also {gzip}, {tar and feather}.

        2. <storage> {Zip Drive}.

        (1996-08-26)

Zipcode

        <language> A parallel language at {Lawrence Livermore}(?).

        (1996-08-26)

Zip Drive

        <hardware, storage> A {disk drive} from {Iomega Corporation}
        which takes removable 100 {megabyte} {hard disks}.  Both
        internal and external drives are manufactured, making the
        drive suitable for {backup}, mass storage or for moving files
        between computers.  Software is included to help with file
        organisation.  The internal {SCSI} model offers up to 60 MB /
        minute transfer rate.

        The Zip drive was awarded {Byte}'s Readers' {Hardware Choice
        Award 1996 (http://www.byte.com/art/9607/sec11/art1.htm)}.
        The company has started to manufacture a larger {Jaz} drive,
        which takes one {gigbyte} disks.

        {Home (http://www.iomega.com/index.html)}

        (1997-03-23)

zip file

        {zip}

zipperhead

        <abuse> An {IBM} term for a person with a closed mind.

        (1994-11-30)

zm

        <networking> The {country code} for Zambia.

        (1999-01-27)

ZMODEM

        <protocol> A file transfer protocol with error checking and
        crash recovery.  Developed by Chuck Forsberg.  Its transfer
        rate is similar to {YMODEM-g}.  Like YMODEM-g, ZMODEM does not
        wait for positive acknowledgement after each block is sent,
        but rather sends blocks in rapid succession.  If a ZMODEM
        transfer is cancelled or interrupted for any reason, the
        transfer can be resurrected later and the previously
        transferred information need not be resent.

        {FTP Oakland
        (ftp://oak.oakland.edu/pub/simtelnet/msdos/zmodem/)}, {FTP PDX
        (ftp://ftp.cs.pdx.edu/pub/zmodem/)}.

        Telephone: +1 900 737 7836.

        (1996-07-02)

ZOG

        A high-performance {hypertext} system developed at
        {Carnegie-Mellon University}.

        (1994-11-30)

ZOLA Technologies

        <company> Producers of the {Z} {simulation} language.

        (1994-11-30)

zombie

        1. <operating system> {zombie process}.

        2. <chat> A {ghost}.

        (1997-10-08)

zombie process

        <operating system> (Or "defunct process") A {Unix} {process}
        that has terminated (either because it has been killed by a
        {signal} or because it has called {exit}()) and whose {parent
        process} has not yet received notification of its termination
        by executing (some form of) the {wait}() {system call}.

        A zombie process exists solely as a {process table} entry and
        consumes no other resources.  This entry is retained to hold
        the child's exit status until the parent process wants to
        retrieve it.  The parent can also be notified asynchronously
        via a signal of the child's termination.

        Zombie processes can be seen in "ps" listings occasionally
        (with a status "Z" in some versions).

        Compare {orphan process}.

        (1997-10-08)

zone

        A logical group of {network} devices on {AppleTalk}.

        (1994-11-30)

Zoo

        {byacc}

zoo

        <tool> A data {compression} program and format.

        [Reference?  Details?]

        (1998-04-28)

zoom

        <graphics> To show a smaller area of an {image} at a higher
        magnification ("zoom in") or a larger area at a lower
        magnification ("zoom out"), as though using a zoom lense on a
        camera.

        Unlike in an optical system, zooming in on a computer {image}
        does not necessarily increase the amount of detail displayed
        since this is limited by what is actually stored in the image.
        Similarly, you cannot zoom out beyond the full size of the
        image.

        (1997-10-24)

Zoomer

        A {PDA} from {Casio}, based on the {GEOS} {microkernel}
        {operating system}.

        {Home (http://www.biostat.washington.edu/zoomer.html)}.
        {(http://www.eit.com/mailinglists/zoomer/resources.html)}.

        {Usenet} newsgroup: {news:comp.sys.pen},
        {news:comp.sys.handhelds}, {news:comp.sys.palmtops}.

        (1995-01-23)

ZOPL

        A low-level {Pascal}(?) from {Geac}.

        (1995-01-23)

zorch

        /zorch/ 1. [TMRC] To attack with an inverse heat sink.

        2. [TMRC] To travel with velocity approaching lightspeed.

        3. [MIT] To propel something very quickly.  "The new comm
        software is very fast; it really zorches files through the
        network."

        4. [MIT] Influence.  Brownie points.  Good karma.  The
        intangible and fuzzy currency in which favours are measured.
        "I'd rather not ask him for that just yet; I think I've used
        up my quota of zorch with him for the week."

        5. [MIT] Energy, drive, or ability.  "I think I'll {punt} that
        change for now; I've been up for 30 hours and I've run out of
        zorch."

        6. [MIT] To flunk an exam or course.

        7. Computing power.

        (1997-07-09)

Zork

        <games> /zork/ The second of the great early experiments in
        computer fantasy gaming; see {ADVENT}.  Zork was originally
        written on {MIT-DM} during the late 1970s, later distributed
        with {BSD Unix} as a patched, sourceless {RT-11} {FORTRAN}
        binary (see {retrocomputing}) and commercialised as "The Zork
        Trilogy" by {Infocom}.  The FORTRAN source was later rewritten
        for portability and released to {Usenet} under the name
        "Dungeon".

        Both FORTRAN "Dungeon" and translated {C} versions are
        available from many {FTP archives}.

        (1998-09-21)

zorkmid

        <games> /zork'mid/ The canonical unit of currency in
        hacker-written games.  This originated in {Zork} but has
        spread to {nethack} and is referred to in several other games.

        (1998-09-21)

zr

        <networking> The old {country code} for Zaire.

        "{cd}" is now used instead, since Zaire changed its name to
        the Democratic Republic of the Congo.

        (1999-01-27)

zsh

        {Z shell}

Z shell

        (zsh) 1. {sh} with list processing and {database}
        enhancements.

        Version 2.1.o (before 1995-10-30).

        {(ftp://cs.ucsd.edu/pub/zsh/zsh2.1.0.tar.Z)}

        2. A {Unix} command interpreter {shell} by Paul Falstad
        <pf@ttisms.com>, similar to, but not completely compatible
        with, {ksh}, with many additions to please {csh} users and
        some {tcsh} features.  zsh supports editing of multi-line
        commands a single buffer; variable editing; a command buffer
        stack; {recursive} {glob}bing; manipulation of {arrays}; and
        spelling correction.

        The current version (1993-03-23) 2.3.1 (2.4 in beta) is
        available for Berkeley and {SVR4}-based Unix.

        {zsh FAQ (http://mal9000.bevc.blacksburg.va.us/zsh/FAQ)}

        {(ftp://carlo.phys.uva.nl/pub/bas/zsh/)}

        Mailing list: <zsh-request@cs.uow.edu.au>.

        (1995-10-31)

ZUG

        A low-level {Awk}(?) from {Geac}.

        (1995-01-23)

ZUSE

        An LL(1) {parser generator} by Arthur Pyster, {University of
        California at Santa Barbara}.  Requires {Pascal}.

        (1986-09-23)

Zuse

        <language> (After {Konrad Zuse}) A descendant of {Ada},
        {Modula-2}, {Mesa} and {Oberon-1}, described by Christian
        Collberg <collberg@dna.lth.se> in his PhD thesis 1991.

        Zuse supports several levels of information hiding.  The Zuse
        type system includes fully hidden types (similar to {Modula-2}
        {opaque types} but without any implementation restriction),
        semi-open pointer types (same as {Modula-2} {opaque types}),
        extensible {record types} (similar to {Oberon-1} public
        projection types but without the compiler hint), {enumeration}
        types, extensible enumeration types, and extensible {subrange
        types}.

        A type can also be protected by specifying the operations that
        particular modules may perform (similar to {C++} {friend
        classes} and {Ada} {private types}).  Zuse also includes
        hidden and extensible constants and hidden inline procedures.
        In order to support the higher levels of information hiding
        the implementation employs partial intermediate code linking.

        A version for {Sun-3} is available.

        (1999-02-18)

Zuse, Konrad

        {Konrad Zuse}

zw

        <networking> The {country code} for Zimbabwe.

        (1999-01-27)

ZX-80

        <computer> {Sinclair}'s cheap {Zilog Z80}-based {personal
        computer} with built-in {BASIC} and one kilobyte of {RAM},
        launched in 1979.  The ZX-80 was originally sold in kit form
        and was used by many UK hobbyists as a means of learning the
        basics of computing.

        Some remember the 1kb ZX-80 for the claim in its advertising
        that you could control a nuclear power station with it.  I was
        succeeded by the {ZX-81}.

        (1995-11-04)

ZX-81

        <computer> An even more successful version of the {Sinclair}
        {ZX-80}, featuring a large {uncommitted logic array} instead
        of much discrete logic, an improved {BASIC}, and rather more
        expandability (it could take 16kb {RAM} packs).  It was
        launched around 1981 and was eventually replaced by the
        {Spectrum}.

        (1995-11-04)

zxnrbl

        <jargon> /sner'b*l/ Incorrect data introduced by transmission
        errors; any corrupted or uninterpretable data.

        The word originated in a 1978 advertisement for a
        Mockingboard, which "makes frogs croak, princesses shriek, and
        martians zxnrbl."

        "It's not misspelled on the original page.  The Internet must
        have zxnrbled it on the way to you."

        (1997-03-16)

ZX Spectrum

        <computer> {Sinclair}'s first personal computer with a colour
        display.  The Spectrum used the {Zilog Z80} processor like its
        predecessors the {ZX-80} and {ZX-81}.  It was originally
        available in 16k and 48k versions using cassette tape and
        later grew to 128k and sprouted {floppy disks}.  It had a
        wider and more solid case and a marginally better "dead flesh"
        keyboard.  Unlike the earlier models, it didn't require the
        presence of a cold carton of milk to prevent it overheating.
        It was possibly the most popular home computer in the UK for
        many years.

        The {TK-90X} was a clone.

        (1995-11-04)

Zynet Ltd.

        <company> A UK {Internet service provider} offering full
        {Internet Protocol} connection by any reasonable means for any
        number of computers from individual {dial-up}s to {leased
        line} connections to entire networks.

        Zynet is a sister company of {Minerva Software} and thus claim
        a better than average understanding of the needs and
        idiosyncracies of {Acorn} systems and will be offering special
        services for education.

        {(http://www.zynet.co.uk/)}

        E-mail: <zynet@zynet.co.uk>.

        Telephone: +44 (1392) 426 160.  Fax: +44 (1392) 421 762.

        Address: Minerva House, Baring Crescent, Exeter EX1 1TL, UK.

        (1995-01-31)

ZyXEL

        A {modem} manufacturer.

        {(ftp://ftp.zyxel.com/pub/other/zyxel)}

        E-mail: <tech@zyxel.com>, <sales@zyxel.com>.

        Telephone: +1 800-255-4101 (Sales), +1 714-693-0808 (tech), +1
        714-693-0762 (BBS), +1 714-693-8811 (fax).

        Address: 4920 E. La Palma, Anaheim, CA 92807, USA.

        (1994-10-31)

~

        {tilde}


